Clash에는 여러 유형의 아웃바운드가 있으며, 각 유형마다 고유한 특징과 사용 사례가 있습니다. 이 페이지에서는 각 유형의 공통 특징과 사용 및 구성 방법을 소개합니다.
Proxies 프록시 노드
Proxies 프록시 노드는 구성할 수 있는 아웃바운드 대상입니다. 프록시 서버와 마찬가지로 패킷의 목적지를 여기서 정의합니다.
Shadowsocks
Clash는 다음 Shadowsocks 암호화 방식을 지원합니다:
| 계열 | 암호화 방식 |
|---|---|
| AEAD | aes-128-gcm, aes-192-gcm, aes-256-gcm, chacha20-ietf-poly1305, xchacha20-ietf-poly1305 |
| 스트림 | aes-128-cfb, aes-192-cfb, aes-256-cfb, rc4-md5, chacha20-ietf, xchacha20 |
| 블록 | aes-128-ctr, aes-192-ctr, aes-256-ctr |
또한 Clash는 널리 쓰이는 Shadowsocks 플러그인 obfs 및 v2ray-plugin을 지원합니다.
- name: "ss1"
type: ss
# interface-name: eth0
# routing-mark: 1234
server: server
port: 443
cipher: chacha20-ietf-poly1305
password: "password"
# udp: true- name: "ss2"
type: ss
# interface-name: eth0
# routing-mark: 1234
server: server
port: 443
cipher: chacha20-ietf-poly1305
password: "password"
plugin: obfs
plugin-opts:
mode: tls # or http
# host: bing.com- name: "ss3"
type: ss
# interface-name: eth0
# routing-mark: 1234
server: server
port: 443
cipher: chacha20-ietf-poly1305
password: "password"
plugin: v2ray-plugin
plugin-opts:
mode: websocket # 暂不支持 QUIC
# tls: true # wss
# skip-cert-verify: true
# host: bing.com
# path: "/"
# mux: true
# headers:
# custom: valueShadowsocksR
Clash는 악명 높은 검열 우회 프로토콜 ShadowsocksR도 지원합니다.
다음 ShadowsocksR 암호화 방식을 지원합니다:
| 계열 | 암호화 방식 |
|---|---|
| 스트림 | aes-128-cfb, aes-192-cfb, aes-256-cfb, rc4-md5, chacha20-ietf, xchacha20 |
지원되는 난독화 방식:
- plain
- http_simple
- http_post
- random_head
- tls1.2_ticket_auth
- tls1.2_ticket_fastauth
지원되는 프로토콜:
- origin
- auth_sha1_v4
- auth_aes128_md5
- auth_aes128_sha1
- auth_chain_a
- auth_chain_b
- name: "ssr"
type: ssr
# interface-name: eth0
# routing-mark: 1234
server: server
port: 443
cipher: chacha20-ietf
password: "password"
obfs: tls1.2_ticket_auth
protocol: auth_sha1_v4
# obfs-param: domain.tld
# protocol-param: "#"
# udp: trueVmess
Clash는 다음 Vmess 암호화 방식을 지원합니다:
- auto
- aes-128-gcm
- chacha20-poly1305
- none
- name: "vmess"
type: vmess
# interface-name: eth0
# routing-mark: 1234
server: server
port: 443
uuid: uuid
alterId: 32
cipher: auto
# udp: true
# tls: true
# skip-cert-verify: true
# servername: example.com # 优先于 wss 主机
# network: ws
# ws-opts:
# path: /path
# headers:
# Host: v2ray.com
# max-early-data: 2048
# early-data-header-name: Sec-WebSocket-Protocol- name: "vmess-http"
type: vmess
# interface-name: eth0
# routing-mark: 1234
server: server
port: 443
uuid: uuid
alterId: 32
cipher: auto
# udp: true
# network: http
# http-opts:
# # method: "GET"
# # path:
# # - '/'
# # - '/video'
# # headers:
# # Connection:
# # - keep-alive- name: "vmess-h2"
type: vmess
# interface-name: eth0
# routing-mark: 1234
server: server
port: 443
uuid: uuid
alterId: 32
cipher: auto
network: h2
tls: true
h2-opts:
host:
- http.example.com
- http-alt.example.com
path: /- name: vmess-grpc
type: vmess
# interface-name: eth0
# routing-mark: 1234
server: server
port: 443
uuid: uuid
alterId: 32
cipher: auto
network: grpc
tls: true
servername: example.com
# skip-cert-verify: true
grpc-opts:
grpc-service-name: "example"Socks5
또한 Clash는 Socks5 프록시를 지원합니다.
- name: "socks"
type: socks5
# interface-name: eth0
# routing-mark: 1234
server: server
port: 443
# username: username
# password: password
# tls: true
# skip-cert-verify: true
# udp: trueHTTP
Clash는 HTTP 프록시도 지원합니다:
- name: "http"
type: http
# interface-name: eth0
# routing-mark: 1234
server: server
port: 443
# username: username
# password: password- name: "http"
type: http
# interface-name: eth0
# routing-mark: 1234
server: server
port: 443
# username: username
# password: password
tls: true
skip-cert-verify: trueSnell
선택적 검열 우회 프로토콜로 Clash는 Snell 지원도 통합했습니다.
# 暂不支持 UDP
- name: "snell"
type: snell
# interface-name: eth0
# routing-mark: 1234
server: server
port: 44046
psk: yourpsk
# version: 2
# obfs-opts:
# mode: http # or tls
# host: bing.comTrojan
Clash에는 널리 사용되는 Trojan 프로토콜 지원이 내장되어 있습니다:
- name: "trojan"
type: trojan
# interface-name: eth0
# routing-mark: 1234
server: server
port: 443
password: yourpsk
# udp: true
# sni: example.com # aka server name
# alpn:
# - h2
# - http/1.1
# skip-cert-verify: true- name: trojan-grpc
type: trojan
# interface-name: eth0
# routing-mark: 1234
server: server
port: 443
password: "example"
network: grpc
sni: example.com
# skip-cert-verify: true
udp: true
grpc-opts:
grpc-service-name: "example"- name: trojan-ws
type: trojan
# interface-name: eth0
# routing-mark: 1234
server: server
port: 443
password: "example"
network: ws
sni: example.com
# skip-cert-verify: true
udp: true
# ws-opts:
# path: /path
# headers:
# Host: example.comProxy Groups 정책 그룹
Proxy Groups 정책 그룹은 서로 다른 정책에 따라 규칙에서 전달된 요청을 분배합니다. 규칙에서 직접 참조하거나 다른 정책 그룹에서 참조할 수 있으며, 최상위 정책 그룹은 규칙에서 참조합니다.
relay 릴레이
요청은 지정된 프록시 서버를 차례로 거쳐 릴레이되며 현재 UDP는 지원하지 않습니다. 지정한 프록시 서버에 다른 relay 릴레이가 포함되어서는 안 됩니다.
url-test 지연 시간 테스트
Clash는 지정된 URL을 통해 목록의 각 프록시 서버에 HTTP HEAD 요청을 주기적으로 보내 지연 시간을 측정합니다. 최대 허용 오차, 테스트 간격 및 대상 URL을 설정할 수 있습니다.
fallback 가용성 테스트
Clash는 지정된 URL을 통해 목록의 각 프록시 서버에 HTTP HEAD 요청을 주기적으로 보내 가용성을 확인합니다. 사용 가능한 첫 번째 서버가 선택됩니다.
load-balance 부하 분산
eTLD+1이 같은 요청에는 동일한 프록시 서버를 사용합니다.
select 수동 선택
Clash는 시작할 때 정책 그룹의 첫 번째 프록시 서버를 기본으로 사용합니다. RESTful API로 사용할 서버를 선택할 수 있습니다. 이 모드에서는 구성에 서버를 직접 작성하거나 Proxy Providers 프록시 집합을 통해 동적으로 추가할 수 있습니다.
경우에 따라 직접 연결로 패킷을 라우팅할 수도 있습니다. 이때 DIRECT 아웃바운드를 사용합니다.
다른 네트워크 인터페이스를 사용하려면 DIRECT 아웃바운드를 포함한 정책 그룹을 만들고 interface-name 옵션을 설정합니다.
- name: "My Wireguard Outbound"
type: select
interface-name: wg0
proxies: [ 'DIRECT' ]Proxy Providers 프록시 집합
프록시 집합을 사용하면 서버 목록을 구성 파일에 직접 입력하지 않고 동적으로 불러올 수 있습니다. 현재 서버 목록을 불러오는 프록시 집합은 두 가지입니다:
http: Clash는 시작할 때 지정된 URL에서 서버 목록을 불러옵니다.interval옵션을 설정하면 Clash가 원격 서버 목록을 주기적으로 새로 고칩니다.file: Clash는 시작할 때 지정된 파일에서 서버 목록을 불러옵니다.
상태 확인은 두 모드에서 모두 사용할 수 있으며 정책 그룹의 fallback과 완전히 같습니다. 서버 목록 파일의 구성 형식도 기본 구성 파일과 같습니다:
proxy-providers:
provider1:
type: http
url: "url"
interval: 3600
path: ./provider1.yaml
# filter: 'a|b' # golang regex 正则表达式
health-check:
enable: true
interval: 600
# lazy: true
url: http://www.gstatic.com/generate_204
test:
type: file
path: /test.yaml
health-check:
enable: true
interval: 36000
url: http://www.gstatic.com/generate_204proxies:
- name: "ss1"
type: ss
server: server
port: 443
cipher: chacha20-ietf-poly1305
password: "password"
- name: "ss2"
type: ss
server: server
port: 443
cipher: chacha20-ietf-poly1305
password: "password"
plugin: obfs
plugin-opts:
mode: tls