SOCKS5 支持 UDP 吗?
SOCKS5 定义了 UDP 中继,但 SOCKS5 网页请求成功,并不能说明客户端或端点支持 UDP。
支持。SOCKS5 定义了 UDP 中继,但前提是客户端和服务器均已实现,并且网络允许这些流量通过。
关联如何工作
客户端通过 TCP 控制连接发送 UDP ASSOCIATE。成功响应会给出 UDP 中继的地址和端口。客户端将 SOCKS 格式的 UDP 数据报发往响应返回的端点,它不一定是原来的代理端口。关闭 TCP 控制连接会结束该关联。
通过同一服务器获取 HTTPS 内容,测试的是 TCP 连接。这不会用到 UDP ASSOCIATE,也不能证明数据报能到达目标。
应用支持很重要
Chromium 的 SOCKS5 处理覆盖基于 TCP 的 URL 请求,不能中继 UDP。因此,在该浏览器中设置 SOCKS5,并不会为游戏或语音应用的 UDP 数据包提供路径。
对于 UDP 任务,先检查应用文档中的代理支持以及端点的 UDP 能力,再向你控制的目标测试所需操作。分别记录TCP 可达性、UDP 关联和数据报交付情况,避免第一阶段成功掩盖路径后续的失败。
没有兼容 UDP 代理支持的应用需要其他路由方法;仅更换 SOCKS5 服务器,无法补上缺失的功能。