南方科技大学ipv6设置教程

本篇教程是在南方科技大学的网络环境下写成,但是据我所知,下发/128位ipv6的学校不止南科大一所,本篇教程事实上具有普适性,其他大学的同学也可以进行参考。事实上,在中国电信的家宽环境下,这种配置方法也同样适用。

这篇教程可以说是一篇咕咕咕了很久的教程,大概是在去年才开学的时候,当时网络限速700k/s,所以就买了新路由3刷了openwrt进行多拨来解除限速,(现在不限速了,能够跑到90m/s左右,就没必要了),然后当时也花了很久配置了ipv6。南科大的ipv6下发的是128位地址,并没有下发ipv6前缀,这导致ipv6的配置和正常的家宽大不一样,需要使用本该被替换掉的nat进行配置,正确配置后的效果如下:

同时北洋园和蒲公英pt均能正常识别(需要在openwrt开启upnp):

(PS:不要学我ipv6不打码直接发,因为v6默认就是公网地址,我在发完教程后会使用新的地址)

电脑能成功获取内网ipv6,同时手机也能获得64位的v6地址,正常访问v6网络:

相应的流程并不复杂,只需要一台刷入openwrt的路由器,一台电脑,winscp(可选),以及足够的耐心。

首先,我们需要登录进入路由器的后台管理页面,依次点击网络-接口:

将全局网络选项前缀进行修改,我个人使用的是fd34:fe56:7891:2f3a::/64;可以按照自己喜好选择一个内网前缀。

随后单击lan一栏的修改,我们需要修改一下内网的设置,滑到下方,点击高级设置,按照下图进行勾选:

然后点击ipv6设置,路由器通告服务和DHCPv6服务修改为服务器模式,NDP代理设置为禁用,DHCPv6选择无状态的+有状态的,并勾选总是通告默认路由:

完成后点击保存&应用。

随后进入wan口的设置,勾选上使用内置的IPv6管理

随后进入wan6口的设置,将协议修改为DHCPv6客户端,请求IPv6地址为force,请求指定长度的ipv6前缀为已禁用:

进入高级设置,勾选上使用内置的IPv6管理,强制链路和使用默认网关:

之后选择网络-DHCP/DNS,进入高级设置,取消勾选禁止解析ipv6 DNS记录:

进入网络-防火墙:

将转发改为接受,下面的区域也需要改:

进入自定义规则,粘贴如下内容:

WAN6=eth0.2
LAN=br-lan
ip6tables -t nat -A POSTROUTING -o $WAN6 -j MASQUERADE
ip6tables -A FORWARD -m conntrack –ctstate RELATED,ESTABLISHED -j ACCEPT

其中eth0.2和br-lan需要修改为你网络-接口中显示的内容:

2023.3.22 更新:

在新版本的linux/openwrt 中,iptables 已经被 nftables 取代,上述命令可能执行失败,我们可以使用以下命令来解决:
ip6tables -t nat -I POSTROUTING -s `uci get network.globals.ula_prefix` -j MASQUERADE
这样就无需上述防火墙自定义规则的配置了。

如果有多拨需求的,提醒一下需要在负载均衡中将defalut-rule的备用成员改成默认(使用主路由表),由于我重新刷机做的教程且现在没有多拨的必要,就不演示了,没有需求的可以略过这一点。

经过如上配置,重启路由器后,在网络,诊断中应该能够成功ping通openwrt.org的v6了,说明你的路由器已经成功接入v6网络了:

但是如果我们打开https://www.test-ipv6.com/,我们电脑还是没有连上v6的,这里就需要我们修改流量转发的路由表了,使用ssh工具连上路由器,没有的可以点击系统-TTYD终端:依次输入一下代码:

route -A inet6 add default gw fe80::3e8c:93ff:fed0:83c2 dev eth0.2

/etc/init.d/firewall restart

/etc/init.d/network restart

其中,第一行的fe80开头的一串v6地址需要修改为本机的默认网关,可以在状态-概览下获得,如图:

而后面的eth0.2就是你网口的编号了,和防火墙哪那里一样,这个时候我们再打开https://www.test-ipv6.com/,可以发现,我们电脑已经接入ipv6了:

但是,如果路由器关机重启后,我们刚才输入的三行代码会丢失,也就是会回到路由器有ipv6而电脑无法连接ipv6的状态,这个时候我们就需要编辑一个开机自启的脚本,让路由器再开机时自动添加:

具体操作为:使用winscp连接并登陆进入路由器,在/etc/hotplug.d/iface/目录下新建名为restart-ipv6的文件,修改内容为:

#!/bin/sh
[ "$ACTION" = ifup ] || exit 0
route -A inet6 add default gw fe80::3e8c:93ff:fed0:83c2 dev eth0.2

2023.3.22 更新:
如果没有在防火墙自定义规则处修改,请在脚本中添加相关命令。

最后一行需要修改成和刚才一样的内容,然后给予可执行权限。

没有winscp的可以在终端内输入以下内容:

vim /etc/hotplug.d/iface/restart-ipv6

然后再文本框中输入上面的三行内容,按Esc后输入:wq退出。

然后给予可执行权限:

chmod +x /etc/hotplug.d/iface/restart-ipv6

这个时候,恭喜你,成功配置ipv6了哦~

对了,如果有挂pt需求的同学,别忘了在服务-UPnP中打开哦~

还存在一些应该是openwrt本身的问题,在使用ipv6的时候,无法手动配置端口转发,UPnP的端口转发是成功的,但是在防火墙下无法配置,使用Socat也没有成功。

如果有什么问题或者建议,可以和我发邮件联系或者留言:

我的个人邮箱为:

[email protected]/[email protected]/[email protected](任选一个(((

感谢阅读!

文章地址:https://ntdgy.top/ntdgy/30.html

《南方科技大学ipv6设置教程》有3条评论

发表评论

Verified by MonsterInsights