配置路由器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這個參數了,教訓就是之後用別人教程的時候,若是無論用,能夠先考慮參數是否和原做者有區別,嘗試修改一下。

相關文章
相關標籤/搜索