新交换机设置已失效
如有任何问题可联系作者QQ:1158332489,或者直接去他宿舍逮住他:9公寓小卖部旁113
![]()
校园网这个东西,以前似乎很多同学都觉得太慢了,但通过它的IPv6其实可以很快
。并且,这个学期....有人在寝室里又装了一台新的H3C交换机....于是我又开启了折腾之旅...
![]()
没有那台新H3C交换机的话,也可以看看此文中的IPv6配置部分。
第一步:观察环境并测试
经过观察,基本上所有寝室都有前者(即一根孤零零的网线),后者只有部分公寓安装了。
直插对其电脑测试,前者能获取到IPv4和IPv6两种网络,IPv4网速为500KB/s,IPv6网速为5MB/s。
后者只能获取到IPv4地址,网速为3~6MB/s,无法访问校园网。
第二步:路由器相关知识
简单地说,一根网线,发出wifi或分出多条网线,让多台设备上网,这就是路由器啦。(这种多个设备通过一个网络,在因特网上拥有相同的IP地址的上网方式,也被成为NAT)
可将路由器看作电脑,而电脑自然可以分为软件部分和硬件部分。
其中硬件部分,路由器有非常多非常杂的品牌,主要的性能指标在于ROM容量、RAM容量、“CPU”型号。
而软件部分,在官方购买的路由,一般装载的就是官方的系统,官方的系统由于闭源等各种原因,功能很少,可定制性很差。
幸运的是,路由器还有一种软件系统,称为OpenWrt系统,这种系统开源、软件多、功能多、可定制性强。而且有民间开发团队,不停地将其适配在各种各样的硬件上,如TP-Link的部分型号、树莓派、WNDR等。
需要注意的是OpenWrt是一种嵌入式操作系统,什么叫“嵌入式”呢?其实,生活中我们最常见的嵌入式设备非手机莫属了。手机和电脑虽然都可称作计算机,但实际上手机没有通用的操作系统,根据A机型制作出来的系统镜像,不能用于B机型。
路由器也是一种嵌入式设备,嵌入式设备的系统可分成两个部分:Bootloader和系统。Bootloader可看作系统正式启动前的小系统,这个小系统也有很多种,在刷过的路由里一般为UBoot、Breed两种,在这个小系统中可进行刷机操作。
第三步:买路由并刷机
买路由有两种途径:
1.在闲鱼上买刷好Breed或Uboot的路由;
2.在OpenWrt官网查询能刷的路由,搜索刷机方法,购买原版路由自己刷。
个人建议用后者,价格便宜,推荐购买小米mini路由,性价比不错,刷机教程多,OpenWrt官方仍在支持。
刷好Breed后,按住Reset键并上电,等待几秒钟,所有LED灯都会闪一遍,即进入了刷机模式。
此时将路由的LAN口和电脑直连,打开浏览器并在地址栏输入192.168.1.1并进入,即可看到Breed的控制台界面,进行刷机。
第四步:联网、换源及配置IPv6
设置后台密码
首先用网线,将路由的某个LAN口和电脑直接相连。等待路由启动完毕,进入192.168.1.1,此时界面为全英文,会提示未设置密码。密码留空直接登录,进入密码设置页面,设一个密码。
插网线并PPPoE拨号
设好密码后,把老网线插进WAN口,配置PPPoE拨号上网。
进入网络--接口,找到WAN这一接口,点击“修改”,将协议切换改为PPPoE,然后输入学号、密码,保存并应用,过几十秒就自动连上了。
(若输入学号密码无法上网,可首先检查是否开户、缴费,若还是不行,可将学号转换为{SRUN2}与学号的Ascii码+4对应的字符拼接起来的字符串。)
设置Wifi并打开
进入网络--无线设置,修改里面的无线连接,其中接口设置中的基本设置,将模式选为接入点AP,后面可设置Wifi名、密码。
换源
安装Putty或Xshell之类的工具并打开。输入192.168.1.1,22端口,连上,进入到路由的终端。
用户名输入root,密码输入之前所设的密码(输入的密码不会显示,“虚空输入”即可)。
在putty中,复制是左键单击,粘贴是右键单击。执行如下命令,即可换源:
sed -i 's_downloads.openwrt.org_mirrors.tuna.tsinghua.edu.cn/openwrt_' /etc/opkg/distfeeds.conf
sed -i 's_downloads.lede-project.org_mirrors.tuna.tsinghua.edu.cn/openwrt_' /etc/opkg/distfeeds.conf
换源后,需要更新一下新源的软件包列表,执行如下命令:
opkg update
opkg是OpenWrt上的软件包管理器,一般使用opkg install 软件包名
命令安装软件包
配置IPv6-NAT
首先,需要看看路由器自己能不能上IPv6,可运行ping npupt.com
作测试,如果有输出就是OK的,按Ctrl+C
可终止命令执行。
路由器能上IPv6,那么就可以进行如下的配置:
opkg update
opkg install kmod-ipt-nat6
uci set network.globals.ula_prefix="$(uci get network.globals.ula_prefix | sed 's/^./d/')"
uci commit network
uci set dhcp.lan.ra_default='1'
uci commit dhcp
touch /etc/init.d/nat6
接下来需要在putty或xshell这种“黑窗口”里编辑文件,在这种Shell里一般使用vi、vim或emacs进行文件编辑。
输入以下命令,进入vi编辑/etc/init.d/nat6
这个文件。
vi /etc/init.d/nat6
按i键,进入插入编辑模式,复制以下内容,按右键粘贴进putty。
#!/bin/sh /etc/rc.common
# NAT6 init script for OpenWrt // Depends on package: kmod-ipt-nat6
START=55
# Options
# -------
# Use temporary addresses (IPv6 privacy extensions) for outgoing connections? Yes: 1 / No: 0
PRIVACY=1
# Maximum number of attempts before this script will stop in case no IPv6 route is available
# This limits the execution time of the IPv6 route lookup to (MAX_TRIES+1)*(MAX_TRIES/2) seconds. The default (15) equals 120 seconds.
MAX_TRIES=15
# An initial delay (in seconds) helps to avoid looking for the IPv6 network too early. Ideally, the first probe is successful.
# This would be the case if the time passed between the system log messages "Probing IPv6 route" and "Setting up NAT6" is 1 second.
DELAY=5
# Logical interface name of outbound IPv6 connection
# There should be no need to modify this, unless you changed the default network interface names
# Edit by Vincent: I never changed my default network interface names, but still I have to change the WAN6_NAME to "wan" instead of "wan6"
WAN6_NAME="wan6"
# ---------------------------------------------------
# Options end here - no need to change anything below
boot() {
[ $DELAY -gt 0 ] && sleep $DELAY
logger -t NAT6 "Probing IPv6 route"
PROBE=0
COUNT=1
while [ $PROBE -eq 0 ]
do
if [ $COUNT -gt $MAX_TRIES ]
then
logger -t NAT6 "Fatal error: No IPv6 route found (reached retry limit)" && exit 1
fi
sleep $COUNT
COUNT=$((COUNT+1))
PROBE=$(route -A inet6 | grep -c '::/0')
done
logger -t NAT6 "Setting up NAT6"
WAN6_INTERFACE=$(uci get "network.$WAN6_NAME.ifname")
if [ -z "$WAN6_INTERFACE" ] || [ ! -e "/sys/class/net/$WAN6_INTERFACE/" ] ; then
logger -t NAT6 "Fatal error: Lookup of $WAN6_NAME interface failed. Were the default interface names changed?" && exit 1
fi
WAN6_GATEWAY=$(route -A inet6 -e | grep "$WAN6_INTERFACE" | awk '/::\/0/{print $2; exit}')
if [ -z "$WAN6_GATEWAY" ] ; then
logger -t NAT6 "Fatal error: No IPv6 gateway for $WAN6_INTERFACE found" && exit 1
fi
LAN_ULA_PREFIX=$(uci get network.globals.ula_prefix)
if [ $(echo "$LAN_ULA_PREFIX" | grep -c -E "^([0-9a-fA-F]{4}):([0-9a-fA-F]{0,4}):") -ne 1 ] ; then
logger -t NAT6 "Fatal error: IPv6 ULA prefix $LAN_ULA_PREFIX seems invalid. Please verify that a prefix is set and valid." && exit 1
fi
ip6tables -t nat -I POSTROUTING -s "$LAN_ULA_PREFIX" -o "$WAN6_INTERFACE" -j MASQUERADE
if [ $? -eq 0 ] ; then
logger -t NAT6 "Added IPv6 masquerading rule to the firewall (Src: $LAN_ULA_PREFIX - Dst: $WAN6_INTERFACE)"
else
logger -t NAT6 "Fatal error: Failed to add IPv6 masquerading rule to the firewall (Src: $LAN_ULA_PREFIX - Dst: $WAN6_INTERFACE)" && exit 1
fi
route -A inet6 add 2000::/3 gw "$WAN6_GATEWAY" dev "$WAN6_INTERFACE"
if [ $? -eq 0 ] ; then
logger -t NAT6 "Added $WAN6_GATEWAY to routing table as gateway on $WAN6_INTERFACE for outgoing connections"
else
logger -t NAT6 "Error: Failed to add $WAN6_GATEWAY to routing table as gateway on $WAN6_INTERFACE for outgoing connections"
fi
if [ $PRIVACY -eq 1 ] ; then
echo 2 > "/proc/sys/net/ipv6/conf/$WAN6_INTERFACE/accept_ra"
if [ $? -eq 0 ] ; then
logger -t NAT6 "Accepting router advertisements on $WAN6_INTERFACE even if forwarding is enabled (required for temporary addresses)"
else
logger -t NAT6 "Error: Failed to change router advertisements accept policy on $WAN6_INTERFACE (required for temporary addresses)"
fi
echo 2 > "/proc/sys/net/ipv6/conf/$WAN6_INTERFACE/use_tempaddr"
if [ $? -eq 0 ] ; then
logger -t NAT6 "Using temporary addresses for outgoing connections on interface $WAN6_INTERFACE"
else
logger -t NAT6 "Error: Failed to enable temporary addresses for outgoing connections on interface $WAN6_INTERFACE"
fi
fi
exit 0
}
粘贴进去后,按ESC键退出,回到-模式,直接输入:wq
,回车,就保存成功并回到原先的命令界面了。
而后运行如下命令。
chmod +x /etc/init.d/nat6
/etc/init.d/nat6 enable
uci set firewall.@rule["$(uci show firewall | grep 'Allow-ICMPv6-Forward' | cut -d'[' -f2 | cut -d']' -f1)"].enabled='0'
uci commit firewall
运行完后,还需修改两个文件,还可用vi编辑,输入以下命令进入对应文件的编辑。
vi /etc/sysctl.conf
进入vi后,按i键进入插入编辑模式,用方向键移动光标,把文件中的相关内容改为以下内容,没有的就添加。
net.ipv6.conf.default.forwarding=2
net.ipv6.conf.all.forwarding=2
net.ipv6.conf.default.accept_ra=2
net.ipv6.conf.all.accept_ra=2
编辑完成后,按ESC退出编辑模式,输入:wq
,即可保存退出。
还需要编辑/etc/firewall.user,执行以下命令。
vi /etc/firewall.user
按i键进入插入编辑模式,光标移动到最末尾,加一行,粘进以下内容。
ip6tables -t nat -I POSTROUTING -s $(uci get network.globals.ula_prefix) -j MASQUERADE
加入完成后,按ESC退出编辑模式,输入:wq
,即可保存退出。
一切操作完成后,输入reboot
命令,即可重启路由,此时电脑连到路由,就有IPv6啦。
第五步:将LAN口变WAN口(需存在新交换机)
配置交换机
因为要把LAN口中的一个,抠出来变成WAN口,所以需要在网络--交换机里配置一下接口。如下图。
上图中,一行代表了一个接口,例如第一行就代表了eth0.1,第二行就代表eth0.2,以此类推。
这个eth其实是ethernet的缩写。这里可以看到物理接口的真实接线情况,注意不要把接电脑的那个LAN口改成WAN口了。
增加一行,将某个LAN口单独出来,作为eth0.2或eth0.3用。
新建接口
弄出独立的接口后,即可到网络--接口页面新建一个接口,用默认的DHCP客户端即可。
新建完成后,需要到该接口的防火墙设置中,将策略设成WAN,这个口就变成WAN口啦。
第六步:配置两个WAN口
新的WAN口加入之后,需要对两个WAN口进行配置才可上网。
由于有两个WAN口,两个WAN口获取到的DNS可能不一样,导致连不上网,所以得给两个WAN口分别指定DNS。
此外,多个WAN口要配置负载均衡,还得设置网关跃点。
如下图进行配置:
第七步:负载均衡
安装MWAN3及其图形界面
进入Putty或XShell,使用如前所述的同样的方法,进入SSH。执行完以下命令即安装完毕:
opkg update
opkg install mwan3 luci-app-mwan3
配置接口
进入网络--Load Balancing(或负载均衡),点击总览旁边的配置,即可进入。
首先删除所有默认生成的接口,然后在左下角输入之前两个WAN口的名字,点击添加,进去后里面的配置不用管,直接保存应用即可。
配置Members
将默认的所有Members删除,然后在左下角添加,名称可自定,两个接口需要添加两个Member,配置如下图:
配置Policies
Policies指的是策略,对于两个接口的情况有三种策略:只用A口,只用B口,AB口均衡混用,所以先删除原先的所有Policies,添加这三种策略即可。如下图所示:
配置Rules
Rules指的是规则,对于不同的IP地址段,需要用不同的策略。规则就是配置IP地址段和策略关系的东西的东西。
已知:新交换机网不能上校园内网、学校官网、IPv6,但访问其他的站点很快。而老网线可以弥补这些不足。
因此,可以设置普通网站走新交换机,校园内网、学校官网、IPv6走老网线。如图:
只需要填写Destination address和Policy,其他留空或默认即可。
注意在添加后需要移动策略的顺序为上图所示的顺序。
解决MWAN与IPv6冲突的Bug
需要修改/lib/mwan3/mwan3.sh这个文件。
执行如下命令用vi打开该文件:
vi /lib/mwan3/mwan3.sh
按i键进入插入编辑模式,方向键移动光标。
把IPT6=...一行加#号注释掉,然后加一行如下代码:
IPT6="/bin/true"
最终效果如下:
按:wq
保存并退出。
插上网线重启嗨皮
直接在putty里执行reboot
即可重启路由器。
第八步:修Bug
部分学校网站无法访问
学校网站的IP段在上述步骤中只添加了几个,要全部找到并添加完不太现实。
所以退一步,可以把教育网网段都添加进来,只走老网线。
教育网的IP段可以在这里找到。
为此,我写了一个自动下载、导入IPset的脚本,按如下命令操作即可。
opkg update
opkg install curl
touch /root/cernet.txt
进入vi,编辑文件:
vi getIP.sh
按i
进入插入编辑模式:
ipset -N cernet nethash
ipsource='https://ispip.clang.cn/cernet.txt'
info=`curl -s -m 10 --connect-timeout 10 -I -k -tlsv1 $ipsource`
code=`echo $info|grep "HTTP"|awk '{print $2}'`
if [ "$code" == "200" ];then
curl -k -tlsv1 $ipsource |grep -v "routes" > /root/cernet.txt
fi
ipsetconf=/root/ipset.conf
echo -n "" > $ipsetconf
ROUTES=/root/cernet.txt
for network in `cat $ROUTES`; do
echo "add cernet $network" >> $ipsetconf
done
ipset flush cernet
ipset restore -f /root/ipset.conf
按:wq
保存并退出,再加执行权限:
chmod +x getIP.sh
最后在联网条件下,运行它:
./getIP.sh
微信消息收发慢
在使用这个网络的过程中未免会发现,微信收发消息总是很慢,由此我查了一番,发现是IPv6 DNS的问题。
DNS服务器在解析weixin.qq.com
时,会优先使用IPv6地址,而微信的IPv6还未完善,所以收发消息、看公众号总是慢得亚批。
为了能够同时使用IPv6和微信,我尝试了SmartDNS,结果非常成功,配置过程如下:
首先需要找到SmartDNS的下载地址:
官网:https://github.com/pymumu/smartdns
下载页面:https://github.com/pymumu/smartdns/releases
进入下载页面,可以发现有非常多版本的ipk安装包可供下载:
其中,luci-app-
开头的只是界面,smartdns.xxxxxxxx.xxxx.ipk
才是核心的东西,二者都需要下载。
对此,需要在路由器后台,查看路由器的CPU型号,搜一搜是什么架构的(一般是MIPS架构的),然后下载对应的即可。
此外,luci-app-
开头的东西,需要视系统版本,如果是OpenWrt 19以下的,则需要下载-compat-all
后缀的ipk包。
下载完成后,使用winscp,将这两个文件粘进路由器。
此后可打开putty,敲命令:
opkg install smartdns的ipk文件名
opkg install luci开头的ipk文件名
安装OK后,打开路由器后台,可以发现多出来了个服务--SmartDNS。
按如下配置即可:
2020年11月13日 10:15
啊这
,我翻了翻手机今年九月份过来用newifi百兆路由器测的上传4MB/s,10月份用红米ax6千兆路由测的上行也是4MB/s(新华三接口),估计当时限速是这么多。而当时网线接口的上行是500kB到800kB,现在没测。估计九公寓是被针对了。。。【今年图书馆Wi-Fi都上下行全800kB
】
2020年11月13日 11:34
其实那个H3C就是放HEU-WLAN热点的,我看看能不能用路由去连它登录...
2020年11月13日 11:53
欸可以!新的解决方案产生了
2020年11月13日 13:26
我当时想了两个方案是,一绕过校园网认证通过阿里云猥皮恩,csdn有方案不过难度比较大;还有一个是利用新华三路由口的console插入电脑,进终端调试。。。不过后边这种要去新华三下点资料,我还没账号。。。(实际干起来肯定有方法,tb什么的)俩都是灰色地带
2020年11月13日 13:29
进console口搞可能会定 倾如计算机系统醉 叭
2020年11月13日 13:31
这玩意改了之后大感觉后勤信息化处能看到,万花丛中一点绿,悬。。。还是求保险,
2020年11月13日 13:14
估计是不行吧
你试试?我之前是新华三ge3口直连路由器,路由器路由模式pppoe拨号上网的。现在显示无电缆连接。。。 
2020年11月13日 13:23
ge3插网线虽然没了,但还可以用无线呀,把路由作为无线中继连5GHz的HEU-WLAN,再和原来的老网线作负载均衡,实测这个HEU-WLAN上传没降
2020年11月14日 20:46
问一下
路由做无线中继连heu之后,选择pppoe拨号连接不上,但动态ip分配又仅仅只是无线ap的功能,还是要登陆啊
负载均衡是不是要俩账号双拨啊 
2020年11月15日 00:40
要登录的啊
,登录页是172.18.246.34,需要在负载均衡里让这个ip只走中继wifi 
2020年11月15日 09:24
而且最近老网线打联盟巨多问题,前天我们四个人为了在一个房间就用了半小时
,之后又是无限的未知的错误 
2020年11月15日 09:22
是老网线用路由器pppoe拨号加路由器无线中继heu-wlan登录,做负载均衡?
我理解对不。。。(这俩能同时实现?有点怪怪的。。
其实我用的是pdcn老毛子系统没做过负载均衡,现在直接和室友共用)【题外话,有没有六维空间邀请码或者六维空间邀请码怎么弄啊
】
2020年11月15日 13:32
我是九系经管大四金融生
,同院电商有个学长是蒲公英的管理员 
2020年11月15日 20:01
巧了,这也是我电商同专业学长啦
不过也是大四的吧,问问蒲公英啥时候开呗 
2020年11月15日 20:26
蒲公英一直开着能用的呀
(那个学长是2016级的已经去腾讯上班了
)
2020年11月15日 20:28
https://npupt.com/ 这个?
进不去啊 
2020年11月15日 20:36

看这可以呀
2020年11月15日 20:30
欸我就进得去欸,你是不是以前加了hosts忘了删
2020年11月15日 20:44
啊,这
真相了,进去之后第一条就是#上边是之前的
#蒲公英pt
2606:4700:30::6818:7312 npupt.com
2606:4700:30::6818:7312 6.npupt.com
哈哈哈啊哈,之后刷了下dns缓存又上了
2020年11月15日 13:30
蒲公英我还有两个邀请
2020年11月15日 13:29
唔,是对的是对的,六维空间的我没有呐....
但有蒲公英的,蒲公英、北洋园用edu邮箱可以注册....在mail.hrbeu.edu.cn可以注册edu邮箱
,如果你上传量不够可以加我VX: hhz1158332489 
2020年11月15日 20:00
ojbk
献黄瓜是个什么玩意儿
不过蒲公英说维护很久了,好像是炸了,到现在还登不上。。。 
2020年11月15日 20:03
话说这访客头像能改不
自定义下?
【今天突然发现网站多了两首歌哈哈哈
】
2020年11月15日 20:33
严重怀疑你也有网站
,交换个友链呗 
2020年11月15日 20:47
啊哈哈啊哈,我还在做
其实还在想法阶段,下次一定! 
2020年11月15日 20:31
唔,头像...你把邮箱改成qq邮箱能自动出头像的....调的API...
(网站是用的虚拟主机建的站...只能跑php...所以一直用的typecho、wordpress之类的现成玩意儿...现在是typecho)
2020年11月15日 20:58
qq邮箱找不到这功能啊00
这个头像也很迷
,电源没电了 
2020年11月15日 21:14
不不不,你评论的时候输的邮箱,输QQ邮箱,网站能自动获取到头像的
2020年11月15日 21:21
哦,形式上foxmail邮箱和qq邮箱是一个,不一样的名字
这货不是被qq邮箱收购了么还不同步 
2020年11月15日 21:35
2020年11月16日 12:32
啊这,
暴露了
【别开腔是友军
】
2020年11月15日 21:26
因为调头像的api只能post一个qq号去拉取
,foxmail没法找到qq号,所以就没法调出头像啦 
2020年11月15日 21:23
竟然是年轻时候的qq头像,哈哈哈哈哈
2020年11月15日 21:24
好家伙我直接好家伙
2020年11月13日 13:27
对呀有道理啊,我咋忘了路由器有这功能了,赶紧试试
2020年11月13日 13:16
为啥我显示安卓safari
明明是华为自带浏览器 
2020年11月13日 13:25
大概是webkit内核的缘故吧
2020年11月13日 11:27
我问问看其他公寓的情况....(有可能公寓全都被针对了...)
2020年11月12日 20:27
同九公寓楼上。。之前h3c路由的哪个GE3口用红米ax6测速能到26MB/s,而且直连用DHCP分配动态IP直接上网。自从双11(准确来说是11.10下午),中午能上网,下午上完课晚上回来就炸了。。老毛子主界面显示电缆未接入,后来换路由器或者插入电脑也不行了(之前直接上网)。。。估计是双十一信息化处维护改了点东西,把ge3口给屏蔽了。。。
而且现在我同室友连接交换机,一分八口我插在分线口处的路由器pppoe拨号会导致我们俩都无法拨号上网(辣鸡深蓝!),同今年九月过来也可以,mmd,xxxxx不讲武德马家沟男子造船学院。。。
2020年11月12日 21:04
确实啊,现在就只能用ipv6提提速了...不过六畅、6box什么的都倒闭了用不了...用叉叉net速度又不太好...很烦...
...我寝室离门口太近了
,直接透过玻璃看到了网线....当场让我拔了....所以这篇文章我也设置成隐藏了,只能从链接访问)
(其实上个月信息化处的人就有来查
2020年11月12日 21:44
这波呀,这波是当场爆炸原地起飞。
学校怎么会让学生白嫖呢,gc学子可是军工精神及其能吃苦的
【这表情包好搞啊哈哈哈哈
】
2020年11月12日 22:18
上传速率应该是限死了,连IPv6的上传速率都只有50KB/s
,对应IPv6的下载速率5MB/s 
2020年11月12日 22:15
我估计那边还在搞限速....上传速度现在是直接降到50KB/s...
(貌似就九公寓降了上传
)
2020年11月13日 10:29
话说提个建议,这个评论打字时候的抖抖抖特效能不能价格取消特效的按钮
【去特效版
】
2020年11月13日 11:29
抖起来多炫哦
!不想关... 