0%

ipv6 NAT后配置端口转发

前言

我校是先进行PPPOE认证,认证通过后在pppoe虚拟动态接口上通过DHCPv6下发ipv6地址,因此只能用ipv6 NAT让路由器下的终端进行ipv6地址的访问。之前按照网上的教程配置好了ipv6 nat,但是只能进行传出连接,为了优化PT的上传连接性,我们还需要让终端能建立传入连接。在南洋pt的rewindcat1的帮助下,我在我的路由器上实现了这个需求,配置ipv6端口转发的命令也是来源于他的脚本。

前提条件

  • 路由器系统:OpenWrt 18.06.1
  • 软件包:bash ip6tables kmod-ip6tables kmod-ipt-nat6 luci-proto-ipv6
  • 已经按照网上教程配置好ipv6 nat,即路由器下的终端设备能访问ipv6地址,我是通过如下命令配置的ipv6 nat,仅供参考。
1
2
ip -6 r add default via IPv6上游网关地址 dev pppoe-wan
ip6tables -t nat -A POSTROUTING -o pppoe-wan -j MASQUERADE

具体步骤

  • 在luci界面上,依次点击“网络”->“防火墙”->“通信规则”->“打开路由器端口”,填入共享名和外部端口,点击“添加”,然后“编辑”刚刚添加的规则,如下图所示,将区域都改为“任意区域”。 防火墙配置
  • 端口转发可参考下面的命令,将中文参数改为你自己的值即可,如果想要配置udp的端口转发,将tcp改为udp再运行一次命令就行了。

模板:ip6tables -t nat -A PREROUTING -d 公网ipv6地址 -p tcp --dport 转发端口号 -m comment --comment V6FWD -j DNAT --to-destination [目标ipv6地址]:目标端口号

实例:ip6tables -t nat -A PREROUTING -d 2001:250:xxxx -p tcp --dport 49461 -m comment --comment V6FWD -j DNAT --to-destination [2fff::17c]:49461

感谢评论区 @唐海力 的补充,无需填入公网IP。

1
2
3
4
ip6tables -t nat -I PREROUTING -p udp --dport 49461 -j DNAT --to [2fff::17c]:49461
ip6tables -t nat -I PREROUTING -p tcp --dport 49461 -j DNAT --to [2fff::17c]:49461
ip6tables -I INPUT -p udp --dport 49461 -j ACCEPT
ip6tables -I INPUT -p tcp --dport 49461 -j ACCEPT

效果

配置好端口转发,寝室的PC终于能愉快的刷pt,可以看到ut上确实有传入连接。 ut用户列表

utorrent标识解释:U = 正在上传,I = 传入连接,E = 加密连接,P = μTP,X = 通过用户交换连接的peer