Linux 데스크톱에 Shadowrocket을 설치하려는 사용자를 위한 안내입니다. 먼저 배포판과 프로세서 아키텍처를 확인한 뒤 다운로드 페이지에서 deb, rpm 또는 AppImage를 선택하세요. 패키지 관리자로 설치하거나 AppImage에 실행 권한을 부여하면 됩니다. 설치 실패, 데스크톱에서 실행되지 않는 문제, 연결 설정 문제를 구분해 각각 확인합니다.
배포판, 아키텍처, 설치 파일 형식 확인하기
Shadowrocket의 Linux 설치 파일은 이 사이트의 다운로드 페이지에서 받을 수 있습니다. 파일 형식은 배포판에 따라, 아키텍처는 기기와 시스템 환경에 따라 선택합니다. 확장자가 같아도 패키지에 포함된 프로그램이 현재 프로세서에서 작동한다는 뜻은 아닙니다. AppImage도 모든 아키텍처에서 사용할 수 있는 것은 아닙니다.
데스크톱 터미널에서 아래 두 명령어를 실행합니다. 첫 번째 명령어로 배포판 식별 정보를 확인하고 ID, ID_LIKE, PRETTY_NAME 항목을 살펴보세요. 두 번째 명령어는 커널이 보고하는 시스템 아키텍처를 표시합니다. 일반적인 x86_64와 aarch64는 서로 다른 아키텍처입니다. 다운로드 페이지에 명시된 지원 범위를 기준으로 선택하세요.
cat /etc/os-release
uname -m
| 시스템 환경 | 우선 확인할 형식 | 설치 방법 |
|---|---|---|
| Debian, Ubuntu 및 호환 배포판 | deb | apt로 로컬 패키지를 설치하고 저장소에서 이용할 수 있는 의존성을 처리합니다. |
| Fedora 및 dnf를 사용하는 호환 배포판 | rpm | dnf로 로컬 패키지를 설치하고 트랜잭션에 표시되는 의존성 변경 사항을 확인합니다. |
| 그 밖의 데스크톱 배포판 | AppImage | 먼저 아키텍처와 실행 환경을 확인한 다음 실행 권한을 추가합니다. |
deb 설치: apt로 로컬 패키지와 의존성 처리하기
Debian 또는 Ubuntu 데스크톱에서는 apt를 사용해 deb 패키지를 설치하는 방법을 권장합니다. deb 파일을 두 번 클릭해 소프트웨어 설치 프로그램을 이용할 수도 있지만, 터미널에서는 전체 오류 메시지를 확인할 수 있어 의존성 누락, 아키텍처 불일치, 권한 부족을 구분하기 쉽습니다.
-
시스템 확인
cat /etc/os-release와uname -m을 실행합니다. 현재 환경에서 apt를 사용하는지 확인하고 아키텍처를 기록해 둡니다. -
설치 파일 받기
다운로드 페이지의 Linux 섹션에서 호환되는 deb 파일을 선택합니다. 다운로드된 파일 이름과 확장자를 그대로 유지하세요.
-
경로 복사
파일 관리자에서 파일 위치를 확인하고 전체 경로를 복사합니다. 아래 명령어를 실행한 뒤 터미널의 입력란에 경로를 붙여 넣으세요. 입력값 양쪽에 따로 따옴표를 추가하지 마세요.
-
설치 실행
apt가 표시하는 설치 및 의존성 처리 내용을 확인한 뒤 진행합니다. 설치가 완료되면 데스크톱 앱 목록에서 Shadowrocket을 실행하세요. 그래픽 앱을 sudo로 실행하지 마세요.
read -r -p 'deb 파일의 전체 경로를 붙여 넣으세요: ' pkg
pkg=$(realpath -- "$pkg")
sudo apt install "$pkg"
여기서 pkg는 입력한 실제 파일 경로를 저장하는 터미널 변수입니다. 명령어의 큰따옴표는 경로에 공백이 있어도 올바르게 처리합니다. realpath는 경로를 절대 경로로 변환해 apt가 파일 이름만 보고 저장소 패키지로 잘못 인식하는 일을 방지합니다. 실행하기 전에 입력한 경로에 실제 deb 파일이 있는지 확인하세요.
- 의존성을 충족할 수 없다는 메시지가 표시되면 누락된 의존성과 필요한 조건을 확인하고 현재 배포판이 지원 대상인지 살펴보세요.
sudo apt update는 설정된 저장소의 패키지 목록만 갱신합니다. 호환되지 않는 패키지를 호환되게 만들지는 않습니다. - 아키텍처가 일치하지 않는다는 메시지가 표시되면
uname -m결과와 다운로드 페이지의 아키텍처 안내를 다시 확인하세요. 강제 옵션으로 검사를 우회하지 마세요. - 다른 방법으로 작업하다 의존성 처리가 완료되지 않았다면
sudo apt --fix-broken install이 제안하는 변경 사항을 먼저 확인하세요. 필요한 소프트웨어가 실수로 삭제되지 않는지 확인한 뒤 진행합니다.
rpm 설치: dnf로 설치 트랜잭션 확인하기
dnf를 사용하는 시스템에서는 dnf로 로컬 rpm 파일을 설치하는 편이 하위 수준의 rpm 설치 명령어를 직접 사용하는 것보다 의존성 처리에 유리합니다. rpm은 패키지 형식일 뿐 호환성을 보장하지 않습니다. 배포판마다 저장소, 시스템 라이브러리, 패키징 규칙이 다를 수 있습니다.
read -r -p 'rpm 파일의 전체 경로를 붙여 넣으세요: ' pkg
pkg=$(realpath -- "$pkg")
sudo dnf install "$pkg"
이 명령어는 로컬 패키지를 dnf에 전달하고, 현재 시스템의 저장소에서 사용할 수 있는 의존성을 가져옵니다. 트랜잭션 요약이 표시되면 새로 설치, 업그레이드 또는 삭제될 소프트웨어를 하나씩 확인하세요. 설치와 관련 없는 패키지가 대량으로 교체되거나 삭제될 예정이라면 트랜잭션을 취소하고 패키지의 호환 환경을 다시 확인합니다.
deb 경로 확인
- 설치 도구
apt install- 입력 대상
- 로컬 deb 파일의 절대 경로
- 의존성 출처
- 현재 설정된 저장소
- 성공 기준
- 설치 트랜잭션이 오류 없이 완료됨
설치 프로그램에서 오류가 발생하면 패키지와 의존성 문제부터 해결하세요. 연결 문제는 아직 확인하지 않습니다.
rpm 경로 확인
- 설치 도구
dnf install- 입력 대상
- 로컬 rpm 파일의 절대 경로
- 의존성 출처
- 현재 활성화된 저장소
- 중단 조건
- 아키텍처 오류 또는 의존성을 충족할 수 없음
의존성 검사를 건너뛰어 실패한 트랜잭션을 겉으로만 성공한 것처럼 만들지 마세요.
터미널에 dnf: command not found가 표시되면 시스템에서 실제로 사용하는 패키지 관리자를 먼저 확인하세요. rpm을 지원하는 모든 배포판이 dnf를 사용하는 것은 아닙니다. 명령어를 그대로 따라 하려고 다른 패키지 관리자를 설치하지 마세요. 배포판 안내와 다운로드 페이지의 지원 범위를 확인해 알맞은 방법을 선택하세요.
AppImage 실행: 실행 권한을 추가하고 터미널 출력을 확인하기
AppImage는 보통 실행 파일 하나로 작동하며 apt나 dnf에 일반 시스템 패키지로 등록되지 않습니다. 먼저 현재 사용자가 소유한 고정된 디렉터리에 파일을 옮긴 다음 실행 권한을 추가하세요. 처음 실행할 때는 데스크톱 세션의 터미널을 이용해 오류 출력을 확인하는 것이 좋습니다. 그래픽 프로그램 전체를 sudo로 실행하지 마세요.
read -r -p 'AppImage 파일의 전체 경로를 붙여 넣으세요: ' app
app=$(realpath -- "$app")
chmod u+x -- "$app"
"$app"
chmod u+x는 파일 소유자에게 실행 권한을 추가합니다. chmod +x도 흔히 실행 권한을 추가할 때 쓰지만, 여기서는 소유자의 실행 권한만 명시적으로 변경합니다. 변수 참조에 큰따옴표를 사용하면 경로에 공백이 있어도 하나의 인수로 전달됩니다. 실행 권한을 부여해도 아키텍처가 바뀌거나 시스템 라이브러리가 추가되지는 않습니다.
Permission denied가 표시되면ls -l -- "$app"으로 실행 권한을 확인하고, 파일이 실행을 금지하는 마운트 지점에 있는지 살펴보세요. 실행 권한이 설정되어 있어도noexec마운트 옵션이 실행을 막을 수 있습니다.Exec format error가 표시되면 아키텍처와 파일 형식을 확인하세요. 권한을 반복해서 바꾸지 마세요. 이런 오류는 대개 권한 문제로 발생하지 않습니다.- FUSE 관련 라이브러리가 없다는 메시지가 표시되면 현재 배포판의 문서에 따라 호환되는 구성 요소를 설치하세요. 배포판마다 패키지 이름이 다를 수 있으므로 다른 시스템의 패키지 이름을 그대로 사용하지 마세요.
- 디스플레이 서비스에 연결할 수 없다는 메시지가 표시되면 로그인된 그래픽 데스크톱 세션에서 실행 중인지 확인하세요. 일반 SSH 터미널이나 디스플레이 서비스가 없는 환경은 데스크톱 실행 환경과 다릅니다.
처음 실행한 뒤: 설치 성공과 연결 성공 구분하기
Shadowrocket 창이 열리면 프로그램이 데스크톱에서 실행되기 시작한 것입니다. 사용자가 이미 보유한 서비스가 가져와졌거나 시스템 트래픽이 예상대로 처리되고 있다는 뜻은 아닙니다. 설치 문제는 설치 로그에서, 네트워크 문제는 앱 내 설정과 연결 상태에서 각각 확인하세요.
Home(홈)에서 현재 서비스 설정을 확인하고, 보유한 서비스 정보를 참고해 주소, 포트, 프로토콜, 인증 항목을 점검하세요. 프로토콜 이름만 보고 포트를 추측하지 마세요. 예를 들어 정보에 포트가 443으로 표시되어 있다면 그대로 입력해야 하며, 프로토콜이 바뀌었다고 임의로 다른 포트로 변경하면 안 됩니다. 접근 정보가 포함된 링크를 가져올 때는 전체 링크를 공개 로그나 스크린샷에 남기지 마세요.
Config(설정 파일)
권장Global Routing(전역 라우팅)은 현재 설정 파일의 규칙을 적용합니다. 먼저 Config(설정 파일)에서 파일이 선택되어 있는지 확인하세요. 앞선 규칙에 일치하지 않는 연결은 FINAL에 지정된 정책을 따르며, 항상 직접 연결되는 것은 아닙니다.
적합한 경우: 검토를 마친 설정 파일이 있고 목적지별로 트래픽을 분리하려는 경우
Proxy(프록시)
클라이언트가 처리하는 연결 범위에서 프록시 방식을 사용해 규칙에 따른 분기가 문제의 원인인지 확인할 수 있습니다. 운영체제의 모든 프로세스와 모든 프로토콜이 처리된다는 뜻은 아닙니다.
적합한 경우: 사용할 수 있는 서비스를 이미 보유하고 있으며 규칙 관련 문제의 범위를 잠시 좁혀 확인하려는 경우
Direct(직접 연결)
대상에 직접 연결하는 방식입니다. 현재 대상에 사용자가 보유한 프록시 서비스가 필요하다면 Direct 상태로는 해당 서비스의 작동 여부를 확인할 수 없습니다.
적합한 경우: 기본 네트워크와 직접 연결 상태를 확인하려는 경우
Global Routing의 Scene(시나리오)은 설정한 시나리오에 맞춰 사용해야 하며, 첫 설치 문제 해결을 위한 기본 선택 항목은 아닙니다. Settings(설정)의 On Demand(요청 시 연결)는 조건에 따라 연결을 시작하는 기능으로, 의존성 문제를 해결하거나 파일 실행 권한을 부여하지 않습니다. 먼저 수동으로 연결을 확인한 다음 자동화 조건을 설정하세요. 플랫폼마다 표시되는 옵션은 실제 화면을 기준으로 확인하세요.
설치 오류 FAQ 및 업데이트 안내
deb 파일을 다운로드했는데 시스템에서 지원하지 않는다고 합니다. 확장자를 rpm으로 바꾸면 되나요?
아니요. 확장자는 파일 내부의 패키지 구조를 바꾸지 않습니다. cat /etc/os-release를 실행해 시스템을 확인한 뒤 다운로드 페이지에서 알맞은 형식을 선택하세요. 파일 이름을 바꾸거나 패키지 관리자의 검사를 우회해 설치하지 마세요.
AppImage에 이미 chmod +x를 적용했는데 두 번 클릭해도 열리지 않는 이유는 무엇인가요?
그래픽 데스크톱의 터미널에서 파일을 직접 실행하고 첫 번째 오류 메시지를 확인하세요. 권한 오류라면 실행 권한과 마운트 옵션을 살펴보고, 아키텍처 또는 라이브러리 누락 오류라면 해당 문제에 맞게 해결하세요. 두 번 클릭했을 때 창이 뜨지 않는 것만으로는 원인을 판단하기 어렵습니다.
설치는 완료됐는데 앱 메뉴에서 찾을 수 없는 이유는 무엇인가요?
먼저 데스크톱 앱 검색을 닫았다가 다시 여세요. deb와 rpm의 메뉴 항목은 패키지에 데스크톱 실행 파일이 포함되어 있는지에 따라 달라집니다. AppImage는 메뉴에 자동으로 등록되지 않을 수 있습니다. 실행 파일 이름을 추측하거나 이 문제만으로 여러 형식을 반복 설치하지 마세요.
나중에 업데이트할 때 기존 파일을 모두 삭제해야 하나요?
먼저 기존 설정을 저장하세요. 패키지 식별 정보와 업그레이드 관계가 호환된다면 deb와 rpm은 해당 패키지 관리자로 업데이트할 수 있습니다. 충돌 메시지가 표시되면 중단하고 원인을 확인하세요. AppImage는 프로그램을 종료한 뒤 파일을 교체하고 실행 권한과 바로 가기 경로를 다시 확인합니다.
문제 해결을 마칠 때 배포판 이름, 아키텍처, 설치 형식, 실행한 명령어, 전체 오류 메시지를 기록해 두세요. 이런 정보가 단순히 '열리지 않음'이라고 설명하는 것보다 원인을 파악하는 데 도움이 됩니다. 로그를 공유하기 전에 구독 접근 정보, 비밀번호 및 기타 민감한 항목을 삭제하세요. 앱은 정상적으로 열리지만 네트워크가 연결되지 않는다면 설치 명령어를 반복하지 말고 연결과 설정을 확인하세요.