前言
我校是先进行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 | ip -6 r add default via IPv6上游网关地址 dev pppoe-wan |
具体步骤
- 在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 | ip6tables -t nat -I PREROUTING -p udp --dport 49461 -j DNAT --to [2fff::17c]:49461 |
效果
配置好端口转发,寝室的PC终于能愉快的刷pt,可以看到ut上确实有传入连接。
utorrent标识解释:U = 正在上传,I = 传入连接,E = 加密连接,P = μTP,X = 通过用户交换连接的peer