很多家宽没有公网 IPv4,但一般都有 IPv6。只要 IPv6 可达,配合 DDNS,一样可以随时连回家。
一、确认 IPv6 可用
OpenWrt 路由器上看 WAN6 口是否拿到公网 v6 地址(非 fe80 开头)。手机关 WiFi 用流量 ping 一下,能通就具备条件。
二、DDNS:dynv6
推荐 dynv6,免费、支持 IPv6:
- 注册 dynv6.net,建一个 hostname(如
myhome.dynv6.net) - OpenWrt 上装
ddns-scripts,按 dynv6 的文档填 token
关键坑:电信的 v6 前缀会变,ipv6=auto 模式经常更新失败。改用显式模式,每 5 分钟用 cron 主动上报当前 v6 地址:
*/5 * * * * /usr/bin/curl -6 "https://dynv6.com/api/update?hostname=myhome.dynv6.net&token=你的token&ipv6=auto"
实测这样最稳。
三、防火墙放行
OpenWrt 防火墙默认 WAN6 入站全 drop。在「网络 → 防火墙 → 通信规则」里加一条:允许 WAN6 的 TCP 目标端口(如 443/8443)进内网。只放你需要的端口,别全开。
四、配合 Reality 节点
DDNS 域名配好后,VPS 上的 Reality 节点地址直接填这个域名。手机在外用 Shadowrocket 连回家,出口就是家里宽带,延迟和体验都很好。
小结
无公网 IPv4 不是问题:IPv6 可达 + DDNS 定时更新 + 防火墙放行,三步搞定。唯一要注意的是 v6 前缀变化,所以 DDNS 必须用主动上报模式,别依赖自动检测。