Skip to content

拒绝 IPv6 泄露:配置 Sing-box 的 IPv4/IPv6 双栈网络路由与底层防漏策略

毛佳国

很多人花了大量心血去写分流规则,认为自己已经做到了“天衣无缝的透明代理”。但往往忽视了现今运营商普遍下发的一个重要基础建设漏洞——本地 IPv6 地址泄露

很多海外服务商(如 ChatGPT 或特定的流媒体)默认更优先解析并连接你的 IPv6 地址。如果没有在 Sing-box 中做好严格的 v6 截获和处理,流量就会“绕过你的代理虚拟网卡”,直接拿你这根中国电信/联通分配给你的原始 IPv6 裸奔到国外服务器上,最终触发封控,真实 IP 全盘暴露。

今天,我们将通过 Sing-box 来彻底驯服和统筹这匹难以控制的 IPv6 脱缰野马。

场景一:直接在本地将所有 IPv6 请求掐死 (只代理 IPv4)

如果你的机场和节点本身就不太支持 IPv6,或者你根本不在乎 IPv6 那点微妙的速度提升,最安全的防泄露办法就是——在 DNS 层面将发往任何域名的 IPv6 (AAAA) 记录查询,全部抹杀。所有的请求强制降级回我们最好控制的 IPv4。

在 Sing-box 客户端中,前往极为重要的 DNS 模块,进行以下强硬配置:

"dns": {
  "servers": [
    {
      "tag": "remote_dns",
      "address": "https://8.8.8.8/dns-query",
      "strategy": "ipv4_only" // 终极防御:这组 DNS 不发任何 v6 请求!
    },
    {
      "tag": "local_dns",
      "address": "114.114.114.114",
      "strategy": "ipv4_only" // 国内域名也休想跑 IPv6
    }
  ],
  // 其他策略略...
}

strategy 显式声明为 ipv4_only 后,无论你在电脑浏览器打什么网址,电脑都拿不到它的 v6 地址,只能被迫顺理成章地滚去走我们搭好的 IPv4 代理透明通道,从源头绝育了 IPv6 泄露的可能。

场景二:极客双栈玩法——本地禁用但在远端复活并优先走 IPv6 (Prefer IPv6)

如果你买的是像 Hetzner、Scaleway 等海外良心机器(原生带有极为通畅的大口径 IPv6 数据宽带),甚至是一些根本没有 IPv4 只有纯血 IPv6 的便宜机器(只卖 1 美元那个),那我们肯定要压榨这台机器的 v6 性力。

你可以要求你的 Sing-box 客户端: “本地我不管哪怕只有 IPv4 上网环境。但是只要到了 VPS 服务端,我要服务端优先使用它的 IPv6 跟 Google 和 Youtube 通信!”

我们来到这台 VPS 的 Sing-box 服务端 config.json

找到默认的直连出口 outbounds

"outbounds": [
  {
    "type": "direct",
    "tag": "direct",
    "domain_strategy": "prefer_ipv6" // 重点在这里!
  }
] // 所有的服务端代你访问外部网站时,有 v6 则毫不犹豫用 v6!

这种玩法最为舒心,本地电脑既没有乱七八糟本地 v6 路由串流断网的麻烦,远端的跳板机器还能享受到 v6 那堪称零拥堵的车道(例如在晚高峰,很多人连 Netflix 极卡,由于远端机器走了 prefer_ipv6 通道,看 4K 流畅得飞起)。

场景三:完美本地透明代理双栈接管(高风险高回报的硬核操作)

如果你家路由器做了 Sing-box 旁路由,并且你执意要内外网、局域网家庭服务器全盘启用真双栈穿梭。那么你必须在你的 入站 (inbounds) 里的 tun 模块里,老老实实且精准地配好所有的入站掩码和栈协议。

"inbounds": [
  {
    "type": "tun",
    "tag": "tun-in",
    "interface_name": "singbox-tun",
    // IPv4 劫持范围
    "inet4_address": "172.19.0.1/30",
    // 强制同时接管所有局域网内部产生的 IPv6 流量到代理软件层
    "inet6_address": "fdfe:dcba:9876::1/126",
    
    // 打开严密的栈处理和自动路由转发策略
    "auto_route": true,       // 截获所有的出网流量
    "strict_route": true,     // 强行把所有流量锁进 tun 口
    "endpoint_independent_nat": true, 
    "stack": "system",        // 依据各系统的网络栈(或者选用混合型 gvisor 抓包栈)
    // 防止回环泄漏的重要配置
    "sniff": true
  }
]

结语

不要以为只要你连上了代理,隐私就连带被绝对保护了。 IPv6 虽然是跨世代的技术灯塔,但对于我们配置严密的反监视测漏翻墙环境来说,它恰好是最高发的问题源。

熟练掌握 ipv4_only 一刀切、与服务端 prefer_ipv6 的优势互补转化,标志着你在打造安全且极限吞吐的网络闭环上又迈上了一个坚实台阶!

上一篇
让机器干活:利用 Bash 脚本与 Cron 定时全自动更新 Sing-box 规则与版本
下一篇
并发与吞吐的极致:深度揭秘 Sing-box 的 Mux (多路复用) 优化