github.com/igoogolx/clash@v1.19.8/docs/zh_CN/configuration/outbound.md (about)

     1  ---
     2  sidebarTitle: Outbound 出站
     3  sidebarOrder: 4
     4  ---
     5  
     6  # Outbound 出站
     7  
     8  Clash 中有几种类型的出站. 每种类型都有自己的特点和使用场景. 在本页中, 我们将介绍每种类型的通用特点以及如何使用和配置它们.
     9  
    10  [[toc]]
    11  
    12  ## Proxies 代理节点
    13  
    14  Proxies 代理节点是您可以配置的一些出站目标. 就像代理服务器一样, 您在这里为数据包定义目的地.
    15  
    16  ### Shadowsocks
    17  
    18  Clash 支持以下 Shadowsocks 的加密方法:
    19  
    20  | 系列 | 加密方法 |
    21  | ------ | ------- |
    22  | AEAD | aes-128-gcm, aes-192-gcm, aes-256-gcm, chacha20-ietf-poly1305, xchacha20-ietf-poly1305 |
    23  | 流式 | aes-128-cfb, aes-192-cfb, aes-256-cfb, rc4-md5, chacha20-ietf, xchacha20 |
    24  | 块式 | aes-128-ctr, aes-192-ctr, aes-256-ctr |
    25  
    26  此外, Clash 还支持流行的 Shadowsocks 插件 `obfs` 和 `v2ray-plugin`.
    27  
    28  ::: code-group
    29  
    30  ```yaml [basic]
    31  - name: "ss1"
    32    type: ss
    33    # interface-name: eth0
    34    # routing-mark: 1234
    35    server: server
    36    port: 443
    37    cipher: chacha20-ietf-poly1305
    38    password: "password"
    39    # udp: true
    40  ```
    41  
    42  ```yaml [obfs]
    43  - name: "ss2"
    44    type: ss
    45    # interface-name: eth0
    46    # routing-mark: 1234
    47    server: server
    48    port: 443
    49    cipher: chacha20-ietf-poly1305
    50    password: "password"
    51    plugin: obfs
    52    plugin-opts:
    53      mode: tls # or http
    54      # host: bing.com
    55  ```
    56  
    57  ```yaml [ws (websocket)]
    58  - name: "ss3"
    59    type: ss
    60    # interface-name: eth0
    61    # routing-mark: 1234
    62    server: server
    63    port: 443
    64    cipher: chacha20-ietf-poly1305
    65    password: "password"
    66    plugin: v2ray-plugin
    67    plugin-opts:
    68      mode: websocket # 暂不支持 QUIC
    69      # tls: true # wss
    70      # skip-cert-verify: true
    71      # host: bing.com
    72      # path: "/"
    73      # mux: true
    74      # headers:
    75      #   custom: value
    76  ```
    77  
    78  :::
    79  
    80  ### ShadowsocksR
    81  
    82  Clash 也支持声名狼藉的反审查协议 ShadowsocksR.
    83  
    84  支持以下 ShadowsocksR 的加密方法:
    85  
    86  | 系列 | 加密方法 |
    87  | ------ | ------- |
    88  | 流式 | aes-128-cfb, aes-192-cfb, aes-256-cfb, rc4-md5, chacha20-ietf, xchacha20 |
    89  
    90  支持的混淆方法:
    91  
    92  - plain
    93  - http_simple
    94  - http_post
    95  - random_head
    96  - tls1.2_ticket_auth
    97  - tls1.2_ticket_fastauth
    98  
    99  支持的协议:
   100  
   101  - origin
   102  - auth_sha1_v4
   103  - auth_aes128_md5
   104  - auth_aes128_sha1
   105  - auth_chain_a
   106  - auth_chain_b
   107  
   108  ```yaml
   109  - name: "ssr"
   110    type: ssr
   111    # interface-name: eth0
   112    # routing-mark: 1234
   113    server: server
   114    port: 443
   115    cipher: chacha20-ietf
   116    password: "password"
   117    obfs: tls1.2_ticket_auth
   118    protocol: auth_sha1_v4
   119    # obfs-param: domain.tld
   120    # protocol-param: "#"
   121    # udp: true
   122  ```
   123  
   124  ### Vmess
   125  
   126  Clash 支持以下 Vmess 的加密方法:
   127  
   128  - auto
   129  - aes-128-gcm
   130  - chacha20-poly1305
   131  - none
   132  
   133  ::: code-group
   134  
   135  ```yaml [basic]
   136  - name: "vmess"
   137    type: vmess
   138    # interface-name: eth0
   139    # routing-mark: 1234
   140    server: server
   141    port: 443
   142    uuid: uuid
   143    alterId: 32
   144    cipher: auto
   145    # udp: true
   146    # tls: true
   147    # skip-cert-verify: true
   148    # servername: example.com # 优先于 wss 主机
   149    # network: ws
   150    # ws-opts:
   151    #   path: /path
   152    #   headers:
   153    #     Host: v2ray.com
   154    #   max-early-data: 2048
   155    #   early-data-header-name: Sec-WebSocket-Protocol
   156  ```
   157  
   158  ```yaml [HTTP]
   159  - name: "vmess-http"
   160    type: vmess
   161    # interface-name: eth0
   162    # routing-mark: 1234
   163    server: server
   164    port: 443
   165    uuid: uuid
   166    alterId: 32
   167    cipher: auto
   168    # udp: true
   169    # network: http
   170    # http-opts:
   171    #   # method: "GET"
   172    #   # path:
   173    #   #   - '/'
   174    #   #   - '/video'
   175    #   # headers:
   176    #   #   Connection:
   177    #   #     - keep-alive
   178  ```
   179  
   180  ```yaml [HTTP/2]
   181  - name: "vmess-h2"
   182    type: vmess
   183    # interface-name: eth0
   184    # routing-mark: 1234
   185    server: server
   186    port: 443
   187    uuid: uuid
   188    alterId: 32
   189    cipher: auto
   190    network: h2
   191    tls: true
   192    h2-opts:
   193      host:
   194        - http.example.com
   195        - http-alt.example.com
   196      path: /
   197  ```
   198  
   199  ```yaml [gRPC]
   200  - name: vmess-grpc
   201    type: vmess
   202    # interface-name: eth0
   203    # routing-mark: 1234
   204    server: server
   205    port: 443
   206    uuid: uuid
   207    alterId: 32
   208    cipher: auto
   209    network: grpc
   210    tls: true
   211    servername: example.com
   212    # skip-cert-verify: true
   213    grpc-opts:
   214      grpc-service-name: "example"
   215  ```
   216  
   217  :::
   218  
   219  ### Socks5
   220  
   221  此外, Clash 还支持 Socks5 代理.
   222  
   223  ```yaml
   224  - name: "socks"
   225    type: socks5
   226    # interface-name: eth0
   227    # routing-mark: 1234
   228    server: server
   229    port: 443
   230    # username: username
   231    # password: password
   232    # tls: true
   233    # skip-cert-verify: true
   234    # udp: true
   235  ```
   236  
   237  ### HTTP
   238  
   239  Clash 也支持 HTTP 代理:
   240  
   241  ::: code-group
   242  
   243  ```yaml [HTTP]
   244  - name: "http"
   245    type: http
   246    # interface-name: eth0
   247    # routing-mark: 1234
   248    server: server
   249    port: 443
   250    # username: username
   251    # password: password
   252  ```
   253  
   254  ```yaml [HTTPS]
   255  - name: "http"
   256    type: http
   257    # interface-name: eth0
   258    # routing-mark: 1234
   259    server: server
   260    port: 443
   261    # username: username
   262    # password: password
   263    tls: true
   264    skip-cert-verify: true
   265  ```
   266  
   267  :::
   268  
   269  ### Snell
   270  
   271  作为可选的反审查协议, Clash也集成了对Snell的支持.
   272  
   273  ```yaml
   274  # 暂不支持 UDP
   275  - name: "snell"
   276    type: snell
   277    # interface-name: eth0
   278    # routing-mark: 1234
   279    server: server
   280    port: 44046
   281    psk: yourpsk
   282    # version: 2
   283    # obfs-opts:
   284      # mode: http # or tls
   285      # host: bing.com
   286  ```
   287  
   288  ### Trojan
   289  
   290  Clash 内置了对流行协议 Trojan 的支持:
   291  
   292  ::: code-group
   293  
   294  ```yaml [basic]
   295  - name: "trojan"
   296    type: trojan
   297    # interface-name: eth0
   298    # routing-mark: 1234
   299    server: server
   300    port: 443
   301    password: yourpsk
   302    # udp: true
   303    # sni: example.com # aka server name
   304    # alpn:
   305    #   - h2
   306    #   - http/1.1
   307    # skip-cert-verify: true
   308  ```
   309  
   310  ```yaml [gRPC]
   311  - name: trojan-grpc
   312    type: trojan
   313    # interface-name: eth0
   314    # routing-mark: 1234
   315    server: server
   316    port: 443
   317    password: "example"
   318    network: grpc
   319    sni: example.com
   320    # skip-cert-verify: true
   321    udp: true
   322    grpc-opts:
   323      grpc-service-name: "example"
   324  ```
   325  
   326  ```yaml  [ws (websocket)]
   327  - name: trojan-ws
   328    type: trojan
   329    # interface-name: eth0
   330    # routing-mark: 1234
   331    server: server
   332    port: 443
   333    password: "example"
   334    network: ws
   335    sni: example.com
   336    # skip-cert-verify: true
   337    udp: true
   338    # ws-opts:
   339      # path: /path
   340      # headers:
   341      #   Host: example.com
   342  ```
   343  
   344  :::
   345  
   346  ## Proxy Groups 策略组
   347  
   348  Proxy Groups 策略组用于根据不同策略分发规则传递过来的请求, 其可以直接被规则引用, 也可以被其他策略组引用, 而最上级策略组被规则引用.
   349  
   350  ### relay 中继
   351  
   352  请求将依次通过指定的代理服务器进行中继, 目前不支持 UDP. 指定的代理服务器不应包含另一个 relay 中继.
   353  
   354  ### url-test 延迟测试
   355  
   356  Clash 会周期性地通过指定的 URL 向列表中的代理服务器发送 HTTP HEAD 请求来测试每个代理服务器的**延迟**. 可以设置最大容忍值、测试间隔和目标 URL.
   357  
   358  ### fallback 可用性测试
   359  
   360  Clash 会周期性地通过指定的 URL 向列表中的代理服务器发送 HTTP HEAD 请求来测试每个代理服务器的**可用性**. 第一个可用的服务器将被使用.
   361  
   362  ### load-balance 负载均衡
   363  
   364  相同 eTLD+1 的请求将使用同一个代理服务器.
   365  
   366  ### select 手动选择
   367  
   368  Clash 启动时默认使用策略组中的第一个代理服务器. 用户可以使用 RESTful API 选择要使用的代理服务器. 在此模式下, 您可以在配置中硬编码服务器或使用 [Proxy Providers 代理集](#proxy-providers-代理集) 动态添加服务器.
   369  
   370  无论哪种方式, 有时您也可以使用直接连接来路由数据包. 在这种情况下, 您可以使用 `DIRECT` 直连出站.
   371  
   372  要使用不同的网络接口, 您需要使用包含 `DIRECT` 直连出站的策略组, 并设置 `interface-name` 选项.
   373  
   374  ```yaml
   375  - name: "My Wireguard Outbound"
   376    type: select
   377    interface-name: wg0
   378    proxies: [ 'DIRECT' ]
   379  ```
   380  
   381  ## Proxy Providers 代理集
   382  
   383  代理集使用户可以动态加载代理服务器列表, 而不是在配置文件中硬编码. 目前有两种代理集可以加载服务器列表:
   384  
   385  - `http`: Clash 会在启动时从指定的 URL 加载服务器列表. 如果设置了 `interval` 选项, Clash 会定期从远程拉取服务器列表.
   386  - `file`: Clash 会在启动时从指定的文件位置加载服务器列表.
   387  
   388  健康检查对两种模式都可用, 并且与策略组中的 `fallback` 完全相同. 服务器列表文件的配置格式在主配置文件中也完全相同:
   389  
   390  ::: code-group
   391  
   392  ```yaml [config.yaml]
   393  proxy-providers:
   394    provider1:
   395      type: http
   396      url: "url"
   397      interval: 3600
   398      path: ./provider1.yaml
   399      # filter: 'a|b' # golang regex 正则表达式
   400      health-check:
   401        enable: true
   402        interval: 600
   403        # lazy: true
   404        url: http://www.gstatic.com/generate_204
   405    test:
   406      type: file
   407      path: /test.yaml
   408      health-check:
   409        enable: true
   410        interval: 36000
   411        url: http://www.gstatic.com/generate_204
   412  ```
   413  
   414  ```yaml [test.yaml]
   415  proxies:
   416    - name: "ss1"
   417      type: ss
   418      server: server
   419      port: 443
   420      cipher: chacha20-ietf-poly1305
   421      password: "password"
   422  
   423    - name: "ss2"
   424      type: ss
   425      server: server
   426      port: 443
   427      cipher: chacha20-ietf-poly1305
   428      password: "password"
   429      plugin: obfs
   430      plugin-opts:
   431        mode: tls
   432  ```
   433  
   434  :::