写在前面:刷机有风险,本教程目前只在斐讯K2上测试过,本人对不严格参照此教程以至于把路由器刷成砖的情况不承担任何法律及道义上的责任。
教程中刷入的固件不含有SS,屏蔽广告等功能,只因K2 Flash太小,刷入一个Ipv6的hosts文件就基本满了。
1.设备信息
路由器型号:斐讯K2(Wndr 4300经测试也可用Nat6这种方法,理论上任何可刷基本Openwrt固件的路由器均可使用此种方法设置Ipv6)
需要下载的工具:
1.1 固件:PandoraBox-ralink-mt7620-phicomm-k2-2017-01-03-git-6c24a7a-squashfs-sysupgrade(此固件只适用斐讯K2,其它类型的路由器请自行百度下载固件)
1.2 刷Bootloader工具:路由器刷breed Web助手通用版v3.1
1.3 下载安装 Xsehll软件,可从此链接下载。下载后,安装此软件。
1.4 Nat6文件
刷机时一定要有一台带有线网卡的电脑。
2.刷入Breed Web 恢复控制台(以K2路由器为例)
所谓刷机,就是把原厂自带的软件给刷掉,为此需要先刷入类似于Bootloader之类的东西。此处需要下载1.2中的工具,关于这个工具的具体介绍,有兴趣的可移步此处看原作者介绍:【2017-06-13】AR/QCA/MTK Breed,功能强大的多线程 Bootloader。这个软件也支持其它路由器的刷机,不过没试过。下载后,将压缩包完全解压到一个文件夹下。
- 用网线,将路由器的Lan口(有一个特殊色的,是Wan口,其于都是Wan口)接到电脑上
- 刷机前,先关掉电脑上一切杀毒软件(Windows Defender实测可不用关),防火墙不关实测也可成功(但不保证100%没问题)。刷机过程中会弹出一些窗口,需要点确认。
- 右键以管理员的身份运行“路由器刷breed Web助手通用版v3.1.exe”,如果是刚收到的路由器,没有经过任何设置,确保参数与图片中一致后,可直接点“开始刷机”。如果自己定义过路由器,则需要将用户名,密码,路由器IP地址改为相应的值,其它值要确保跟图片中一致,然后再点“开始刷机”
- 未设置密码的情况下,软件会将密码设为默认值 : huzibbs-it 。此时需要将密码修改为:huzibbs-it。然后再点开始刷机。如果之前设置过密码,应该点过开始刷机后,就可一路刷到底(未测试过,猜想。)
- 刷机完成后,会出现如图中的状态提示,按照提示操作即可。记住,一定要先拨掉路由器电源,然后按住按钮,最后再通电。至此Breed Web 恢复控制台刷入完成。
3. 刷入PandoraBox固件
- 完成刷入Breed的最后一步后,在浏览器中输入 192.168.1.1,就可进入Breed Web 恢复控制台。如果进入失败,可以在 ”控制面板\网络和 Internet\网络连接“ 中先禁用,再启用有线网卡。
- 首先点击固件备份,备份”EEPROM“ 和 ”编程器固件“
- 然后点”恢复出厂设置“,选择 “Config区(公版)”,点“执行”
- 点“固件更新”,在固件的右边点”选择文件“,选择1.1下载的路由器固件。闪存布局默认的”公版(0x50000),勾选”自动重启“,然后点击 ”上传“
- 确认界面中,选择”更新“,之后等待操作完成即可。
路由器设置
下面主要是路由器中Ipv6的设置,至于管理员密码,无线密码、名称之类的怎么设置都很简单,就不再贴图了。
-
首先,要确保路由器能连上ipv4的外网,为此需要对路由器Wan口进行设置。浏览器中输入192.168.1.1,默认的管理员密码是 admin
-
登录成功后,点“网络 ->接口 -> Wan” ,然后选择相应的协议。如果是在实验室,选DHCP客户端即可,一般默认即是 “DHCP客户端”;如果是在寝室,需要将协议切换为”PPPOE“
- 实验室配置如下:
- 寝室配置时,选中 PPPOE,然后点切换协议:
- 输入自己宽带的帐户和密码,然后点”保存&应用“即可
- 输入自己宽带的帐户和密码,然后点”保存&应用“即可
- 实验室配置如下:
确保路由器能上网后,再进行下面的操作
下面的设置需要使用Xshell软件,如果有一定的Linux基础,使用起来会比较方便,如果没有,也没关系,都是比较简单的操作,对着教程操作就好。
-
SSH登录到路由器:打开Xsehll软件,选择”文件-新建“,在弹出的对话框中的”主机“输入 192.168.1.1,然后点击“确定”。在之后弹出的界面中选择“连接”
- 之后,会弹出安全警告,选择“接受并保存”即可
- 然后需要输入用户名和密码,密码与路由器登录密码相同,默认是 admin
下面主要是要配置Nat6,Ipv6按道理应该是不需要Nat的,可是不知道是自己设置有问题,还是学校的Ipv6比较奇怪,其它设置一直没能成功。如果有其它方法成功的,欢迎跟贴指出。Nat6配置主要参考此教程:【转载】 通过openwrt的NAT6转发,使后端设备获得ipv6网络。在此,对原作者表示感谢。
以下涉及代码的,均需要在Xshell中输入。 - 之后,会弹出安全警告,选择“接受并保存”即可
- 安装kmod-ipt-nat6
opkg update
opkg install kmod-ipt-nat6
- 运行示例(之后不再给出Xshell界面)
- 将”IPv6 ULA Prefix” 的前缀由 f 改为 d
-
uci set network.globals.ula_prefix="$(uci get network.globals.ula_prefix | sed 's/^./d/')"
uci commit network
-
- 将DHCP服务器设置为”总是广播默认路由“
uci set dhcp.lan.ra_default='1'
uci commit dhcp
- 生成nat6脚本
touch /etc/init.d/nat6
vi /etc/init.d/nat6
- 之后,需要用到VI编辑器,这个东西比较复杂,不过我们只需用到比较简单的功能。确保输入命令时都处于英文输入法状态。
- 首先,按 a 键进入编辑状态
- 然后,将1.4中的Nat6文件复制,粘贴进去
- 然后按 Esc 键,再输入 :wq (冒号也要输的),即可保存并退出Vi编辑器状态。
- 修改权限,并生效
chmod +x /etc/init.d/nat6
/etc/init.d/nat6 enable
- 禁止防火墙设置: “Allow-ICMPv6-Forward”
uci set [email protected]["$(uci show firewall | grep 'Allow-ICMPv6-Forward' | cut -d'[' -f2 | cut -d']' -f1)"].enabled='0'
uci commit firewall
-
修改/etc/sysctl.conf
vi /etc/sysctl.conf
- 然后按a键进入编辑状态,按键盘上的上,下,左,右四个箭头键进行移动(不要使用鼠标)
- 把文件中相关内容改为以下内容,没有的话就添加,大概说接收广播并开启ipv6转发
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 (冒号也要输的),即可保存并退出Vi编辑器状态。
-
加入转发规则,编辑/etc/firewall.user
vi /etc/firewall.user
- 然后按 a 键进入编辑状态
- 移动光标到文件未尾,按回车后,添加以下语句
ip6tables -t nat -I POSTROUTING -s $(uci get network.globals.ula_prefix) -j MASQUERADE
- 修改完成后,按 Esc 键,再输入 :wq ,即可保存并退出Vi编辑器状态。
下面配置Ipv6 hosts,使相关的网站(Google,Wiki,Youtube,Facebook等)走Ipv6通道
- 安装wget
opkg update && opkg install wget
- 从网络上下载Ipv6 hosts文件
wget --no-check-certificate https://raw.githubusercontent.com/lennylxx/ipv6-hosts/master/hosts -O /etc/host_ipv6
- 回到路由器设置界面,选择”网络 -> DHCP/DNS -> HOSTS和解析文件”,在额外的HOSTS文件中填入 /etc/host_ipv6 然后点击“保存应用”
- 设置启动项,实现定时重启,以及自动更新Ipv6 hosts等功能
- 选择”系统->计划任务”,将以下代码复制进去
0,1,11,21,31,41,51 * * * * /usr/bin/set_kernel_timezone >/dev/null 2>&1
*/20 * * * * echo 3 > /proc/sys/vm/drop_caches
30 4 * * * sleep 1m && touch /etc/banner && reboot -f 2>/dev/null ###定时重启
*/30 * * * * ping -c 4 www.baidu.com 2>/dev/null ###Ping_baidu
00 3 * * * wget --no-check-certificate https://raw.githubusercontent.com/lennylxx/ipv6-hosts/master/hosts -O /etc/host_ipv6 2>/dev/null ###更新Ipv6 Hosts- 注意,要在最后一行处按回车键,加入空行。
- 选择”系统->计划任务”,将以下代码复制进去
- 修改Wan6口,点“网络 ->接口 -> Wan6”,将相关设置改为图片中的设置,然后点 “保存&应用”
- 然后,选择“系统 ->重启“,点”执行重启“,以重新启动路由器。路由器重启后,Ipv4和Ipv6应该就都能正常使用了。
更新日志
2017年7月23日:完成第一版
另外,最近嘉定校区教学区的Ipv6好像不能用了,主要问题是Wan6口能获得Ipv6地址,但是却Ping不通ipv6网关(不知道是不是只有我有这个问题,目前在汽车学院和E楼,ipv6都没法正常使用,寝室能正常使用),跟网管打了多次电话,但是感觉是被忽视了,毕竟Ipv6用的人少。。。有需求的同学,可以打电话问问,估计打的人多了,网管那边就会查问题了吧。