이 글에서는 Shadowrocket Linux 설치 전 배포판과 아키텍처 확인, deb 및 rpm의 로컬 설치 명령, AppImage 실행 권한 설정, 첫 실행 후 설정 확인 방법을 안내합니다. 이미 이용 중인 서비스의 접속 정보나 구독 주소가 있고 Linux 데스크톱에 클라이언트를 설치하려는 사용자를 위한 안내입니다. 먼저 시스템과 설치 패키지가 맞는지 확인한 다음 의존성을 처리하세요. 앱 실행 여부와 연결 여부는 별도로 확인해야 합니다.
1. 배포판, 아키텍처, 패키지 형식 확인
Shadowrocket Linux 설치 패키지는 사이트의 전체 플랫폼 다운로드 페이지에서 선택하세요. deb, rpm, AppImage는 서로 다른 배포 형식일 뿐, 프록시 프로토콜이나 회선 요금제의 차이를 뜻하지 않습니다. 데스크톱 화면만 보고 배포판을 판단하지 마세요. GNOME과 KDE는 데스크톱 환경이므로 apt와 dnf 중 무엇을 사용할지 결정하는 기준이 아닙니다.
먼저 터미널에서 아래 읽기 전용 명령 두 개를 실행하세요. 첫 번째 명령은 시스템 정보를, 두 번째 명령은 프로세서 아키텍처를 확인합니다. 문제 해결을 위해 출력을 공유할 때는 대개 배포판 이름, 아키텍처, 오류 메시지만 있으면 됩니다. 계정 정보는 공유하지 않아도 됩니다.
cat /etc/os-release
uname -m
시스템 확인
- NAME / ID
- /etc/os-release를 읽어 실제 배포판 이름을 확인합니다.
- ID_LIKE
- 배포판 계열을 파악하는 데 참고할 수 있지만, 해당 배포판의 패키지 관리 안내를 대신하지는 않습니다.
- uname -m
- x86_64와 aarch64는 서로 다른 아키텍처이므로 설치 패키지도 이에 맞아야 합니다.
다운로드 페이지에서 실제 제공하는 아키텍처를 확인하세요. 패키지 형식을 바꿔도 아키텍처 불일치는 해결되지 않습니다.
패키지 형식 선택
- Debian / Ubuntu
- deb를 우선 선택하고 apt로 로컬 파일을 설치해 의존성을 처리합니다.
- Fedora 계열
- rpm을 우선 선택하고 dnf로 로컬 파일을 설치해 의존성을 처리합니다.
- 그 외 배포판
- AppImage 호환 안내를 확인하고 아키텍처와 실행 환경도 점검하세요.
AppImage도 시스템 라이브러리, 데스크톱 환경, 런타임 조건의 영향을 받으므로 모든 Linux 시스템에서 사용할 수 있는 것은 아닙니다.
시스템이 컨테이너, 그래픽 데스크톱이 없는 서버 또는 원격 터미널에서 실행 중이라면 설치에 성공해도 데스크톱 앱을 실행할 수 있는 것은 아닙니다. 먼저 현재 세션에서 그래픽 프로그램을 실행할 수 있는지 확인한 후 클라이언트 설치를 진행하세요. 이 안내는 Linux 데스크톱을 대상으로 하며, 데스크톱 앱 설치 절차를 서버 서비스 배포 절차로 다루지 않습니다.
2. Debian/Ubuntu: apt로 로컬 deb 설치
다운로드 페이지에서 아키텍처에 맞는 deb를 선택하고 다운로드 파일의 전체 경로를 확인하세요. 아래 명령은 Bash에서 한 줄씩 실행합니다. 입력하라는 메시지가 나타나면 실제 절대 경로를 입력하세요. 예를 들어 파일 관리자에서 경로를 복사해 붙여넣으면 됩니다. 입력값 앞뒤에 따옴표를 추가하지 마세요. 명령의 변수에 실제 파일 경로가 저장되므로 설치 패키지의 파일명을 추측할 필요가 없습니다.
read -r -p "deb 파일의 절대 경로를 입력하세요: " deb_path
dpkg-deb -f "$deb_path" Package Architecture
sudo apt update
sudo apt install "$deb_path"
dpkg-deb -f는 설치를 수행하지 않고 패키지 내부의 메타데이터를 읽습니다. 일반적인 아키텍처 표기는 시스템에서 x86_64로 표시될 때 패키지의 amd64, 시스템에서 aarch64로 표시될 때 패키지의 arm64에 해당합니다. 그래도 최종적으로는 다운로드 페이지에서 제공하는 패키지와 일치하는지 확인해야 합니다. 표시된 값이 맞지 않으면 설치를 중단하고 올바른 패키지를 선택하세요.
- 절대 경로 사용:
apt install은 로컬 파일임을 식별할 수 있어야 합니다. 상대 경로를 사용한다면 파일명만 입력하지 말고./로 시작하는 경로를 지정하세요. - 의존성 설치 계획 확인:apt는 설치·업그레이드·제거 예정 항목을 표시합니다. 데스크톱 구성 요소를 대량으로 제거하려는 계획이 보이면 먼저 취소하고 저장소와 배포판 호환성을 확인하세요.
- 다운로드 오류와 의존성 오류 구분:파일을 읽을 수 없다면 경로를 확인하세요. 의존성을 충족할 수 없다면 저장소 사용 가능 여부와 시스템 지원 범위를 확인하세요. 같은 명령을 반복 실행하지 마세요.
dpkg -i 실행 후 의존성 오류가 발생했다고 해서 앱을 바로 사용할 수 있는 것은 아닙니다. dpkg는 패키지 설치 상태를 관리하지만 apt처럼 저장소에서 의존성을 찾아 다운로드하지는 않습니다. 설치가 끝나면 터미널에 패키지 설정 오류가 남아 있지 않은지 확인한 뒤 앱 목록에서 Shadowrocket을 실행하세요.
3. Fedora 계열: dnf로 로컬 rpm 설치
rpm도 확장자만 볼 것이 아니라 먼저 아키텍처를 확인해야 합니다. Fedora 계열에서는 보통 dnf로 로컬 rpm과 의존성을 처리합니다. rpm을 사용하는 다른 배포판은 자체 패키지 관리 도구와 의존성 이름을 사용할 수 있으므로 확장자가 같다는 이유만으로 Fedora 저장소 설정을 그대로 적용하지 마세요.
read -r -p "rpm 파일의 절대 경로를 입력하세요: " rpm_path
rpm -qp --queryformat '%{NAME} %{ARCH}\n' "$rpm_path"
sudo dnf install "$rpm_path"
조회 명령은 패키지 이름과 아키텍처만 표시하므로 다운로드한 파일을 확인하기 편리합니다. dnf의 트랜잭션 확인 화면에는 설치할 항목과 의존성 출처가 표시됩니다. 패키지를 사이트의 다운로드 페이지에서 받았고 아키텍처가 일치하며 의존성 계획도 적절한 경우에만 진행하세요. 패키지 충돌이 발생하면 오류 출력을 보관하고, 의존성 무시나 강제 덮어쓰기 옵션으로 문제를 가리지 마세요.
No such file or directory오류가 나타나면 브라우저 다운로드 목록에 표시된 이름이 아니라 실제 파일 경로를 입력했는지 먼저 확인하세요.- 의존성을 충족할 수 없다는 오류가 나타나면 현재 배포판의 저장소와 호환 요건을 확인하세요. 다른 배포판의 시스템 라이브러리를 임의로 복사하지 마세요.
- 설치가 완료되면 일반 사용자로 그래픽 앱을 실행하세요. 설치할 때 sudo를 사용했다고 앱 실행에도 sudo가 필요한 것은 아닙니다.
4. AppImage: 실행 권한을 부여한 뒤 터미널에서 실행
AppImage는 일반적으로 apt나 dnf를 통해 설치 항목으로 등록되지 않습니다. 먼저 파일을 현재 사용자가 쓸 수 있고 계속 보관할 위치에 둔 다음 실행 권한을 부여하세요. 파일이 브라우저의 임시 디렉터리에 있으면 다운로드 파일을 정리한 뒤 다시 실행하지 못할 수 있습니다. 파일을 옮겼다면 기존 데스크톱 바로 가기의 경로도 업데이트해야 할 수 있습니다.
read -r -p "AppImage 파일의 절대 경로를 입력하세요: " app_path
chmod u+x "$app_path"
"$app_path"
chmod u+x는 파일 소유자에게만 실행 권한을 추가합니다. 마지막 줄은 해당 파일을 직접 실행합니다. 터미널에 시작 오류가 표시되므로 더블 클릭해도 창이 열리지 않는 문제를 진단하는 데 유용합니다. sudo로 데스크톱 클라이언트 전체를 실행하지 말고, 파일 권한을 과도하게 넓히는 방법을 일반적인 해결책으로 삼지 마세요.
- Permission denied:실행 권한 외에도 파일이 있는 파티션이
noexec옵션으로 마운트되었을 수 있습니다. 시스템 마운트 설정을 먼저 변경하지 말고, 실행이 허용된 사용자 디렉터리로 파일을 옮겨 다시 시도하세요. - Exec format error:먼저 아키텍처를 확인하세요. 실행 권한을 추가해도 x86_64와 ARM 아키텍처가 서로 변환되지는 않습니다.
- FUSE 관련 오류:일부 AppImage 런타임에는 호환되는 FUSE 사용자 공간 라이브러리가 필요합니다. 현재 배포판의 안내에 따라 의존성을 확인하고, 기존 FUSE 구성 요소를 바로 제거하거나 교체하지 마세요.
- GLIBC 관련 오류:실행 환경이 패키지 요구 사항보다 오래되었을 수 있습니다. 시스템 libc를 수동으로 덮어쓰지 마세요. 호환 요건을 확인하고 조건에 맞는 패키지 또는 지원되는 시스템 환경을 선택하세요.
AppImage 파일에 실행 권한을 부여해도 자동으로 시스템 서비스가 되지는 않으며, 자동 업데이트나 데스크톱 메뉴 통합을 지원한다고 단정할 수도 없습니다. 업데이트하려면 다운로드 페이지에서 설치 안내를 확인하고 실행 중인 인스턴스를 종료한 다음 해당 패키지의 안내에 따라 파일을 교체하세요.
5. 첫 실행: 설치 문제와 연결 문제 구분
창이 열리면 로컬 실행 확인의 일부를 통과한 것입니다. 이때 웹사이트에 접속할 수 없다면 패키지를 바꿔 재설치하기보다 연결 정보, 라우팅 모드, 시스템 네트워크 설정을 점검하세요. 아래 절차는 이미 이용 중인 서비스와 구독이 있다는 전제입니다. 구독 주소에 접근 자격 증명이 포함될 수 있으므로 스크린샷이나 로그를 공유하기 전에 전체 링크를 가리세요.
-
실행 확인
앱 목록이나 AppImage 파일에서 Shadowrocket을 실행하고 창이 계속 열려 있는지 확인하세요. 바로 종료되면 먼저 터미널에서 다시 실행해 오류를 기록하고, 구독 문제는 그다음에 확인하세요.
-
정보 가져오기
Home → + → Type → Subscribe를 선택하고 본인의 구독 주소를 입력해 저장하세요. 주소 형식 예시는
https://example.com/sub?token=xxxx입니다. 형식을 설명하기 위한 예시이므로 연결에 사용할 수 없습니다. 실제 메뉴 위치는 현재 Linux 빌드의 화면을 기준으로 확인하세요. -
설정 확인
구독을 업데이트한 뒤 목록에 예상한 항목이 표시되는지 확인하세요. 그런 다음 Config에서 현재 설정과 정책 참조를 확인합니다. 구독을 가져오지 못하는 문제와 기존 연결 항목을 사용할 수 없는 문제는 별개이므로 오류 정보를 각각 보관하세요.
-
라우팅 확인
Home → Global Routing에서 현재 선택 항목을 확인하세요. 설정 규칙을 점검할 때는 Config를 사용하고, 설정에서 참조하는 정책 이름이 유효한지 확인하세요. Direct 모드에서는 프록시 연결이 작동하는지 판단하지 마세요.
여기서 Home, Config, Global Routing은 각 기능을 찾기 위한 메뉴 이름입니다. 플랫폼별 빌드에 따라 메뉴 위치가 다를 수 있으므로 모바일 메뉴를 찾으려고 Linux 패키지를 반복해서 설치하지 마세요. 시스템 프록시와 앱 내부 라우팅은 서로 다른 계층입니다. 클라이언트가 실제로 처리하는 연결에만 라우팅 모드가 적용되며, 클라이언트 스위치만으로 모든 기기 트래픽이 처리된다고 판단할 수는 없습니다.
6. 설치 후 Global Routing 선택 방법
패키지 형식은 규칙의 매칭 원리를 바꾸지 않습니다. 설치를 마친 뒤 Global Routing을 사용하면 연결 자체의 문제인지 설정 규칙이 적용되지 않는 문제인지 구분할 수 있습니다. 아래에서는 Shadowrocket의 라우팅 모드만 비교합니다. 테스트 전에 본인이 보유한 유효한 연결 정보를 가져왔는지 확인하세요.
Config
권장현재 설정의 규칙과 정책에 따라 연결을 처리합니다. 규칙이 항상 프록시를 뜻하는 것은 아니며, 실제 결과는 일치한 규칙, 정책 대상, 설정의 기본 처리 방식에 따라 달라집니다.
적합한 경우: 확인된 설정을 바탕으로 규칙에 따라 평소 연결을 처리할 때.
Proxy
클라이언트가 처리하는 연결을 선택한 프록시 정책으로 전달합니다. 규칙 매칭이 문제 진단에 끼치는 영향을 줄이는 데 사용할 수 있지만, 운영 체제의 모든 트래픽을 반드시 처리한다는 뜻은 아닙니다.
적합한 경우: 선택한 연결과 설정 규칙의 차이를 잠시 확인할 때.
Direct
클라이언트가 처리하는 연결을 직접 연결로 처리합니다. DNS, 시스템 방화벽 또는 물리 네트워크를 복구하는 기능은 아니며 프록시 연결이 정상임을 입증하는 데도 사용할 수 없습니다.
적합한 경우: 프록시 경로의 영향을 배제하고 로컬 네트워크 연결을 비교 확인할 때.
Proxy 모드에서는 접속할 수 있지만 Config 모드에서 실패한다면 deb나 rpm을 재설치하지 말고 Config에서 규칙 순서와 정책 참조를 확인하세요. DOMAIN-SUFFIX는 도메인 접미사로, IP-CIDR은 주소 대역으로, GEOIP는 주소의 지리적 위치 데이터로 매칭합니다. FINAL은 최종 기본 규칙에 사용됩니다. 이 규칙들의 동작은 실제 설정과 연결 정보에 따라 달라집니다.
7. 설치 및 업데이트 관련 자주 묻는 질문
deb를 다운로드했는데 apt에서 패키지를 찾지 못하는 이유는 무엇인가요?
apt에 로컬 파일 경로를 전달했는지 먼저 확인하세요. 전체 절대 경로를 사용하거나 파일이 있는 디렉터리로 이동한 뒤 ./로 시작하는 상대 경로를 지정하세요. 파일명만 입력하면 저장소의 패키지 이름으로 해석될 수 있습니다. 브라우저에서 다운로드가 완료되었는지도 확인하세요.
AppImage를 더블 클릭해도 반응이 없습니다. 다시 다운로드해야 하나요?
먼저 터미널에서 이 문서의 권한 부여 및 실행 명령을 사용해 실행 권한, 아키텍처, 런타임 문제를 구분하세요. FUSE 또는 GLIBC 오류라면 해당 환경 조건을 해결해야 합니다. 같은 파일을 반복해서 다운로드해도 시스템 의존성은 달라지지 않습니다.
업그레이드할 때 deb에서 AppImage로 바꿔도 되나요?
먼저 앱의 내보내기 기능으로 설정을 백업한 다음 기존 인스턴스를 종료하세요. 패키지 형식에 따라 설정 위치, 실행 경로, 데스크톱 통합 방식이 다를 수 있으므로 자동으로 이전된다고 가정하지 마세요. 새 인스턴스가 정상적으로 작동하는지 확인한 뒤 기존 패키지를 제거할지 결정하세요. 두 인스턴스가 실수로 동시에 실행되는 것을 방지할 수 있습니다.
설치는 성공했는데 구독 업데이트가 계속 실패합니다. 어떻게 해야 하나요?
구독 주소 전체, 네트워크 연결 여부, 서비스에서 반환한 오류를 확인하세요. 터미널이나 공개 로그에 token을 노출하지 마세요. 창이 열리고 로컬 설정을 읽을 수 있다면 패키지 형식 탓으로 돌리기보다 구독을 가져오는 경로부터 점검하세요.
설치 문제를 문의할 때는 배포판 이름, uname -m 출력, 선택한 패키지 형식, 실행한 명령, 전체 오류 메시지를 정리하세요. 앱 설치 디렉터리나 실행 파일 이름을 추측하지 말고, 암호, PrivateKey 또는 구독 token이 포함된 설정을 문의 내용에 그대로 첨부하지 마세요.