最近看到不少朋友在折腾家里的网络,尤其是利用运营商提供的 IPv6 地址,把家里的软路由和海外的 VPS(小鸡)直接打隧道连起来。这招确实挺香,省去了中转的费用,延迟也低。但很多刚入坑的小伙伴会有一个共同的疑问:“我的软路由是通过 IPv6 连接小鸡的,但家里手机、电脑用的还是内网 IPv4 地址,这样还能看油管吗?”

结论先说在前面:完全可以,而且体验很棒。 只要路由策略配置得当,家里的 IPv4 设备根本不需要感知外链是 IPv4 还是 IPv6,网关会自动帮你处理好。

今天我们就来扒一扒这背后的原理和几种常见的实现姿势,帮你理清思路,少走弯路。

软路由 IPv6 组网拓扑示意图

图示:软路由作为网关,将内网 IPv4 流量封装进 IPv6 隧道发送至 VPS

一、 核心原理:路由器的“翻译官”角色

IPv4 over IPv6 数据封装原理图

图示:IPv4 数据包被封装在 IPv6 包头中进行传输的原理

要搞懂这个问题,首先要明白软路由在整个家庭网络中的位置。它不仅仅是“路”,更是“门”。

  1. 内网侧: 你的手机、电视、电脑连接的是软路由的 LAN 口,获取的是 192.168.x.x 这样的 IPv4 私有地址。它们发出的所有上网请求,目标地址都是 IPv4(比如访问 Google 的某个 IPv4 入口)。
  2. WAN 侧: 软路由通过 WAN 口连接光猫,从运营商那里获取了通常是公网的 IPv6 地址。
  3. 隧道侧: 软路由和 VPS 之间建立了 IPv6 隧道(比如 WireGuard、Tailscale 或者单纯的 IPv6 隧道)。你的 VPS 也有一个公网 IPv6。

关键点来了: 当你的 IPv4 手机想看油管时,它会把数据包扔給软路由。软路由接收到这个 IPv4 数据包后,会根据你设定的路由规则(比如策略路由),把这个数据包“封装”进 IPv6 的包头里,然后通过那条 IPv6 隧道发送给 VPS。VPS 收到后拆包,发现里面是个 IPv4 请求,代替你去访问油管,再把结果传回来。

对于家里的设备来说,它们全程都在用 IPv4 说话,根本不知道外面的世界是用 IPv6 跑的。这就是 NAT66 或者 IPv4 over IPv6 的魔力。所以,不用担心互通性问题,只要软路由不抽风,IPv4 设备完全可以用 V6 的道。

二、 几种常见的实现方案

既然原理通了,那具体怎么操作?这里提供几种主流且稳定的方案,难度由低到高。

方案一:Tailscale / ZeroTier 等组网神器(小白推荐)

这是最省心的方案。你无需手动配置复杂的 iptables 或路由表。

  • 做法: 在软路由和小鸡上都安装 Tailscale。确保两者都能通过 IPv4 或 IPv6 登录 Tailscale 控制台并建立连接(Tailscale 会自动尝试打洞,优先走直连)。如果双方都有 IPv6,连接会非常稳。然后在软路由上开启 “Subnet Router” (子网路由) 功能,把家里的局域网网段(如 192.168.1.0/24)宣告出去。
  • 效果: 你的小鸡就会知道,要访问 192.168.1.x 的设备该往软路由发;同理,你在软路由上配置策略路由,把去往海外的流量强行指给 Tailscale 的虚拟网卡接口。
  • 优点: 配置简单,断线自动重连,UI 界面友好。

方案二:WireGuard 手动搭建(极客首选)

如果你想追求极致的性能和掌控力,WireGuard 是不二之选。它的配置非常轻量。

  • 做法:
    1. 在小鸡和软路由上安装 WireGuard。
    2. 配置 Peer。重点: 在软路由的配置中,Endpoint 填写小鸡的 IPv6 公网地址(这就实现了通过 V6 互联)。AllowedIPs0.0.0.0/0(意思是对端把所有流量都吃掉)。
    3. 端口映射问题: 很多人卡在这里。如果小鸡在运营商 VPS 上,通常会有防火墙。你需要放行 UDP 端口(例如 51820)。至于软路由这边,因为是主动发起连接出去的,家用路由器通常无需做端口映射。
    4. 策略路由: 这个是灵魂。你不能让所有流量都走 WireGuard,不然你访问国内网站会变慢。你需要创建一个路由表,标记出哪些流量(比如国外的 geoip 列表)需要走 WireGuard 接口,其他的走默认宽带。可以用 iptables 给符合条件的打标记,然后用 ip rule 配合策略路由表引用这些标记。

方案三:单纯 IPv6 隧道 + 代理软件

如果你不想用 VPN 组网,只是单纯传输代理流量。

  • 做法: 在软路由上安装 Clash、V2Ray 或 Sing-box 等代理核心。在订阅链接或配置里,服务器地址直接填 小鸡的 IPv6 地址(例如 [2001:db8::1]:443)。注意方括号语法。
  • 分流: 同样在代理软件里配置分流规则。软路由开启透明代理模式,接管局域网设备的流量。
  • 效果: 软路由会通过 IPv6 链路去连接小鸡的代理端口,建立连接后传输数据。局域网设备全程无感。

三、 常见坑点与排查思路

虽然理论上很完美,但实际操作中难免遇到翻车现场。这里总结几个高频问题:

  1. “软路由开了端口,其他设备就能用?” 这是一个误区。除非你是做反向代理或者 SOCKS5 代理供局域网设备填写 IP 地址使用。通常我们是做“透明代理”,不需要在软路由上给其他设备开特定端口,而是由软路由在网关层面“偷偷”劫持流量。如果你是指让外网访问内网设备,那是另一回事(DDNS + 端口映射)。在代理场景下,重点是策略路由,而不是端口映射。

  2. 连接不上,一直握手?

    • 检查小鸡的防火墙(安全组/ufw/iptables)是否放行了对应协议(UDP/TCP)和端口。
    • 检查软路由是否有 IPv6 地址。ping 一下小鸡的 IPv6 看看通不通。如果软路由都 ping 不通小鸡的 V6,那后面都白搭,可能是光猫设置了 IPv6 防火墙或者获取不到前缀。
  3. 配置上了但没速度?

    • MTU 问题: IPv6 包头比 IPv4 大,如果在隧道里再次封装,容易超过链路 MTU 导致丢包。尝试在隧道接口上把 MTU 调小一点(比如 1280 或 1360)。
    • 分流没写好: 手机的流量可能走了代理,但 DNS 泄露了或者跑偏了。检查 DNS 设置,建议软路由直接接管 DNS,并使用非污染的 DNS 服务器(如海外 VPS 的 DNS)。

四、 总结

软路由通过 IPv6 连接小鸡,家里的 IPv4 设备绝对可以正常上网看视频。核心在于**“IPv4 over IPv6”** 的封装技术和软路由上的策略路由配置。

对于新手,建议先试 Tailscale 这种一键组网方案;对于想深入学习网络的,推荐死磕 WireGuard + ip rule。搞定这套,你不仅省了机票钱,还把家里网络的掌控权牢牢握在了自己手里。

标签: none

AI Skills Smart Station on Nick Launches

评论已关闭