No jargon, just sharing.
No pressure, just learning.

🛡️ “能 ping 通 = 裸奔”?IPv6 可达与安全放行实践(附 WireGuard 远程访问)

1) “能 ping 通 = 裸奔”?先别慌

  • OpenWrt 默认有两大区域:lan(内网)wan(公网)
  • lan → wan 允许转发(家里设备能上网)。
  • wan → * 禁止转发(公网默认进不来)。

为何公网还能 ping 到你家设备的 IPv6?因为在「通信规则(Traffic Rules)」里有一条 ICMPv6 例外放行,用于保证 IPv6 的基本连通性(比如邻居发现)。

要点:它只放特定类型的 ICMPv6,并不代表开放了你的服务端口。
被 ping 到 ≠ 可任意访问。别动烂默认防火墙,就谈不上“裸奔”。🙂

2) 用什么测?先自检两招

看到 ping 绿灯 ≠ 服务开放;能 tcping 到某个端口才说明端口对公网可达。

3) 公网远程管理路由器:安全打开“只这一条门”

步骤 A:用 DDNS 解决“IPv6 前缀会变”

免费方案可用 dynv6。思路:路由器定时上报最新 IPv6(或前缀),你只记一个域名就行。

提示:DDNS 提升可达性同时降低隐私(域名更易被扫描),务必仅开放必要端口 + 强口令

步骤 B:别用 80/443,换自定义端口

  • 很多地区 80/443 可能被管控;可在端口转发里把外部 20000 → 内部 80(路由器 Web 管理)。
  • 之后访问:http://[你的IPv6或DDNS域名]:20000
  • HTTPS:快捷用自签证书(浏览器会提示不安全但传输已加密);更佳用 ACME+DNS-API 申请正规 CA 证书,再让 uHTTPd/nginx 指向 fullchainkey
  • 记得在 防火墙 → 流量规则 放行该对外端口(仅限 IPv6/TCP)。

4) 让公网只打到“那台设备的那个端口”:接口 ID + 反掩码

IPv6 前缀会变,但接口后 64 位(Interface ID)通常固定。我们按接口 ID 写规则,只放“谁的哪个端口”。

# 示例:拼出设备完整 IPv6(在路由器上执行)
INTERF=br-lan
SUFFIX="6dcb:1863:2bd1:b28f"   # 把这里替换为目标设备固定的后64位
ip -6 addr show dev $INTERF | awk '/inet6/ && !/fe80::|deprecated/ {print $2}' | cut -d':' -f1-4 | sed "s/$/:$SUFFIX/"
# 说明:
#  - INTERF=br-lan:从哪个接口拿前缀
#  - SUFFIX="...": 设备固定的后64位
#  - 输出即为目标设备的完整可达 IPv6

在「通信规则」新增:

  • 源:wan;目标:lan
  • 目标地址:用反掩码匹配该设备的后 64 位
  • 目标端口:如 NAS 的 9000/TCP
  • 动作:接受

🔒 效果:只允许公网访问“这台设备的这个端口”,其他一概不放行

5) 连通性验证:先测再上生产

  • 用 TCPing IPv6 验证端口(如 9000)是否可达:测试链接
  • 用手机 5G 访问:http://[设备的IPv6或DDNS域名]:9000

若服务端日志里来访地址是公网 IPv6,说明已实现 端到端(无 NAT) 访问。🚀

6) 给内网设备做单独 DDNS(更好记)

  • 在 DDNS 工具里再加一个任务,给 NAS/PC 绑定 专属子域名
  • IPv6 地址来源用“命令获取”,把上面脚本拼出的完整地址更新到该域名;
  • 之后直接用 域名+端口 访问,直观且不怕前缀变。

7) 代理节点/管理面要暴露公网?三思而行

做法 A:路由器自建节点(如 vmess+ws)

  • 选未被封的端口(如 8899;部分“免流”场景必须 80,但并非处处可用)。
  • 服务启动时让系统自动追加防火墙放行规则。
  • 强密码/UUID,只暴露必要端口

做法 B:暴露 HTTP/SOCKS 入站(如 OpenClash 7893)

  • 必须开启用户名/密码;
  • 不要放行 UDP(历史上有绕过认证风险,即便修复也建议保守配置)。
  • 需要远程切换节点/分流?可暴露 Clash WebUI,但务必强密码;更推荐:不暴露,VPN 回家后在内网改。

8) “不暴露还要远程管”?上 VPN 吧

真 VPN(WireGuard / IPsec / OpenVPN)把你拉进内网,不必在公网开一堆口子。

参考安装文档:

实操要点(OpenWrt/软路由)

  • 服务器端新建 WG 接口:192.168.5.1/24、端口 23456/UDP
  • 每个客户端分配 AllowedIPs(如 192.168.5.2/32
  • 防火墙放行 UDP/23456(IPv6)
  • iOS/Android 扫二维码导入;Windows/macOS 粘 .conf 一键连
  • 速度慢/丢包多?把 MTU 调到 1400/1380,直到不再分片

为什么 VPN 能拿到真实 ping?因为它封装的是完整 IP 包(网络层)。

9) 快速排错 Checklist(实用主义 👍)

  • ping 通但 tcping 不通:端口未放行或目标服务未监听。
  • DDNS 正常但访问失败:解析到了旧前缀/错地址 → 查更新日志。
  • 内外网表现不一致:只在 wan 放行了吗?lan 侧是否也需要一条本地自测规则?
  • 速度忽快忽慢:看 MTU 是否分片;或 80/443 被运营商管控。
  • 安全第一:对外端口最小化、强口令、尽量 VPN 进内网再管理。

🔚 一句话带走

能被 ping ≠ 裸奔。默认防火墙挡得住;需要远程,就精准放行 + DDNS;想更安全省心,上 VPN 回家再管。其余端口,能不开就不开,能收口就收口,安心睡大觉 😴。

Categories:

Tags:

No responses yet

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注