Debian·Ubuntu 계열은 deb, Fedora 등 dnf를 사용하는 시스템은 rpm을 우선 선택하세요. 프로그램을 단일 파일로 보관하려면 AppImage를 고려할 수 있습니다. 먼저 배포판과 CPU 아키텍처를 확인한 뒤 로컬 패키지 설치, 실행 권한 설정, 첫 연결을 점검합니다. Linux 데스크톱에서 Shadowrocket을 사용하려는 분을 위한 안내이며, 사용할 서버나 구독 설정은 미리 준비되어 있어야 합니다.
1. 배포판과 아키텍처를 확인한 뒤 설치 형식을 선택하세요
설치 형식과 CPU 아키텍처는 서로 별개의 조건입니다. deb와 rpm은 패키지 형식을 나타내며, 이 정보만으로 파일이 현재 프로세서에 맞는지 알 수 없습니다. AppImage도 모든 아키텍처에서 사용할 수 있는 파일은 아닙니다. 아래 두 명령을 실행해 배포판의 ID, ID_LIKE 및 아키텍처를 확인한 다음 다운로드 페이지에서 해당 패키지가 있는지 살펴보세요.
cat /etc/os-release
uname -m
uname -m 결과가 x86_64이면 보통 x64 또는 amd64, aarch64이면 보통 ARM64에 해당합니다. 다운로드 페이지에 맞는 아키텍처가 표시되어 있지 않다면 확장자만 보고 실행하지 말고, 다른 아키텍처의 파일 이름을 바꿔 설치하지도 마세요. 아래 표를 참고해 형식을 선택하세요.
| 현재 시스템 | 우선 형식 | 설치 방법 |
|---|---|---|
| Debian·Ubuntu 및 호환 배포판 | deb | apt로 로컬 파일을 설치하고 저장소에서 이용 가능한 의존성을 처리합니다 |
| Fedora 및 dnf를 사용하는 호환 배포판 | rpm | dnf로 로컬 파일을 설치하고 의존성을 확인합니다 |
| 기타 Linux 데스크톱 환경 | AppImage | 아키텍처와 실행 요구 사항을 확인한 뒤 실행 권한을 설정합니다 |
rpm을 사용한다고 해서 모든 시스템이 dnf를 사용하는 것은 아닙니다. 배포판에서 다른 패키지 관리자를 사용한다면 해당 배포판의 로컬 패키지 설치 방법을 따르세요. AppImage는 보관과 이동이 편리하지만 시스템 라이브러리, 마운트 기능, 데스크톱 환경의 영향을 받으므로 모든 Linux 시스템에서 바로 실행된다고 보장할 수 없습니다.
2. 로컬 파일 준비 및 설치 전 확인
다운로드 안내의 Linux 섹션에서 시스템과 아키텍처에 맞는 파일을 선택하세요. 다운로드가 끝나면 파일 관리자에서 파일이 있는 폴더로 이동한 뒤 ‘터미널에서 열기’와 같은 시스템 기능을 사용해 해당 폴더에서 터미널을 여세요. 다운로드 폴더 이름이 반드시 Downloads라고 가정하지 마세요. 데스크톱 언어와 브라우저 설정에 따라 경로가 다를 수 있습니다.
-
시스템 확인
cat /etc/os-release와uname -m을 실행해 배포판 계열과 CPU 아키텍처를 확인하세요. -
형식 선택
이 사이트의 다운로드 안내에서 Linux 섹션을 열고 시스템에 맞는 deb, rpm 또는 AppImage를 선택해 현재 사용자가 접근할 수 있는 폴더에 저장하세요.
-
파일 정리
아래 명령을 그대로 입력할 수 있도록 다운로드한 파일의 이름을
Shadowrocket.deb,Shadowrocket.rpm또는Shadowrocket.AppImage로 바꾸세요. 실제로 다운로드한 한 가지 형식의 파일만 변경하면 됩니다. -
폴더 확인
파일이 있는 폴더에서 터미널을 열고
pwd와ls -lh를 실행해 현재 경로와 파일 다운로드가 완료되었는지 확인한 다음 해당 형식의 명령을 실행하세요.
이후에 사용하는 짧은 파일 이름은 로컬에서 이름을 바꾼다는 전제일 뿐, 다운로드 서버의 파일명이거나 별도로 찾아야 하는 버전을 뜻하지 않습니다. 원래 파일명을 유지했다면 명령의 파일명을 실제 이름으로 바꾸세요. 경로에 공백이 있으면 경로 전체를 따옴표로 감싸세요. 와일드카드로 폴더 안의 여러 이전 패키지를 한꺼번에 설치하지 마세요.
패키지 관리자로 설치
- 로컬 deb 파일
./Shadowrocket.deb- 로컬 rpm 파일
./Shadowrocket.rpm- 설치 권한
- sudo로 패키지 관리자 실행
- 일반 실행
- 현재 데스크톱 사용자로 실행
설치에 관리자 권한이 필요하더라도 그래픽 프로그램을 root로 실행해야 하는 것은 아닙니다.
AppImage 실행
- 로컬 파일
./Shadowrocket.AppImage- 실행 권한
chmod u+x- 저장 위치
- 현재 사용자가 소유한 로컬 폴더
- 실행 방법
- 터미널에서 실행하거나 파일 관리자에서 열기
실행 권한을 부여한 뒤에도 파일 시스템의 실행 및 마운트 조건을 충족해야 합니다.
3. deb 설치: apt로 로컬 패키지 처리
Debian·Ubuntu 계열 시스템에서는 apt로 로컬 deb 파일을 설치하는 것이 좋습니다. 명령의 ./는 현재 폴더의 파일을 뜻합니다. 이를 생략하면 apt가 이미 다운로드한 설치 파일을 읽는 대신 입력한 문자열을 패키지 이름으로 검색할 수 있습니다.
sudo apt update
sudo apt install ./Shadowrocket.deb
첫 번째 명령은 현재 설정된 소프트웨어 저장소의 패키지 목록을 갱신하고, 두 번째 명령은 로컬 패키지를 읽어 의존성을 해결합니다. 실행 전에 apt가 표시하는 작업 요약을 확인하세요. 데스크톱 구성 요소를 대량으로 제거하려 하거나 의존성을 해결할 수 없거나 아키텍처가 맞지 않는다면 설치를 취소하고 배포판, 저장소, 파일 아키텍처를 먼저 확인하세요. 의존성 검사를 강제로 건너뛰지 마세요.
- 파일을 찾을 수 없다는 메시지가 표시되나요?
ls -lh ./Shadowrocket.deb를 실행해 명령을 실행한 폴더와 대소문자가 일치하는지 확인하세요. - 의존성을 가져올 수 없다는 메시지가 표시되나요? 먼저 시스템 소프트웨어 저장소가 정상적으로 갱신되는지 확인하세요. 이는 패키지 관리자나 시스템 의존성 문제이며, Shadowrocket 연결 설정과는 관련이 없습니다.
- 패키지 관리자가 사용 중이라는 메시지가 표시되나요? 시스템 업데이트가 끝날 때까지 기다리세요. 잠금 파일을 바로 삭제하거나 설치 프로세스를 여러 개 동시에 실행하지 마세요.
- 설치가 완료되면 데스크톱 앱 목록에서 Shadowrocket을 검색해 일반 사용자로 실행하세요. 메뉴에 바로 표시되는지는 데스크톱 메뉴 갱신 시점에 따라 달라질 수 있습니다.
나중에 deb를 수동으로 업데이트할 때도 새로 다운로드한 로컬 패키지에 sudo apt install ./Shadowrocket.deb를 실행하면 됩니다. 로컬 설치만으로 업데이트 저장소가 자동 추가되는 것은 아닙니다. 다운로드 안내에 해당 기능이 명시되어 있지 않다면 시스템 업데이트 프로그램이 이후 버전을 자동으로 가져온다고 볼 수 없습니다.
4. rpm 설치: dnf로 의존성 확인
Fedora 등 dnf를 사용하는 시스템에서는 로컬 rpm을 바로 설치할 수 있습니다. 파일이 있는 폴더로 이동해 아래 명령을 실행하고 dnf가 표시하는 작업 요약을 확인한 뒤 설치를 진행하세요. deb 파일의 확장자를 rpm으로 바꿔도 내부 패키지 형식은 바뀌지 않습니다.
sudo dnf install ./Shadowrocket.rpm
dnf는 패키지 정보를 읽고 현재 활성화된 저장소에서 의존성을 해결하려고 합니다. 설치에 실패하면 오류 메시지 전체를 보관하고, 파일이 없는 경우인지, 아키텍처가 맞지 않는지, 의존성이 부족한지, 시스템 정책이 거부한 것인지 먼저 구분하세요. 상황마다 해결 방법이 다르므로 그래픽 실행 아이콘을 반복해서 눌러도 해결되지 않습니다.
No such file or directory가 표시되면 파일명과 현재 폴더를 확인하세요. 바로 시스템 설정을 바꾸지 마세요.- 의존성 충돌이나 필요한 기능을 제공할 수 없다는 오류가 표시되면 해당 패키지가 시스템을 지원하는지, 저장소가 정상인지 확인하세요.
- 출처나 서명 관련 알림이 표시되면 파일이 이 사이트의 다운로드 페이지에서 제공된 것이 맞는지 확인하고 배포판의 패키지 검증 요구 사항을 따르세요. 검증을 기본적으로 끄지 마세요.
- 설치가 완료되면 데스크톱 앱 목록에서 Shadowrocket을 실행하세요. 창이 열리지 않으면 터미널에서 실제로 설치된 프로그램을 실행하고 오류 메시지를 보관하세요.
5. AppImage 실행 권한 설정 및 첫 실행
AppImage는 보통 설치하는 대신 파일에 실행 권한을 부여하는 것부터 시작합니다. 현재 사용자가 소유한 로컬 폴더에 저장하고, 실행이 제한된 공유 드라이브나 임시 다운로드 폴더, 이동식 저장 장치에서 바로 실행하지 않는 것이 좋습니다. 파일명을 확인한 뒤 다음 명령을 실행하세요.
chmod u+x ./Shadowrocket.AppImage
ls -l ./Shadowrocket.AppImage
./Shadowrocket.AppImage
chmod u+x는 파일 소유자에게만 실행 권한을 추가하므로 chmod 777을 사용할 필요가 없습니다. ls -l 결과에서 소유자 권한 부분에 x가 있으면 해당 실행 권한이 설정된 것입니다. 터미널에서 실행하면 오류를 확인할 수 있어, 두 번 클릭해도 반응이 없는 문제를 진단할 때 특히 유용합니다.
권한을 추가했는데도 Permission denied가 표시되는 이유는 무엇인가요?
먼저 ls -l ./Shadowrocket.AppImage를 실행해 소유자와 권한을 확인한 뒤 findmnt -T ./Shadowrocket.AppImage로 파일이 있는 파일 시스템을 확인하세요. 마운트 옵션에 noexec가 포함되어 있다면 파일을 실행 가능한 사용자 로컬 폴더로 옮겨 다시 시도하세요. 시스템 마운트 설정을 바로 변경하지 마세요.
libfuse.so.2가 없다는 메시지가 표시됩니다. 어떤 패키지를 설치해야 하나요?
실행 환경에 FUSE 2 호환 라이브러리가 없을 수 있다는 뜻입니다. Debian이나 이전 버전의 Ubuntu에서는 먼저 apt-cache policy libfuse2를 조회하세요. 새 패키지 이름을 사용하는 Ubuntu에서는 apt-cache policy libfuse2t64를 조회할 수 있습니다. 해당 배포판에서 실제로 제공되고 시스템에 맞는 라이브러리만 설치하세요. 대신 FUSE 3을 제거하지 마세요.
Exec format error가 표시되는데, 권한 설정이 잘못된 건가요?
먼저 uname -m으로 시스템 아키텍처를 확인하고 file ./Shadowrocket.AppImage로 파일 형식을 살펴보세요. 아키텍처가 맞지 않으면 다운로드 안내로 돌아가 해당 파일을 선택하세요. chmod를 반복해도 아키텍처 차이는 해결되지 않습니다.
터미널에서는 실행되는데 앱 메뉴에서 찾을 수 없는 이유는 무엇인가요?
AppImage 파일이 실행된다고 해서 시스템에 데스크톱 메뉴 항목이 자동으로 만들어지는 것은 아닙니다. 먼저 파일 경로를 그대로 유지하고 터미널에서 정상적으로 실행되는지 확인하세요. 메뉴 항목이 필요하면 현재 데스크톱 환경의 앱 실행기 설정에서 해당 파일의 절대 경로를 추가하세요. 나중에 삭제할 임시 폴더를 지정하지 마세요.
오류에 FUSE 마운트가 명확히 언급되어 있다면 호환 라이브러리를 설치했더라도 컨테이너 환경이나 장치 권한의 제한이 원인일 수 있습니다. 이 경우 그래픽 프로그램 전체에 관리자 권한을 부여하는 대신 배포판에 맞는 deb 또는 rpm을 고려하세요. 네트워크 설정을 가져오기 전에 프로그램을 안정적으로 실행하는 것부터 별도로 확인하세요.
6. 첫 연결: 설정을 확인한 다음 트래픽 처리 방식 점검
프로그램이 열리는 것과 프록시 연결을 사용할 수 있는 것은 별개의 문제입니다. 이 안내에서는 사용자가 직접 준비한 서비스와 구독이 있다고 가정합니다. Home에서 기존 서버를 추가하거나 Add Server에서 설정 유형에 맞는 Subscribe를 선택해 기존 구독을 가져오세요. 가져온 뒤 목록에 서버가 표시되는지 확인하고 사용할 항목을 선택하세요. 가져오기가 완료됐다고 연결까지 완료된 것은 아닙니다.
- 설정 확인: 서버 주소, 포트, 프로토콜, 인증 항목이 원래 설정과 일치하는지 확인하세요. Shadowsocks, VMess, VLESS, Trojan, Hysteria2, WireGuard는 각각 필요한 항목이 다르므로 Type만 바꿔서는 프로토콜을 변환할 수 없습니다.
- 서버 선택: Home에서 사용할 항목이 선택되어 있는지 확인한 뒤 연결 스위치를 켜세요. 시스템에서 네트워크 관련 권한을 요청하면 허용 범위를 먼저 확인하고 결정하세요.
- 테스트 실행: Connectivity Test 결과를 확인한 다음 평소 접속할 수 있는 웹페이지를 브라우저에서 열어 보세요. 클라이언트 연결 테스트와 실제 앱 트래픽을 구분할 수 있습니다.
- 구독은 별도로 확인: 구독 업데이트에 실패하면 먼저 원래 링크가 유효한지, 네트워크에 연결할 수 있는지 확인하세요. 구독 주소의 시간 초과 문제를 해결하려고 서버 인증 정보를 바꾸지 마세요.
Global Routing은 가로챈 트래픽을 처리하는 방식을 결정합니다. 문제를 확인할 때는 한 번에 조건 하나만 바꾸세요. 서버를 전환하고 DNS를 변경하고 규칙까지 바꾸면 원인을 파악하기 어렵습니다. 아래는 Shadowrocket 내부의 트래픽 처리 방식 비교이며, 특정 옵션을 켜면 Linux의 모든 프로세스 트래픽이 반드시 가로채진다는 뜻은 아닙니다.
Config
권장현재 활성화된 구성 파일의 규칙에 따라 트래픽을 처리합니다. 트래픽에 따라 PROXY, DIRECT 또는 REJECT가 적용될 수 있습니다. 평소 사용하기 전에 Config에서 활성화된 파일이 네트워크 요구 사항에 맞는지 확인하세요.
적합한 경우: 분명한 분할 라우팅 규칙을 사용하는 일상적인 연결.
Proxy
가로챈 트래픽을 프록시 방식으로 처리합니다. Config의 결과와 잠시 비교할 때 사용할 수 있습니다. 시스템 프록시, 앱 자체의 프록시 설정 또는 트래픽 가로채기 범위 확인을 대신하지는 않습니다.
적합한 경우: 문제가 규칙 선택과 관련 있는지 일시적으로 확인할 때.
Direct
가로챈 트래픽을 직접 연결 방식으로 처리합니다. Direct 상태라면 연결 스위치가 켜져 있어도 대상 요청이 선택한 프록시 서버를 거친다고 단정할 수 없습니다.
적합한 경우: 로컬 네트워크의 직접 연결 상태와 비교할 때.
Connectivity Test는 성공했는데 특정 앱에 계속 접속할 수 없다면 해당 앱이 시스템 프록시를 사용하는지, 별도 프록시 설정이 있는지, 대상 도메인에 어떤 규칙이 적용됐는지 확인하세요. DOMAIN-SUFFIX는 도메인 접미사를, IP-CIDR은 주소 대역을 매칭합니다. GEOIP는 IP 위치 데이터베이스를 기준으로 판단하며, FINAL은 앞선 규칙에 매칭되지 않은 트래픽을 처리합니다. 규칙에 따라 결과가 달라지는 것은 Linux 설치 실패와 별개의 문제입니다.