配置路由器ipv6访问(padavan&mi_r2d)

研一和研二由于有张无限流量的校园联通卡,因此一直没在乎上网的事情。研三最后半个学期没有流量真是难受的要死。东北大学校园网ipv6出口免流量,家里移动的网络有ipv6,有几回放假回家都想着配好了能在学校用,以前没动力,也就没怎么仔细研究,到毕业了都没搞出来。最后一个学期用着vps的ipv6代理,因为海外ip,视频网站还不能看,网速还不肯定,憋屈。html

此次毕业了在家没事干,却是把ipv6配出来了。。。记录一下本身踩的坑吧,其实就一层窗户纸,哎。git

0.验证网络是否有ipv6

我家的网络环境,光纤入户,破解了光猫,由路由器进行pppoe拨号。因为路由器通常都没有配置ipv6,因此没法获取ipv6地址。github

建议测试时,直接将光猫链接电脑,而后配置pppoe拨号。打开http://test-ipv6.com/测试是否能够访问ipv6。肯定能够访问以后,下一步配置路由器。shell

1.配置padavan路由器访问ipv6

参考内容不少,放一个最近配置时看到的。api

H大Padavan固件中NAPT66模块的使用方法【适用于教育网原生IPv6】(20190131更新)安全

这里我再转述一遍。网络

这里是使用NAPT66模块,我家的newifi mini的固件自带这个插件,OpenWrt可能须要安装,安装能够参考这个连接Padavan/Openwrt/LEDE下实现ipv6 nat/napt66ssh

在肯定拥有NAPT66模块的Padavan固件下:性能

1)修改外部网络(WAN)中的Ipv6设置测试

配置例子以下,配置成功后,在网络地图->外部网络状态的”Ipv6地址 WAN”中就能够看到ipv6地址,这个时候路由器已经能够访问ipv6了,可是局域网尚未分配ipv6地址

ipv6配置例子

2)在“在防火墙规则 (Emong's Qos) 启动后执行”脚本中添加以下脚本:

### NAPT66 所须要的防火墙政策
ip6tables -F
ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT

3)进入“自定义设置 - 脚本”中“路由器启动后执行”脚本中添加以下脚本:

### 启动 NAPT66 模块
insmod /lib/modules/$(uname -r)/kernel/net/napt66/napt66.ko wan_if=ppp0

**注意!**上面的wan_if后面的参数,原帖子给的是eth0.2,就是由于这个我被坑了这么久,没配置正确。这里须要本身肯定具体的参数。肯定的方式很简单,登陆ssh,输入ifconfig,看是哪一个网络获取了ipv6地址。

例如我这里,能够看出是ppp0获取到的ipv6地址,因此设置为ppp0:

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:10.***.****.180  P-t-P:10.253.64.1  Mask:255.255.255.255
          inet6 addr: 2409:8a44:****:3b:****:8ebc:****:a7f8/64 Scope:Global
          inet6 addr: fe80::****:****:****:a7f8/10 Scope:Link
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:3808279 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4144880 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:3205203030 (2.9 GiB)  TX bytes:757281553 (722.1 MiB)

4)重启路由器,重启计算机网络

2.配置小米r2d获取ipv6网络

回家以后在拼多多又淘了个小米路由器r2d,自带1t硬盘,cpu双核A9+256RAM+512ROM,性能能够,才272块。虽然最后确认是官翻,并且硬盘通电3000+小时,还行吧,这么便宜要啥自行车,带1年保修。

小米的路由器自己没法配置ipv6,因此继续研究。

2.1 开启ssh

配置ipv6须要开启ssh,而小米官方渠道开启ssh会失去保修,这里提供小米r2d非官方开启ssh的方法。

参考:升级小米路由器3 SSH

须要旧版的开发版固件,brcm4709_r2d_all_2.8.14.bin

1)手动升级,选择旧版固件。

2)进入192.168.31.1,并登陆,登陆后在地址栏会有stok,记录,用来替换下面网址中的stok,替换stok后陆续在地址栏执行如下4条(注意每次执行要等待指令执行完成后,即页面打开状态的小圆圈转完)。

http://192.168.31.1/cgi-bin/luci/;stok=【你的stok,登陆路由器管理界面在地址栏能够看到】/api/xqnetwork/set_wifi_ap?ssid=tianbao&encryption=NONE&enctype=NONE&channel=1%3Bnvram%20set%20ssh%5Fen%3D1%3B%20nvram%20commit

http://192.168.31.1/cgi-bin/luci/;stok=【你的stok,登陆路由器管理界面在地址栏能够看到】/api/xqnetwork/set_wifi_ap?ssid=tianbao&encryption=NONE&enctype=NONE&channel=1%3Bsed%20%2Di%20%22%3Ax%3AN%3As%2Fif%20%5C%5B%2E%2A%5C%3B%20then%5Cn%2E%2Areturn%200%5Cn%2E%2Afi%2F%23tb%2F%3Bb%20x%22%20%2Fetc%2Finit.d%2Fdropbear

http://192.168.31.1/cgi-bin/luci/;stok=【你的stok,登陆路由器管理界面在地址栏能够看到】/api/xqnetwork/set_wifi_ap?ssid=tianbao&encryption=NONE&enctype=NONE&channel=1%3B%2Fetc%2Finit.d%2Fdropbear%20start

http://192.168.31.1/cgi-bin/luci/;stok=【你的stok,登陆路由器管理界面在地址栏能够看到】/api/xqsystem/set_name_password?oldPwd=路由器管理密码&newPwd=路由器管理密码

前三个URL返回的相关错误代码是:

{
    "msg": "未能链接到指定WiFi(Probe timeout)",
    "code": 1616
}

最后一个是root ssh登陆小米路由器的密码设置,所以,只有返回以下,才能说明ssh破解正常:

{
    "code": 0
}

3)测试ssh

成功开启ssh后,使用powershell、putty或者你熟悉的ssh客户端,输入下面指令,若是开启ssh成功,输入密码便可登陆路由器。

ssh root@192.168.31.1

若是开启失败,会被拒绝访问,相似下面的提示

ssh: connect to host localhost port 22: Connection refused

开启ssh成功后,能够直接在线升级最新版的固件,ssh权限不会被关闭。

2.2 开启ipv6

这部分基本照搬下面的参考连接,我也没有遇到什么坑

参考:小米路由的IPv6支持教程(Update: 19/03/04)

1)外部网络(WAN)获取ipv6

替换路由器文件 /etc/config/ipv6 为

config ipv6 'settings'
        list if_on 'wan'
        option enabled '1'
        list if_on 'ipv6'
        option enabled '1'

重启路由器,经过两种方法判断路由器是否获取到ipv6地址。

  • ifconfig判断是否获取到ipv6网址
  • 经过下面的指令判断路由器是否得到ipv6地址
    ping6 ipv6.tsinghua.edu.cn

2)局部网络(LAN)获取ipv6

小米路由事实上已经实现了大多数的 IPv6 支持,然而因为固件版本过低,惟独 NDP 在光猫路由情形下没法正常工做,须要额外可执行文件来帮忙。

6relayd 能够做为合适的 NDP 中继。其实 6relayd 功能还有不少,更有 odhcpd 做为更丰富的继承者。然而这两个组件官方均未提供使用,因而运用小米提供的 SDK 自行编译了 6relayd

下载:6relayd

将 6relayd 文件放入/sbin/并使其可执行。因为该文件夹默认只读,先在 SSH 中输入如下命令解锁:

mount -o remount rw /

以后,用以前推荐的软件经过 SCP 把文件放入上述文件夹。并授予其可执行权限:

chmod +x /sbin/6relayd

此时,在SSH中执行“6relayd”应该会显示程序的帮助信息。 在本案例中,输入以下命令:

6relayd -N eth0.2 br-lan &

重启局域网中的计算机后,再经过网站验证 IPv6,应当会经过验证。

走到这一步,说明所有的技术路线已经打通。为了让 6relayd 可以在路由器重启后自动执行,将其附加在开机自动执行的脚本上。以 /etc/init.d/plugin_start_.sh 为例,加入的方式以下:

netmode=$(uci get xiaoqiang.common.NETMODE)
        if [ "$netmode"x != "lanapmode"x ] && [ "$netmode"x != "wifiapmode"x ]
        then
                copy_plugin_chroot_file
                sync
                # decrese current priority and throw myself to mem cgroup
                # so all plugins inherit those attributes
                renice -n+10 -p $
                echo $ > /dev/cgroup/mem/group1/tasks
                /usr/sbin/plugin_start_impl.sh &
                6relayd -d -N eth0.2 br-lan
        fi

重启路由器后,路由器下属设备应当自动得到正常的 IPv6 链接,这样的话就大功告成了。

3)对外网暴露的支持

若是本地计算机已经能够经过 IPv6 测试、能够访问 IPv6 网站,但外网经过 IPv6 没法访问本机,首先是由于 openwrt 默认阻挡全部外网主动发起 IPv6 链接。小米路由自带 IPv6 防火墙 ip6tables,为了肯定问题,能够用如下命令使该防火墙放行全部数据:

ip6tables -F
ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT

须要注意的是,这样会下降内网设备的安全性。建议自行研究和配置 ip6tables,对放行进行严格的约束。肯定规则后,能够模仿以前思路将其设为开机启动。 另外,不要忽略本地计算机操做系统的防火墙。例如 Windows 防火墙默认阻挡 ICMP。在此配置下,外网 ping 本机 IPv6 是没有答复的。

3.结语

至此,个人两个路由器均可以获取ipv6地址,因为移动的ipv4没有公网ip,bt下载很不方便,配置ipv6以后就拥有公网ip了。

惟一踩的坑就是wan_if这个参数了,教训就是之后用别人教程的时候,若是无论用,能够先考虑参数是否和原做者有区别,尝试修改一下。

相关文章
相关标签/搜索