프록시 프로토콜 · Clash 문서

Shadowsocks (SS)

현재 Mihomo 필드를 기준으로 Clash 생태계의 Shadowsocks 아웃바운드를 설정합니다. 암호화 방식, UDP over TCP, 플러그인 전송을 다룹니다.

  • cipher
  • UDP over TCP
  • plugin-opts
  • smux
  • TLS
프록시 프로토콜

Shadowsocks 노드를 구성하는 필드

클라이언트는 cipher 와 함께 사용하는 password 를 사용해 Shadowsocks 암호화 방식을 만든 다음 server:port 에 지정된 서버에 연결합니다. 주소, 포트, 암호화 방식 및 비밀번호는 모두 같은 서버 설정에 속해야 합니다.

기본 Shadowsocks는 TCP와 UDP를 각각 전달할 수 있습니다. 플러그인은 Shadowsocks 연결 바깥에서 전송 방식이나 트래픽 형태를 바꾸며 기본 암호화 필드를 대체하지 않습니다.

name필수
정책 그룹과 규칙에서 참조하는 노드 이름입니다.
type필수
고정값 ss
server필수
Shadowsocks 서버 도메인 또는 IP입니다.
port필수
서버 수신 포트입니다.
cipher필수
암호화 방식이며 서버의 값과 정확히 일치해야 합니다.
password필수
현재 암호화 방식에 사용하는 Shadowsocks 비밀번호입니다.

서버에서 실제로 사용하는 Cipher 선택

현재 코어는 여러 Shadowsocks 암호화 방식을 지원합니다. 이름이 오래되거나 새로워 보인다는 이유로 cipher를 임의로 바꾸지 마세요. 클라이언트와 서버가 일치하지 않으면 암호화 핸드셰이크를 완료할 수 없습니다.

Shadowsocks 암호화 방식 분류
분류공식 필드 예시설명
AESaes-128-gcmaes-256-gcm、CTR、CFB、CCM、GCM-SIVAEAD 및 일부 호환용 스트림 암호화 방식 포함
ChaChachacha20-ietf-poly1305xchacha20-ietf-poly1305공식 목록의 ChaCha20 및 ChaCha8 변형도 지원
2022 Blake32022-blake3-aes-128-gcm2022-blake3-chacha20-poly1305비밀번호 또는 키 형식은 해당 서버 구현을 따라야 함
LEAlea-128-gcmlea-192-gcmlea-256-gcm서버가 같은 구현을 사용할 때만 선택
기타 호환 항목aegis-128laegis-256rc4-md5none기존 서버 설정에 맞춰 사용하고 호환성을 이유로 임의로 다운그레이드하지 마세요

UDP 및 UDP over TCP

udp 노드의 UDP 처리 허용 여부를 제어합니다. 기본적으로 UDP는 Shadowsocks 네이티브 UDP를 사용합니다. UOT를 켜면 UDP 데이터가 TCP 연결에 캡슐화되며 서버도 같은 메커니즘과 버전을 지원해야 합니다.

udp필요한 경우
노드의 UDP 처리를 허용하며 기본값은 꺼짐입니다.
udp-over-tcp필요한 경우
UDP over TCP를 활성화하며 기본값은 false
udp-over-tcp-version버전
UOT 버전은 1 또는 2만 지원하며 입력하지 않으면 버전 1을 사용합니다.
smux고급
범용 TCP 다중화 설정입니다. UOT와 같지 않으며 서버의 프로토콜 지원을 대신할 수도 없습니다.

플러그인 및 Plugin Options

한 노드에는 서버에 맞는 플러그인 하나만 선택해야 하며,plugin-opts 의 구조는 플러그인에 따라 달라집니다. Shadowsocks 최상위에는 범용 tls 옵션이 없습니다. TLS는 이를 지원하는 플러그인 옵션 안에서 설정해야 합니다.

Shadowsocks 플러그인 적용 범위
plugin주요 모드설정 범위
obfshttp 또는 tls일반적으로 사용 mode 와 함께 사용하는 host, simple-obfs 서버와 일치해야 함
v2ray-pluginwebsocket플러그인 안에서 TLS를 켤 수 있으며 현재 QUIC 모드는 지원하지 않음
gost-pluginwebsocketHost, Path, 요청 헤더, Mux 및 플러그인 내부 TLS 설정 가능
shadow-tlsShadow TLShost, password, 버전 및 선택적 ALPN 설정, 지원 버전은 1, 2, 3
restlsRestlshost, password, version-hint 및 선택적 트래픽 스크립트 설정
kcptunKCP매개변수는 kcptun 서버와 일치해야 하며 현재 구현에서는 UOT가 활성화됨
jlsJLShost, username, password 및 선택적 ALPN 설정
plugin필요한 경우
플러그인 이름입니다. 현재 코어가 지원하고 서버에서 실제로 활성화한 유형만 입력할 수 있습니다.
plugin-opts필요한 경우
플러그인 전용 옵션이며 서로 다른 플러그인 사이에서 그대로 재사용할 수 없습니다.
client-fingerprint필요한 경우
Shadow TLS, Restls 또는 JLS 등의 해당 플러그인에서 TLS 클라이언트 형태를 모방할 때 사용합니다.

기본 노드 예시 및 문제 해결

아래는 플러그인이 없는 기본 노드입니다. 구독에 플러그인이 포함되어 있다면 여섯 개의 기본 필드를 그대로 유지한 상태에서 plugin 및 해당 plugin-opts

  • 초기화 단계에서 cipher 오류가 보고되면 먼저 암호화 방식의 철자와 현재 코어 지원 목록을 확인하세요.
  • TCP는 작동하지만 UDP가 작동하지 않으면 서버 UDP, 클라이언트 udp 및 방화벽의 세 설정을 확인하세요.
  • 플러그인 연결에 실패하면 플러그인 이름, mode, host, path, TLS 및 비밀번호를 하나씩 확인하세요. SS 비밀번호만 확인해서는 안 됩니다.
YAML
proxies:
  - name: ss-node
    type: ss
    server: server.example.com
    port: 443
    cipher: chacha20-ietf-poly1305
    password: your-password
    udp: true