NOTE:此文需要具有一定的Linux操作系统知识 并在操作之前做好备份
NOTE2:改桥接不香吗
总所周知 现在的运营商一般会提供一个/64的公网IPV6 但是光猫上一般会有防火墙阻止外网通过端口访问内网服务 如果使用MTR会发现路由始终死在光猫那一跳 如果需要访问内网的服务(NAS) 就需要打通对应的端口
笔者使用的是广东联通 光猫中的超级管理员并无特定方法可以单独对IPV6做出调整 所以只能使用ip6tables调整对应策略
首先先获得光猫的MAC地址 开通TELNET
以下教程针对 烽火 吉比特 HG6142A 如果你的光猫为其他型号 恩山上开通TELNET的教程 可以自行搜索
arp -a 192.168.1.1
物理地址那一栏为你的MAC
http://192.168.1.1/telnet?enable=1&key=A06E784E8240
将 A06E784E8240 替换成你的MAC地址 要大写
然后使用Xshell 或者Windows自带的Telnet登入
账号admin,密码是Fh@mac后六位(注意大小写),比如说MAC是 A06E784E8240 密码就是Fh@4E8240 输完直接回车(显示/var #就是登录成功)
在光猫路由模式中 FORWARD链的默认策略是DROP INPUT链的默认策略是ACCEPT 所以只要对FORWARD链调整
首先先尝试放通ICMPv6
默认FORWARD链中对于非BR接口是不接受的
Chain FORWARD_FIREWALL (1 references)
pkts bytes target prot opt in out source destination
3602 375K ACCEPT icmpv6 * !br+ ::/0 ::/0 ipv6-icmptype 128
所以 当你想在外网进行Ping操作时 通常只能到PPP口(WAN)
因此 我们需要新建一条WAN TO LAN的规则
ip6tables -I FORWARD 1 -i ppp0 -o br0 -p icmpv6 --icmpv6-type echo-request -j ACCEPT
建立完成后 可以尝试的MTR一下内网的服务器 理论上应该不会在WAN口掉路由
放通对应端口
如果上述命令行得通 则可以尝试放通你所需要的端口(本文以13515为例)
ip6tables -I FORWARD 1 -i ppp0 -o br0 -p tcp --dport 13515 -j ACCEPT
这里的
-I FORWARD 1 表示将规则插入 FORWARD 链的最顶端。
-i ppp0 表示入站接口是 ppp0,通常是外部连接的接口。
-o br0 表示出站接口是 br0,通常是内部网络的接口。
-p tcp 指的是放通TCP流量 如果要放通所有流量可以选择 all
-j ACCEPT 表示接受匹配此规则的数据包。
自此 应该在外网可以访问内网的IPV6服务 可以在 https://tcp.ping.pe/ 确认一下