Shadowrocket Linux 설치 가이드: deb·rpm·AppImage 선택과 apt·dnf 설치 방법

배포판에 맞는 설치 파일을 선택하세요. Debian·Ubuntu는 deb와 apt, Fedora는 rpm과 dnf를 사용하고, 설치 없이 실행하려면 AppImage에 실행 권한을 부여하세요. 첫 실행 점검 항목도 안내합니다.

이 글의 핵심 내용

Shadowrocket Linux 버전을 설치하기 전에 배포판과 프로세서 아키텍처를 확인한 뒤 deb, rpm, AppImage 중에서 선택하세요. 그래픽 데스크톱을 사용하는 Linux 사용자를 위해 설치 파일 선택 기준, 실제 다운로드 파일을 확인하는 Bash 명령, 의존성 오류·실행 권한·데스크톱 실행·연결 설정 문제의 구분 방법을 안내합니다. 설치가 완료되어도 연결을 바로 사용할 수 있는 것은 아닙니다. 이후 설정에는 사용자가 이미 보유한 서비스 제공업체 정보가 필요합니다.

1. 배포판, 아키텍처 및 다운로드 방법 확인

Debian과 Ubuntu에서는 보통 deb를 우선 선택하고, Fedora에서는 rpm과 dnf를 사용합니다. 시스템 패키지 데이터베이스에 등록하지 않고 사용하려면 AppImage를 고려할 수 있습니다. 패키지 형식과 프로세서 아키텍처는 별개의 조건입니다. 파일 확장자가 맞더라도 포함된 프로그램이 현재 CPU와 호환된다는 뜻은 아닙니다.

전체 플랫폼 다운로드 페이지에서 Linux 항목을 열고 페이지에 실제로 제공되는 패키지와 아키텍처에 맞춰 선택하세요. Linux 버전은 무료입니다. iPhone / iPad 버전은 App Store에서 $2.99 일회성 결제로 제공되며, Mac(Apple 칩 및 Intel), Windows, Android 버전도 무료입니다. iPhone / iPad의 시스템 요구 사항은 App Store 페이지를 기준으로 확인하세요.

  1. 시스템 확인

    터미널을 열고 cat /etc/os-release를 실행해 ID, ID_LIKE, PRETTY_NAME 값을 확인하세요. 데스크톱 모양만으로 배포판을 판단하지 마세요. 같은 데스크톱 환경에서도 서로 다른 패키지 관리 체계를 사용할 수 있습니다.

  2. 아키텍처 확인

    uname -m을 실행하세요. 출력이 x86_64이면 일반적인 64비트 Intel / AMD 아키텍처이고, aarch64이면 64비트 ARM입니다. 다운로드 페이지에서 해당 아키텍처를 지원한다고 명시한 파일만 선택하세요.

  3. 설치 파일 선택

    다운로드 페이지의 Linux 항목에서 배포판에 맞는 형식을 선택하세요. rpm을 사용한다고 해서 반드시 dnf를 사용하는 것은 아닙니다. 다른 rpm 계열 배포판에서는 해당 패키지 관리자의 안내를 따르고 Fedora용 명령을 그대로 사용하지 마세요.

  4. 파일 위치 확인

    브라우저 다운로드 기록에서 파일이 저장된 폴더를 열고 다운로드가 완료됐는지 확인하세요. 아래 명령은 파일이 $HOME/Downloads에 있다고 가정합니다. 시스템의 다운로드 폴더가 다르면 명령의 폴더 경로를 실제 위치로 바꾸세요.

cat /etc/os-release
uname -m
환경우선 형식처리 방법
Debian / Ubuntudebapt로 로컬 파일을 설치하고 해결 가능한 의존성을 처리합니다
Fedorarpmdnf로 로컬 파일을 설치하고 트랜잭션 계획을 표시합니다
호환되는 그래픽 데스크톱 환경AppImage실행 권한을 부여한 뒤 실행합니다. 실행 환경 요구 사항은 별도로 충족해야 합니다.

2. Debian / Ubuntu: apt로 deb 설치

로컬 deb 파일은 apt install에 경로로 전달해야 합니다. 상대 경로 앞의 ./를 생략하면 apt가 입력값을 패키지 이름으로 처리할 수 있습니다. apt는 활성화된 소프트웨어 저장소에서 의존성을 가져올 수 있지만, 구형 배포판에서 프로그램에 필요한 모든 라이브러리를 제공한다고 보장하지는 않습니다.

아래 명령은 Bash에서 실행합니다. 다운로드 폴더에 있는 deb 파일을 나열하고 번호로 실제 파일을 선택하므로 파일명을 미리 알 필요가 없습니다. 폴더에 다른 프로그램의 설치 파일이 있을 수 있으니 방금 이 사이트에서 다운로드한 Shadowrocket 파일인지 반드시 확인하세요. 일치하는 파일이 없으면 설치를 진행하지 않습니다.

(
  cd "$HOME/Downloads" || exit 1
  shopt -s nullglob
  packages=(./*.deb)
  if ((${#packages[@]} == 0)); then
    printf '%s\n' '이 폴더에 deb 파일이 없습니다. 다운로드 위치를 확인하세요.'
    exit 1
  fi
  PS3='Shadowrocket deb 파일 번호를 입력하세요: '
  select pkg in "${packages[@]}"; do
    if [[ -n "$pkg" ]]; then
      sudo apt install "$pkg"
      break
    fi
    printf '%s\n' '목록에 있는 올바른 번호를 입력하세요.'
  done
)

3. Fedora: dnf로 rpm 설치

Fedora에서 dnf로 로컬 rpm을 설치하면 한 번의 트랜잭션에서 의존성과 충돌을 확인할 수 있습니다. 파일 확장자가 같다고 해서 다른 배포판용 rpm도 반드시 작동하는 것은 아닙니다. 라이브러리 이름, 의존성 조건, 데스크톱 통합 방식이 다를 수 있습니다.

(
  cd "$HOME/Downloads" || exit 1
  shopt -s nullglob
  packages=(./*.rpm)
  if ((${#packages[@]} == 0)); then
    printf '%s\n' '이 폴더에 rpm 파일이 없습니다. 다운로드 위치를 확인하세요.'
    exit 1
  fi
  PS3='Shadowrocket rpm 파일 번호를 입력하세요: '
  select pkg in "${packages[@]}"; do
    if [[ -n "$pkg" ]]; then
      sudo dnf install "$pkg"
      break
    fi
    printf '%s\n' '목록에 있는 올바른 번호를 입력하세요.'
  done
)

아키텍처 불일치, 의존성 충돌 또는 패키지 검증 오류가 발생하면 트랜잭션을 중단하고 전체 오류 메시지를 보관하세요. 검증을 건너뛰거나 파일을 강제로 덮어쓰는 옵션을 추가하지 마세요. 같은 패키지가 이미 설치되어 있다는 메시지가 표시되면 현재 설치 상태부터 확인하세요. 연결 오류를 해결하려고 설치 명령을 반복 실행하지 마세요.

deb 설치 핵심 사항

대상 환경
Debian / Ubuntu 및 호환 배포판
로컬 경로
./로 시작하고 경로 전체를 따옴표로 묶기
의존성 출처
현재 시스템에서 활성화된 소프트웨어 저장소
오류 확인 항목
의존성 이름, 아키텍처 및 apt 트랜잭션 요약

설치 파일과 의존성 환경이 모두 호환되어야 합니다.

rpm 설치 핵심 사항

이 문서에서 다루는 환경
Fedora 및 dnf
로컬 경로
실제 rpm 경로를 dnf에 전달
위치 확인
dnf 실행 전 트랜잭션 목록
중단 조건
아키텍처 불일치, 충돌 또는 검증 오류

Fedora용 명령을 모든 rpm 계열 시스템에 적용하지 마세요.

4. AppImage: 실행 권한을 부여한 뒤 실행

AppImage는 일반적으로 단일 실행 파일로 작동하므로 deb나 rpm처럼 설치 트랜잭션을 거쳐 시스템에 등록할 필요가 없습니다. 그렇다고 시스템 의존성이 전혀 필요 없는 것은 아닙니다. 프로세서 아키텍처, 그래픽 환경, 런타임 라이브러리, 마운트 조건에 따라 실행 여부가 달라질 수 있습니다. 파일을 장기간 보관할 위치에 먼저 옮기세요. 다운로드 폴더를 정리한 뒤 실행 파일이 사라지는 일을 방지할 수 있습니다.

아래 명령도 Bash에서 실행합니다. 선택한 파일에 현재 사용자의 실행 권한만 부여한 다음 현재 사용자로 실행합니다. 다운로드 폴더 전체에 재귀적으로 권한을 추가하거나 sudo로 그래픽 프로그램 전체를 실행하지 마세요.

(
  cd "$HOME/Downloads" || exit 1
  shopt -s nullglob
  packages=(./*.AppImage)
  if ((${#packages[@]} == 0)); then
    printf '%s\n' '이 폴더에 AppImage 파일이 없습니다. 다운로드 위치를 확인하세요.'
    exit 1
  fi
  PS3='Shadowrocket AppImage 파일 번호를 입력하세요: '
  select pkg in "${packages[@]}"; do
    if [[ -n "$pkg" ]]; then
      chmod u+x -- "$pkg" && "$pkg"
      break
    fi
    printf '%s\n' '목록에 있는 올바른 번호를 입력하세요.'
  done
)

5. 첫 실행: 설치와 연결을 따로 확인

창이 열렸다면 프로그램 실행 단계는 통과한 것입니다. 연결을 설정할 수 있는지는 사용자가 보유한 설정, 네트워크, 이름 확인, 선택한 정책에 따라 달라집니다. 이 사이트는 노드나 구독을 제공·판매·추천하지 않습니다. 연결 시간 초과만으로 설치 파일에 문제가 있다고 판단하지 마세요.

  1. 일반 사용자로 실행 중인지 확인: 애플리케이션 메뉴나 AppImage에서 Shadowrocket을 실행하세요. 프로그램이 필요한 시스템 권한을 요청하면 각 안내를 읽고 확인하세요. 클라이언트 전체를 미리 root 권한으로 실행하지 마세요.
  2. 기존 정보 준비: 서비스 제공업체에서 받은 주소, 포트, 프로토콜, 인증 정보를 확인하세요. 기존 구독을 가져올 때는 링크를 자격 증명처럼 안전하게 보관하고 공개 질문 게시물에 붙여 넣지 마세요.
  3. 설정 위치 확인: Home에서 기존 연결 항목을 확인하고, Config에서 사용할 구성을 확인하세요. Settings에서 관련 설정을 살펴보세요. 플랫폼마다 표시되는 옵션이 다를 수 있으므로 현재 화면에서 제공하는 항목을 기준으로 확인하세요.
  4. 라우팅 모드 확인: 화면에 Global Routing이 있다면 현재 Config, Proxy, Direct 중 어떤 모드인지 확인하세요. Direct는 프록시 연결이 작동하는지 판단하는 기준으로 적합하지 않습니다.
  5. 하나씩 테스트: 같은 대상으로 먼저 테스트한 뒤 한 번에 한 가지 설정만 변경하세요. 연결 전후에 시간 초과가 발생하는지, 이름 확인 오류가 나타나는지, 특정 대상에서만 실패하는지 기록하세요. 프로토콜, 규칙, DNS를 동시에 바꾸지 마세요.

규칙에 따라 테스트하려면 Config에서 다음 최소 규칙 예시를 사용해 순서를 확인할 수 있습니다. example.com은 설명용 도메인이며 서비스 주소가 아닙니다. PROXY는 현재 구성에서 사용할 수 있는 정책을 가리켜야 합니다. 이 내용을 기존 전체 구성에 그대로 덮어쓰지 마세요.

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY

규칙은 위에서 아래로 확인하며, 일치하면 해당 행의 정책을 사용합니다. 일치하지 않는 요청은 마지막의 FINAL 규칙에서 처리합니다. 위 예시는 192.168.0.0/16만 대상으로 로컬 네트워크 직접 연결을 보여 주며, 모든 사설 주소를 포함하지는 않습니다. no-resolve는 해당 IP 규칙을 위해 도메인 확인을 별도로 수행하지 않는다는 뜻이며, 모든 DNS 문제를 해결하는 옵션은 아닙니다.

6. Global Routing: 용도에 맞는 테스트 모드 선택

설치 문제를 점검할 때 라우팅 모드는 문제 범위를 좁히기 위한 것이며, 특정 모드가 언제나 더 낫다는 뜻은 아닙니다. 아래 비교는 Shadowrocket 자체 설정에만 해당합니다. 실제로 트래픽을 처리하는 범위는 플랫폼 권한과 현재 네트워크 연결 방식에도 영향을 받으므로 시스템의 모든 트래픽을 무조건 처리한다고 해석해서는 안 됩니다.

Config

권장

현재 활성화된 구성의 규칙에 따라 정책을 선택합니다. 먼저 Config에서 적용 중인 구성을 확인하고 규칙 순서와 FINAL을 살펴보세요. 규칙은 PROXY, DIRECT, REJECT를 지정할 수 있으므로 일치하지 않는 모든 요청이 직접 연결된다고 가정하지 마세요.

적합한 상황: 명확한 규칙을 사용하는 일상적인 연결 및 규칙 확인

Proxy

클라이언트가 처리하는 요청에 프록시 모드를 적용해 규칙 분기의 영향을 일시적으로 제외할 수 있습니다. 같은 대상이 Proxy에서는 연결되지만 Config에서는 연결되지 않는다면 프로그램을 다시 설치하기보다 일치하는 규칙과 정책부터 확인하세요.

적합한 상황: 규칙과 연결 간 차이를 일시적으로 확인

Direct

클라이언트가 처리하는 요청에 직접 연결 모드를 적용하면 현재 네트워크에서 직접 접속한 결과를 확인할 수 있습니다. Direct에서 접속에 성공해도 프록시 연결이 성공한 것은 아니며, 구독 내용이 유효하다는 뜻도 아닙니다.

적합한 상황: 직접 연결 기준을 확인하고 네트워크 동작을 비교

7. 자주 묻는 질문: 오류가 발생한 단계별 해결 방법

문의하기 전에 문제가 다운로드, 패키지 관리자 설치, 프로그램 실행, 연결 중 어느 단계에서 발생했는지 확인하세요. 오류 전체 문구와 배포판 이름, 프로세서 아키텍처를 함께 기록하면 단순히 “열리지 않아요”라고 설명하는 것보다 원인을 찾기 쉽습니다. 로그를 공유하기 전에 인증 정보, 구독 링크, 개인 주소를 삭제하세요.

apt에서 패키지를 찾을 수 없다고 합니다. 잘못 다운로드한 건가요?

먼저 입력값에 파일 경로가 포함됐는지 확인하세요. 현재 폴더에 있는 deb는 경로가 ./로 시작해야 합니다. 이 문서의 선택 스크립트는 이 접두사를 유지합니다. 파일이 없다는 메시지가 나오면 브라우저 다운로드 기록에서 실제 폴더를 확인하고 다운로드가 진행 중인지 살펴보세요. 파일명을 기억에 의존해 직접 입력하지 마세요.

dnf 설치 도중 의존성 충돌이 발생하면 어떻게 하나요?

먼저 트랜잭션을 취소하고 충돌한 패키지 이름을 기록한 뒤 시스템의 배포판과 아키텍처를 확인하세요. 패키지를 대량으로 삭제하는 트랜잭션을 그대로 진행하거나 강제 덮어쓰기로 문제를 우회하지 마세요. 다운로드 페이지에서 선택한 rpm이 해당 환경에 적합한지 다시 확인한 뒤 페이지에 다른 호환 형식이 제공되는지 살펴보세요.

AppImage에 실행 권한을 줬는데도 실행되지 않는 이유는 무엇인가요?

터미널에서 파일을 실행한 뒤 오류에 따라 확인하세요. Permission denied는 파일 권한과 마운트 옵션을, Exec format error는 아키텍처를, libfuse.so.2 오류는 FUSE 호환 라이브러리를 확인해야 합니다. 원인이 서로 다르므로 chmod를 반복해도 첫 번째 오류의 일부 상황에만 도움이 됩니다.

창은 열리지만 연결에 실패합니다. 다시 설치해야 하나요?

먼저 Home에서 선택된 항목을 확인한 다음 Global Routing의 현재 모드와 Config에서 적용 중인 규칙을 살펴보세요. 보유한 연결 주소, 포트, 인증 정보가 유효한지 확인하고 같은 대상으로 직접 연결과 프록시 결과를 각각 비교하세요. 시작 파일이 없거나 설치 트랜잭션이 실패한 증거가 있을 때만 설치 단계로 돌아가세요.

업데이트할 때 기존 파일을 바로 삭제해도 되나요?

deb와 rpm은 해당 패키지 관리자를 사용해 이 사이트에서 다운로드한 새 패키지를 설치하고 업그레이드 트랜잭션을 확인하세요. 시스템 폴더의 프로그램 파일을 직접 삭제하지 마세요. AppImage는 실행 중인 프로그램을 먼저 종료한 다음 보관 중인 파일을 교체하고 실행 권한을 확인하세요. 업데이트 전에 개인 구성을 백업하고, 업데이트 후 실행 항목과 적용 중인 구성을 다시 확인하세요.

Shadowrocket 다운로드