跳到正文

Shadowsocks TCP / 原生 UDP ​

本例将入口的 40000 端口转发到 Shadowsocks 服务端 ss.example.com:8388,同时支持 TCP 和原生 UDP。

Shadowsocks 设置 ​

服务端在 8388 端口同时监听 TCP 和 UDP,客户端开启 UDP 转发。使用 shadowsocks-rust 时,在已有配置中设置 "mode": "tcp_and_udp",见 官方配置说明。

创建转发规则 ​

在「转发规则」创建两条规则,选择同一个入口节点,出口先选「不使用隧道,直接转发」:

名称转发类型监听端口目标地址
SS TCPTCP40000ss.example.com:8388
SS UDPUDP40000ss.example.com:8388

TCP 和 UDP 可以使用同一个数字端口。

两条规则分别管理 TCP 和 UDP,入口地址与监听端口保持相同,客户端只需填写一组连接信息。

选择隧道出口 ​

管理员先在出口节点的「编辑传输协议」中配置协议、隧道地址和端口,将入口加入「允许的入口」。再按下表选择规则出口:

方案TCP 规则出口UDP 规则出口
直接转发不使用隧道不使用隧道
统一使用 raw(tcp)raw(tcp) 出口同一个出口,UDP 数据报通过 TCP 隧道传输
统一使用 h2h2 出口同一个出口,UDP 数据报通过 HTTP/2 流传输
节点间保留原生 UDPraw(tcp) 或 h2 出口raw(udp) 出口

最后一种方案分别配置两个出口节点,因为当前每个出口节点设置一种传输协议。两条规则仍使用同一个入口和 40000 端口,目标仍为同一个 SS 服务端。

出口安全性可选择「不加密」或「TLS」。选择 TLS 后填写出口的 证书设置;raw(udp) 配置见 原生 UDP 传输。

节点与端口设置 ​

  • 入口开启「允许作为入口」;直转时再开启「允许用户选择直转」。
  • 用户的节点组授权包含所用入口与出口。
  • 入口安全组和防火墙放行 40000/TCP 与 40000/UDP。
  • SS 服务端允许转发节点访问 8388/TCP 与 8388/UDP。
  • 中转时,出口的隧道端口按传输协议放行:raw(tcp)、h2 放行 TCP,raw(udp) 放行 UDP。
  • 「UDP 会话空闲超时」先使用默认的 60 秒。

SS 与连接它的转发节点同机时,目标也可填写 127.0.0.1:8388;管理员在「系统设置 → 转发安全」移除覆盖该地址的禁止网段。

客户端连接 ​

将 SS 客户端的服务器地址改为 入口节点地址,端口改为 40000,保留 SS 服务端原有的密码和加密方式,并开启 UDP。

客户端始终连接同一个地址与端口,TCP 和 UDP 按对应规则转发;入口到出口的隧道设置由 Nekopass 节点处理。