Linux 데스크톱 환경을 사용하며 Shadowrocket 설치를 준비하는 사용자를 위한 안내입니다. 먼저 배포판과 프로세서 아키텍처를 확인한 뒤 사이트 다운로드 페이지에서 deb, rpm 또는 AppImage를 선택하세요. 해당 형식에 맞춰 설치하거나 실행한 다음 Home, Config, Global Routing을 확인합니다. 명령어에는 실제로 다운로드한 파일 경로를 입력하며, 특정 파일명에 의존하거나 서로 다른 형식의 패키지를 같은 명령어에 섞지 않습니다.
배포판과 아키텍처 먼저 확인하기
설치 형식과 프로세서 아키텍처는 서로 다른 조건입니다. deb와 rpm은 시스템에서 소프트웨어를 관리하는 도구를 결정하고, x86_64와 aarch64 같은 아키텍처는 프로그램이 현재 프로세서에서 실행될 수 있는지를 결정합니다. 파일 확장자가 맞더라도 아키텍처가 맞는 것은 아닙니다. 터미널을 열고 아래 두 명령어를 실행해 배포판 이름과 아키텍처를 확인하세요.
cat /etc/os-release
uname -m
/etc/os-release의 ID와 ID_LIKE 값으로 시스템 계열을 확인할 수 있습니다. uname -m은 보통 x86_64 또는 aarch64 등을 반환합니다. 다운로드 페이지의 x64·amd64는 일반적으로 x86_64에, arm64는 aarch64에 해당합니다. 다운로드 페이지에서 실제로 제공하며 시스템과 일치하는 아키텍처만 선택하세요. 형식을 변환한다고 아키텍처 불일치가 해결되지는 않습니다.
| 시스템 환경 | 권장 형식 | 실행 방법 |
|---|---|---|
| Debian, Ubuntu 및 호환 시스템 | deb | apt로 로컬 패키지를 설치하고 의존성 처리 |
| Fedora 등 dnf를 사용하는 시스템 | rpm | dnf로 로컬 패키지를 설치하고 의존성 처리 |
| 기타 호환 Linux 데스크톱 환경 | AppImage | 실행 권한을 부여한 뒤 일반 사용자로 실행 |
rpm 계열이라고 해서 모두 dnf를 사용하는 것은 아닙니다. 시스템에 dnf가 없다면 Fedora용 명령어를 그대로 따라 하지 마세요. AppImage도 모든 배포판과 호환되는 것은 아니며 프로세서 아키텍처, 시스템 라이브러리, 데스크톱 환경의 영향을 받습니다. 이 안내는 그래픽 데스크톱 사용을 전제로 합니다. 원격 터미널에서 창이 표시되지 않는다고 설치 파일이 손상된 것은 아닙니다.
설치 형식과 다운로드 방법
Shadowrocket 다운로드 페이지에서 Linux 설치 파일을 선택해 저장한 다음 파일 확장자를 확인하세요. 이 안내에서는 다운로드 파일명을 고정하지 않으므로, 이후 명령어에는 다운로드가 끝난 파일의 실제 경로를 입력해야 합니다. 브라우저에서 다운로드 중인 파일은 실행하지 말고, 임시 다운로드 확장자가 붙은 파일도 완성된 설치 파일로 사용하지 마세요.
iPhone / iPad 버전은 App Store에서 받을 수 있으며, 개발자는 Shadow Launch Technology Limited입니다. 가격은 $2.99 일회성 결제이고 시스템 요구 사항은 App Store 페이지를 확인하세요. Mac(Apple 실리콘 및 Intel), Windows, Android, Linux 버전은 무료이며 설치 파일은 사이트 다운로드 페이지에서 받을 수 있습니다. Shadowrocket은 클로즈드 소스 상용 앱입니다. Linux 버전이 무료여도 소프트웨어의 성격은 달라지지 않습니다.
시스템 패키지 관리 방식에 따라 선택
deb / rpm 사용
- 시스템에 호환되는 패키지 관리 도구가 있습니다.
- 시스템에서 패키지와 의존성을 함께 관리하길 원합니다.
- 설치할 때 관리자 권한을 부여할 수 있습니다.
AppImage 사용
- 다운로드 페이지에서 아키텍처에 맞는 파일을 제공합니다.
- 프로그램 파일을 개인 디렉터리에 보관하고 싶습니다.
- 실행 권한과 실행 환경을 직접 확인할 수 있습니다.
호환되는 deb 또는 rpm 패키지가 있다면 시스템 패키지 관리 방식을 우선 사용하세요. AppImage는 독립된 파일로 실행되지만 모든 시스템 의존성이 불필요해지는 것은 아닙니다.
apt로 deb 설치
Debian, Ubuntu 등에서는 apt로 로컬 deb 파일을 설치하는 방법을 권장합니다. 패키지를 직접 풀어 쓰는 것과 달리 apt는 현재 활성화된 저장소에서 의존성 해결을 시도합니다. 아래 명령어는 같은 Bash 터미널에서 순서대로 실행하세요. 경로를 입력할 때 따옴표를 추가하지 말고 절대 경로나 현재 디렉터리 기준 상대 경로를 사용하면 됩니다.
read -r -p '다운로드한 deb 파일의 실제 경로를 입력하세요: ' pkg
pkg=$(realpath -- "$pkg")
dpkg-deb -f "$pkg" Package Architecture
sudo apt update
sudo apt install "$pkg"
dpkg-deb 명령어는 패키지명과 아키텍처만 확인하며 설치를 진행하지 않습니다. 출력이 예상한 내용과 일치하는지 확인한 뒤 다음 명령어를 실행하세요. realpath는 입력한 경로를 절대 경로로 변환해 apt가 로컬 파일임을 명확히 인식하도록 합니다. 파일을 찾을 수 없다는 메시지가 나오면 설치를 계속하지 말고 경로를 먼저 수정하세요.
-
파일 확인
파일 관리자에서 다운로드가 완료된 deb 파일을 찾고 전체 경로를 확인하세요. 다운로드 폴더명이 영어 Downloads가 아니라면 실제 저장된 폴더를 사용하면 됩니다.
-
아키텍처 확인
dpkg-deb -f의 Architecture 값과 시스템 아키텍처를 비교하세요. 일치하지 않으면 다운로드 페이지로 돌아가 다른 패키지를 선택하고 강제 설치 옵션은 사용하지 마세요. -
설치 실행
apt 명령어를 실행한 뒤 설치·업그레이드·삭제될 패키지 목록을 확인하세요. 시스템 구성 요소를 대량으로 삭제하겠다는 제안이 나오면 취소하고 배포판 호환성을 확인하세요.
-
프로그램 실행
설치가 정상적으로 끝나면 데스크톱 앱 메뉴에서 Shadowrocket을 실행하세요. 첫 연결 과정의 권한 부여를 대신하려고 그래픽 프로그램 전체를 sudo로 실행하지 마세요.
dnf로 rpm 설치
dnf를 사용하는 시스템에서 로컬 rpm을 설치할 때도 실제 파일 경로를 지정해야 합니다. 먼저 패키지 정보를 확인한 다음 dnf로 설치 작업을 진행하세요. 아래 명령어는 앞 절과 별개로 사용할 수 있으므로 터미널을 닫았더라도 파일 경로를 다시 입력하면 됩니다.
read -r -p '다운로드한 rpm 파일의 실제 경로를 입력하세요: ' pkg
pkg=$(realpath -- "$pkg")
rpm -qp --queryformat '%{NAME} %{ARCH}\n' "$pkg"
sudo dnf install "$pkg"
rpm -qp은 아직 설치되지 않은 로컬 패키지의 정보를 조회합니다. dnf가 의존성, 다운로드 항목, 작업 요약을 표시하면 내용을 확인한 뒤 계속 진행하세요. 의존성을 찾을 수 없다는 메시지가 나오면 네트워크와 시스템 저장소가 정상인지 먼저 확인하세요. 의존성 검사를 끄는 방법은 일반적인 설치 절차로 사용하지 마세요.
- 아키텍처가 호환되지 않는다는 메시지: 다운로드 페이지로 돌아가
uname -m결과와 일치하는 패키지를 선택하세요. - 경로를 찾을 수 없다는 메시지: 입력한 경로에 불필요한 따옴표나 공백이 들어갔는지, 디렉터리가 잘못되었는지 확인하세요. 명령어의
"$pkg"가 경로에 포함된 공백을 처리합니다. - 패키지 충돌 메시지: 충돌하는 패키지명을 기록하고 같은 앱을 다른 패키지 형식으로 설치한 적이 있는지 확인하세요. 강제 덮어쓰기 옵션은 사용하지 마세요.
- 시스템에 dnf가 없는 경우: 사용 중인 배포판의 로컬 rpm 설치 방법을 확인하거나 다운로드 페이지에서 제공하는 호환 AppImage를 선택하세요.
deb와 rpm 설치 모두 의존성을 가져오려면 인터넷 연결이 필요할 수 있습니다. 주 설치 파일을 다운로드했다고 오프라인 설치 준비가 끝난 것은 아닙니다. 의존성이 누락되면 같은 파일을 반복해서 다운로드하기보다 저장소에 접근할 수 있는지 먼저 해결하세요.
AppImage 첫 실행
AppImage는 보통 단일 파일로 제공되므로 다운로드 후 계속 사용할 개인 디렉터리에 보관하세요. deb나 rpm과 다른 형식이므로 apt나 dnf로 설치할 수 없습니다. 처음 실행하기 전에 현재 사용자에게 실행 권한을 부여한 다음 파일을 직접 실행하세요.
read -r -p 'AppImage 파일의 실제 경로를 입력하세요: ' app
app=$(realpath -- "$app")
chmod u+x -- "$app"
"$app"
chmod u+x는 파일 소유자에게만 실행 권한을 추가합니다. 모든 사용자에게 쓰기 권한을 허용할 필요는 없습니다. 프로그램을 실행하는 동안 터미널 창을 열어 두면 시작 오류를 확인하는 데 도움이 됩니다. 일반적으로 현재 데스크톱 사용자로 실행해야 합니다. 오류 하나를 없애기 위해 관리자 권한으로 실행하지 마세요.
- Permission denied: 먼저 파일의 소유자가 현재 사용자이고 실행 권한이 있는지 확인한 다음, 파일이 있는 파티션이
noexec로 마운트되었는지 확인하세요. 이 경우 실행이 허용된 개인 디렉터리로 파일을 옮길 수 있습니다. - Exec format error: 먼저 아키텍처를 확인하고 다운로드가 완료되었는지 확인하세요. 실행 권한을 추가해도 아키텍처 오류는 해결되지 않습니다.
- FUSE 관련 오류: 일부 AppImage 실행 방식은 FUSE에 의존합니다. 현재 배포판의 안내에 따라 호환되는 구성 요소를 설치하세요. 다른 시스템에서 사용하는 패키지명을 그대로 적용하지 마세요.
- 그래픽 화면을 표시할 수 없음: 로컬 데스크톱 세션에서 실행하세요. SSH로만 접속한 터미널은 앱 창을 표시할 수 없는 경우가 있습니다.
파일을 두 번 클릭했을 때 ‘열기 방식 선택’ 창만 표시된다면 위의 터미널 명령어로 실행해 권한 문제인지 파일 연결 문제인지 구분해 보세요. AppImage가 앱 메뉴에 자동으로 등록되는지는 데스크톱 통합 방식에 따라 다릅니다. 메뉴 아이콘이 없어도 파일을 실행할 수 없는 것은 아닙니다. 파일을 옮긴 뒤에는 기존 바로가기가 작동하지 않을 수 있으므로 대상 경로를 수정해야 합니다.
설치 후 연결 확인
창이 열렸다는 것은 프로그램이 실행되었다는 뜻일 뿐, 프록시 연결이 작동한다는 의미는 아닙니다. 아래 절차는 사용자가 이미 이용 중인 서비스와 구독 정보를 보유하고 있다는 전제입니다. Home에서 기존 서버 정보나 구독을 추가하고 Config에서 사용할 구성을 확인한 다음 Global Routing을 점검하세요. 설치 형식과 네트워크 모드는 별개이며, AppImage로 다시 설치해도 규칙 오류가 해결되는 경우는 드뭅니다.
Config
권장현재 적용된 구성의 규칙에 따라 연결을 가로챈 요청의 처리 방식을 결정합니다. 사용 전 Config에서 예상한 구성이 활성화되어 있는지, 마지막 FINAL이 어디로 향하는지 확인하세요.
적합한 경우: 올바른 구성이 있고 도메인이나 IP별로 트래픽을 분할해 사용하는 경우.
Proxy
가로챈 트래픽을 모두 프록시 정책으로 전달합니다. 서버 연결 문제와 규칙 문제를 구분할 때 사용할 수 있지만 모든 프로세스의 트래픽을 자동으로 가로채는 것은 아닙니다.
적합한 경우: 프록시 경로가 작동하는지 잠시 확인한 뒤 기존 모드로 되돌릴 때.
Direct
가로챈 트래픽을 모두 직접 연결로 처리합니다. 이 모드에서 브라우저로 일반 웹사이트에 접속할 수 있어도 프록시 서버가 작동한다는 뜻은 아닙니다.
적합한 경우: 기본 네트워크 연결을 확인하고 프록시 경로와 비교할 때.
예를 들어 Config에 다음 규칙이 있으면 example.com과 하위 도메인에는 PROXY를 사용하고, 그 외 일치하지 않는 요청에는 DIRECT를 사용합니다. 이는 규칙 문법의 예시일 뿐 서버 설정이 아니며, 작동하는 연결을 자동으로 만들지 않습니다. 문제를 진단할 때는 실제로 어떤 규칙이 적용되었는지 확인한 다음 정책을 점검하세요. 규칙 일부를 완성된 구성 파일처럼 가져오지 마세요.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT
설치 및 업데이트 관련 자주 묻는 질문
apt에서 파일을 찾을 수 없다고 나오는데, 이미 다운로드했습니다. 왜 그런가요?
먼저 파일 관리자에서 파일 위치를 확인한 뒤 경로를 입력하는 명령어를 다시 실행하세요. 다운로드 페이지 주소가 아니라 실제 파일 경로를 입력해야 합니다. 경로에 공백이 있어도 그대로 입력할 수 있으며 따옴표를 다시 씌우지 마세요. 파일이 실제로 존재하고 다운로드가 완료된 경우에만 설치를 진행하세요.
AppImage에 실행 권한을 줬는데도 열리지 않아요.
터미널에서 파일을 실행하고 오류 내용을 확인하세요. 아키텍처, 실행 권한, 마운트 옵션, FUSE, 실행 라이브러리 순으로 점검합니다. 시스템 라이브러리가 없다는 메시지가 분명하면 현재 배포판의 패키지 안내에 따라 처리하세요. 시스템 보안 기능을 끄고 해결되기를 기대하지 마세요.
deb나 rpm은 시스템과 함께 자동 업데이트되나요?
로컬 패키지를 설치해도 소프트웨어 저장소가 자동으로 추가되는 것은 아닙니다. 해당 업데이트 경로가 설정되어 있는지 확인되지 않았다면 사이트 다운로드 페이지에서 호환 패키지를 받아 같은 패키지 관리 방식으로 설치하세요. AppImage는 프로그램을 종료한 뒤 호환되는 새 파일로 교체하고 실행 권한을 다시 확인하세요.
다시 설치하기 전에 설정을 삭제해야 하나요?
설정 삭제를 첫 번째 문제 해결 방법으로 삼지 마세요. 먼저 기존 구성과 구독 정보를 보관한 뒤 문제가 실행, 가져오기, 연결 중 어느 단계에서 발생하는지 구분하세요. 시스템 패키지와 사용자 설정은 대개 서로 다른 위치의 데이터입니다. 소프트웨어 패키지를 제거해도 설정을 안전하게 백업하거나 정리할 수 있는 것은 아닙니다.
설치가 끝나면 배포판, 아키텍처, 사용한 패키지 형식, 구체적인 오류 내용을 기록해 두세요. 추가로 문제를 해결할 때 ‘Linux 버전이 열리지 않아요’라는 설명보다 훨씬 유용합니다. 로그를 공유하기 전에 구독 token, 비밀번호, 개인 서버 정보를 삭제하세요. 한 번에 설정 하나만 바꾸면 어떤 변경이 결과에 영향을 줬는지 확인할 수 있습니다.