문서 설정 Shadowsocks

Shadowsocks

가장 대표적인 경량 프록시 프로토콜로, 암호화가 간단하고 성능이 좋으며 플러그인과 함께 사용하면 다양한 트래픽 위장도 할 수 있습니다. 노드 제공자와 자체 구축 노드에서 가장 흔히 볼 수 있는 프로토콜 중 하나입니다.

설정 예시

config.yaml YAML
proxies:
  - name: "ss1"
    type: ss
    server: server
    port: 443
    cipher: aes-128-gcm
    password: "password"
    udp: true
    udp-over-tcp: false
    plugin: obfs
    plugin-opts:
      mode: tls

기본 필드

password필수

연결 비밀번호입니다. SS2022 계열 암호화 방식에서는 이 값이 EIH key입니다.

cipher필수

암호화 방식으로, 자주 사용되는 것은 aes-128-gcm/aes-256-gcm/chacha20-ietf-poly1305/xchacha20-ietf-poly1305이며, 더 새로운 SS2022 계열인 2022-blake3-aes-128-gcm/2022-blake3-aes-256-gcm/2022-blake3-chacha20-poly1305도 있습니다. 예전 방식인 aes-*-ctr/aes-*-cfb 계열도 지원되지만 보안성과 성능이 AEAD 계열보다 떨어지므로 새 노드에는 사용을 권장하지 않습니다.

udp-over-tcp / udp-over-tcp-version선택

UDP 트래픽을 TCP 트래픽으로 위장해 전달합니다. TCP만 허용하는 일부 네트워크 환경에서 이를 사용해 제한을 우회할 수 있습니다.

plugin 플러그인

plugin 필드는 obfs/v2ray-plugin/gost-plugin/shadow-tls/restls/kcptun을 지원하며, 각 플러그인은 자체 plugin-opts를 가집니다.

obfs(simple-obfs)
YAML obfs
plugin: obfs
plugin-opts:
  mode: tls # 또는 http
  host: bing.com

트래픽을 TLS나 HTTP 핸드셰이크처럼 위장하는 가장 간단한 난독화 방식으로, 심층 패킷 검사에 대한 방어력은 제한적입니다.

shadow-tls
YAML shadow-tls
plugin: shadow-tls
client-fingerprint: chrome
plugin-opts:
  host: "cloud.tencent.com"
  password: "shadow_tls_password"
  version: 3 # 1/2/3 지원

SS 트래픽에 실제 TLS 핸드셰이크(host는 실제로 존재하는 웹사이트를 지정)를 한 겹 더 씌우는 방식으로, 위장 효과가 단순 obfs보다 더 자연스러우며 현재 차단 방지 능력이 강한 방식 중 하나입니다.

restls
YAML restls
plugin: restls
client-fingerprint: chrome # chrome/ios/firefox/safari 중 하나
plugin-opts:
  host: "www.microsoft.com" # TLS 1.3 서버여야 함
  password: [YOUR_RESTLS_PASSWORD]
  version-hint: "tls13"
  restls-script: "300?100<1,400~100,350~100,600~100,300~200,300~100"

shadow-tls보다 한 단계 더 나아가, restls-script로 핸드셰이크 이후의 트래픽 동작을 세밀하게 제어하여 "TLS in TLS"와 같은 특징을 숨깁니다.

v2ray-plugin
YAML v2ray-plugin
plugin: v2ray-plugin
plugin-opts:
  mode: websocket
  # tls: true
  # host: bing.com
  # path: /path

SS 트래픽을 WebSocket으로 감싸며, CDN을 씌울 수 있어 호환성이 좋습니다. 현재는 QUIC 모드를 아직 지원하지 않습니다.

그 외에도 kcptun 플러그인이 있는데, 트래픽을 KCP 프로토콜로 변환해 열악한 네트워크에서 전송 효율을 높입니다. 필드가 많고(key/crypt/mode/mtu 등) 사용 사례가 적어 여기서는 자세히 다루지 않습니다.