目标地址限制
哪些目标地址和端口会被拒绝、域名解析的固定行为,以及不支持 UDP 带来的实际影响。
网关会在建立出口连接之前检查目标地址。这一篇列清楚被拒的范围,以及那些不是"限制"但会影响你方案的行为。
被拒绝的地址
明确禁止的 CIDR 段:
| CIDR | 说明 |
|---|---|
0.0.0.0/8 | 未指定 / 本网络 |
100.64.0.0/10 | CGNAT 共享地址 |
127.0.0.0/8 | IPv4 环回 |
169.254.0.0/16 | IPv4 链路本地(含云元数据地址) |
224.0.0.0/4 | IPv4 组播 |
::1/128 | IPv6 环回 |
fc00::/7 | IPv6 唯一本地地址 |
fe80::/10 | IPv6 链路本地 |
被拒绝的端口
| 端口 | 说明 |
|---|---|
25 | SMTP |
域名解析被固定
这个行为的实际影响:
好的一面:你的本地 DNS 不会看到目标域名(用 socks5h:// 时),不暴露你在访问什么。
要注意的:
| 你可能期望 | 实际情况 |
|---|---|
| 域名在出口 IP 所在地区解析,拿到就近的 CDN 节点 | 解析在网关侧做,不在出口地区 |
| 多 A 记录时能负载均衡到不同 IP | 固定用第一个 IP |
| 目标站按 DNS 解析来源做地域分发 | 分发按网关的位置,不按出口 IP |
不支持 UDP
实际会遇到的情况
curl / 浏览器协商到 HTTP/3 时:会失败或回落到 HTTP/2。显式指定版本更稳:
curl --http2 -x 'http://USER:PASS@GATEWAY_HOST:58971' https://example.com
Chrome 默认启用 QUIC:走代理时 Chrome 通常会禁用 QUIC,但可以显式关掉:
google-chrome --proxy-server="http://GATEWAY_HOST:58971" --disable-quic
WebRTC 会泄露真实 IP:因为 UDP 走不通,WebRTC 会尝试直连。指纹浏览器里必须把 WebRTC 设为"替换为代理 IP"或"禁用",不能用"真实"。见 浏览器与指纹浏览器。
没有 TLS 入站
网关不做 TLS 终止,也没有 TLS 监听端口。
普通 forward 模式的额外限制
访问 http:// 站点时的 forward 模式(不走 CONNECT)有两条额外规则:
| 情况 | 结果 |
|---|---|
请求行里是 https:// 绝对 URL | 400 —— HTTPS 必须走 CONNECT |
请求行的 URL 里带 userinfo(http://u:p@host/) | 400 |
请求头会被改写(仅 forward 模式)
普通 HTTP forward 模式下会删除这些头:
Proxy-Authorization、Proxy-ConnectionConnection头里列出的所有 hop-by-hop 扩展头Connection、Keep-Alive、Proxy-Authenticate、TE、Trailer、Transfer-Encoding
以及:非 Upgrade 请求强制 Connection: close;必要时重建 Host 和 Content-Length。
CONNECT 隧道和 SOCKS5 建立之后,网关完全不解析隧道内容,上面这些规则都不适用。所以指纹敏感的场景应该走 HTTPS/CONNECT 或 SOCKS5。
IPv6
| 项 | 状态 |
|---|---|
| IPv6 目标地址 | 支持(HTTP 和 SOCKS5 都能解析) |
| IPv6 客户端接入 | 取决于节点和负载均衡器配置,不保证 |
| 免密端口的来源绑定 | 仅 IPv4 |
| IP 白名单 | 仅 IPv4(公开全局单播) |
# IPv6 目标
curl -x 'http://USER:PASS@GATEWAY_HOST:58971' 'http://[2001:db8::1]/'
快速判断
| 现象 | 可能是这一篇里的哪条 |
|---|---|
访问内网地址 403 | 私网地址被禁 |
访问 169.254.169.254 403 | 云元数据地址被禁 |
| SMTP 连不上 | 端口 25 被禁 |
| HTTP/3 请求失败 | 不支持 UDP |
| WebRTC 暴露真实 IP | 不支持 UDP,必须在浏览器侧禁用 WebRTC |
SOCKS5 reply 0x07 | 你在用 UDP ASSOCIATE 或 BIND |
| CDN 节点不在出口地区 | 域名在网关侧解析 |
https:// 代理 URL 连不上 | 没有 TLS 入站 |
| 白名单加不上 IPv6 | 白名单仅支持 IPv4 |
完整错误码见 错误码对照。