블로그로 돌아가기
1월 19, 2026가이드

VPS에서 Shadowsocks를 설정하여 검열을 우회하는 방법

안전하고 빠른 인터넷 검열 우회를 위해 Hiddence VPS에 Shadowsocks를 설치하고 구성하는 단계별 가이드.

VPS에서 Shadowsocks를 설정하여 검열을 우회하는 방법

Shadowsocks는 인터넷 검열을 우회하는 가장 효과적인 도구 중 하나로, 특히 엄격한 제한이 있는 국가에서 인기가 높습니다. 기존 VPN과 달리 Shadowsocks는 암호화가 포함된 SOCKS5 프록시를 사용하여 트래픽을 일반 HTTPS와 거의 구별할 수 없게 만듭니다. 이 가이드는 10분 안에 Hiddence VPS에 자체 Shadowsocks 서버를 배포하는 방법을 보여줍니다.

왜 Shadowsocks인가요?

  • 은폐성: 트래픽이 일반 HTTPS 연결로 위장되어 DPI 시스템에 의해 감지하기 어렵습니다
  • 속도: VPN에 비해 오버헤드가 적어 거의 네이티브 속도
  • 유연성: 애플리케이션 수준에서 작동하며 특정 프로그램에 대해 구성 가능
  • 크로스 플랫폼: Windows, macOS, Linux, Android, iOS용 클라이언트
  • 오픈 소스: 완전한 코드 투명성 및 보안

요구 사항

  • Hiddence VPS(최소 1GB RAM, 모든 Linux OS)
  • Ubuntu 22.04 또는 24.04(권장)
  • 서버에 대한 루트 접근 권한
  • 연결을 위한 SSH 클라이언트
  • 5-10분의 시간

Shadowsocks-Rust 설치(권장)

shadowsocks-rust 구현을 사용합니다 — Rust로 작성된 가장 빠르고 현대적인 버전입니다.

1단계: 시스템 준비

bash
# SSH를 통해 서버에 연결
ssh root@your-server-ip

# 시스템 업데이트
sudo apt update && sudo apt upgrade -y

# 필요한 패키지 설치
sudo apt install curl wget -y

2단계: Shadowsocks-Rust 설치

bash
# 최신 버전 다운로드
wget $(curl -s https://api.github.com/repos/shadowsocks/shadowsocks-rust/releases/latest | grep 'browser_download_url.*x86_64-unknown-linux-gnu.tar.xz' | cut -d '"' -f 4)

# 아카이브 추출
tar -xvf shadowsocks-*.tar.xz

# 바이너리를 시스템 디렉토리로 이동
sudo mv ssserver /usr/local/bin/
sudo mv sslocal /usr/local/bin/
sudo chmod +x /usr/local/bin/ss*

# 설치 확인
ssserver --version

3단계: 구성

bash
# 구성용 디렉토리 생성
sudo mkdir -p /etc/shadowsocks

# 구성 파일 생성
sudo nano /etc/shadowsocks/config.json

# 다음 구성 삽입:
{
    "server": "0.0.0.0",
    "server_port": 8388,
    "password": "YOUR_STRONG_PASSWORD_HERE",
    "timeout": 300,
    "method": "chacha20-ietf-poly1305",
    "fast_open": true,
    "mode": "tcp_and_udp",
    "nameserver": "8.8.8.8"
}

# YOUR_STRONG_PASSWORD_HERE를 강력한 비밀번호로 교체
# 생성 가능: openssl rand -base64 32

# 권장 암호화 방법:
# chacha20-ietf-poly1305(권장) — 속도와 보안의 균형
# aes-256-gcm — AES 표준
# aes-128-gcm — 더 빠름, 모바일용
# 2022-blake3-aes-256-gcm — 최신 SS2022

4단계: 자동 시작

시스템 부팅 시 자동 Shadowsocks 시작을 위한 systemd 서비스를 생성하겠습니다.

bash
# 서비스 파일 생성
sudo nano /etc/systemd/system/shadowsocks.service

# 삽입:
[Unit]
Description=Shadowsocks-Rust Server
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks/config.json
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

# 저장 및 서비스 활성화
sudo systemctl daemon-reload
sudo systemctl enable shadowsocks
sudo systemctl start shadowsocks

# 상태 확인
sudo systemctl status shadowsocks

5단계: 방화벽

bash
# UFW 사용 시
sudo ufw allow 8388/tcp
sudo ufw allow 8388/udp
sudo ufw reload

# firewalld 사용 시
sudo firewall-cmd --permanent --add-port=8388/tcp
sudo firewall-cmd --permanent --add-port=8388/udp
sudo firewall-cmd --reload

6단계: 최적화

최대 연결 속도를 위해 시스템을 구성하겠습니다.

bash
# 네트워크 스택 최적화
sudo nano /etc/sysctl.conf

# 파일 끝에 추가:
# BBR 혼잡 제어
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr

# 버퍼 증가
net.core.rmem_max=134217728
net.core.wmem_max=134217728
net.ipv4.tcp_rmem=4096 87380 67108864
net.ipv4.tcp_wmem=4096 65536 67108864
net.ipv4.tcp_mtu_probing=1

# Fast Open
net.ipv4.tcp_fastopen=3

# 변경 사항 적용
sudo sysctl -p

7단계: 클라이언트

서버를 설정한 후 클라이언트 장치를 연결해야 합니다. 각 플랫폼에 대한 자세한 지침은 아래를 참조하세요.

Windows 클라이언트

1. 다운로드 및 설치

shadowsocks/shadowsocks-windows GitHub 페이지로 이동하여 최신 버전(Shadowsocks-x.x.x.zip 파일)을 다운로드하세요. 아카이브를 임의의 폴더로 추출하고 Shadowsocks.exe를 실행하세요.

2. 서버 추가

시스템 트레이(시계 근처)의 Shadowsocks 아이콘을 우클릭하고 서버 > 서버 편집을 선택하세요. 세부 정보를 입력하세요:

3. 프록시 활성화

트레이 아이콘 우클릭 > 시스템 프록시 > 전역(모든 트래픽 프록시) 또는 PAC(차단된 사이트에 대한 자동 모드). '시스템 프록시 활성화'를 활성화하세요. 완료! 이제 모든 트래픽이 Shadowsocks를 통해 전달됩니다.

Android 클라이언트

1. 앱 설치

Google Play 스토어에서 Max Lv의 'Shadowsocks'를 설치하거나 GitHub(shadowsocks/shadowsocks-android)에서 APK를 다운로드하세요. 설치 후 앱을 엽니다.

2. 프로필 추가

오른쪽 하단 모서리의 '+' (더하기) 버튼을 탭하세요. '수동 설정'을 선택하세요. 필드를 입력하세요:

3. 연결

화면 하단의 종이 비행기 아이콘을 탭하여 연결하세요. 첫 연결 시 Android는 VPN 연결 생성을 위한 권한을 요청합니다 — '확인'을 탭하세요. 연결 후 상태 표시줄에 열쇠 아이콘이 나타납니다.

iOS 클라이언트

1. 앱 설치

App Store를 열고 'Shadowrocket'(유료, 약 $3) 또는 'Potatso Lite'(무료)를 검색하세요. Shadowrocket이 더 기능이 많고 안정적입니다. 앱을 설치하세요.

2. 서버 구성

Shadowrocket의 경우: 앱을 열고 오른쪽 상단 모서리의 '+'를 탭하세요. 유형 선택: Shadowsocks. 입력하세요:

3. 연결 활성화

서버 이름 옆의 스위치를 켜세요. iOS는 VPN 구성을 추가하기 위한 권한을 요청합니다 — 작업을 확인하세요(Face ID / Touch ID 필요할 수 있음). '연결됨' 상태는 성공적인 연결을 의미합니다.

macOS 클라이언트

1. ShadowsocksX-NG 설치

GitHub(shadowsocks/ShadowsocksX-NG/releases)에서 ShadowsocksX-NG를 다운로드하세요. DMG 파일을 열고 애플리케이션을 애플리케이션 폴더로 드래그하세요. ShadowsocksX-NG를 실행하세요.

2. 서버 추가

메뉴 바(오른쪽 상단)의 비행기 아이콘을 클릭하세요. 서버 > 서버 기본 설정을 선택하세요. 새 서버를 추가하려면 '+'를 클릭하세요:

3. 프록시 활성화

메뉴 바 아이콘 클릭 > Shadowsocks 켜기. 프록시 모드 선택: '자동 프록시 모드'(권장, 스마트 라우팅을 위해 PAC 사용) 또는 '전역 모드'(모든 트래픽이 프록시를 통해). 완료!

보너스: 다중 사용자 설정

친구나 가족과 서버를 공유하려면 다중 포트 구성을 사용하세요.

bash
# 구성 편집
sudo nano /etc/shadowsocks/config.json

# 다른 사용자를 위한 포트 형식 사용:
{
    "servers": [
        {
            "server": "0.0.0.0",
            "server_port": 8388,
            "password": "user1_password",
            "method": "chacha20-ietf-poly1305"
        },
        {
            "server": "0.0.0.0",
            "server_port": 8389,
            "password": "user2_password",
            "method": "chacha20-ietf-poly1305"
        },
        {
            "server": "0.0.0.0",
            "server_port": 8390,
            "password": "user3_password",
            "method": "chacha20-ietf-poly1305"
        }
    ],
    "timeout": 300,
    "mode": "tcp_and_udp"
}

# 방화벽에서 새 포트 열기 잊지 마세요
sudo ufw allow 8389:8390/tcp
sudo ufw allow 8389:8390/udp

# 서비스 재시작
sudo systemctl restart shadowsocks

고급: 난독화 플러그인 사용

DPI에 대한 추가 보호를 위해 Shadowsocks 트래픽을 위장하는 플러그인을 사용하세요.

v2ray-plugin(권장)

bash
# v2ray-plugin 설치
wget https://github.com/shadowsocks/v2ray-plugin/releases/download/v1.3.2/v2ray-plugin-linux-amd64-v1.3.2.tar.gz
tar -xvf v2ray-plugin-*.tar.gz
sudo mv v2ray-plugin_linux_amd64 /usr/local/bin/v2ray-plugin
sudo chmod +x /usr/local/bin/v2ray-plugin

# Shadowsocks 구성 업데이트
{
    "server": "0.0.0.0",
    "server_port": 443,
    "password": "your_password",
    "method": "chacha20-ietf-poly1305",
    "plugin": "/usr/local/bin/v2ray-plugin",
    "plugin_opts": "server;tls;host=your-domain.com;cert=/path/to/cert.pem;key=/path/to/key.pem"
}

# 클라이언트에 추가:
# 플러그인: v2ray-plugin
# 플러그인 옵션: tls;host=your-domain.com

문제 해결

일반적인 문제 및 해결 방법

  • 연결할 수 없음: 방화벽을 확인하고 포트가 열려 있는지 확인
  • 느린 연결: 다른 암호화 방법 시도(aes-128-gcm이 더 빠름)
  • 주기적 연결 끊김: TCP Fast Open 및 BBR 활성화
  • 서버가 차단됨: 난독화 플러그인 사용 및 포트 443 사용
  • 로그 확인: sudo journalctl -u shadowsocks -f

보안 팁

  • 강력한 비밀번호 사용(최소 20자, 무작위)
  • Shadowsocks를 최신 버전으로 정기적으로 업데이트
  • 서버 세부 정보를 공개적으로 공유하지 마세요 — 신뢰할 수 있는 사람들과만 공유
  • 기본 포트(8388)를 비표준으로 변경
  • 현대적인 암호화 방법 사용(chacha20-ietf-poly1305 이상)
  • 적극적인 검열이 있는 지역에서 난독화 플러그인 사용 고려
  • 트래픽 사용량 모니터링: sudo apt install vnstat && vnstat -l
  • 자동 시스템 업데이트 설정