之前在路由器上使用 Zerotier 組網(wǎng),效果還是不錯(cuò)的。但是兩臺(tái)路由器都是通過(guò)打洞連接的,效果可能并不是特別穩(wěn)定。恰好我的兩臺(tái)路由器都是有 IPv6 地址的,那么何不試試使用 IPv6 地址直連的方式來(lái)進(jìn)行組網(wǎng)呢?
安裝 WireGuard 依賴(lài)
在兩臺(tái)路由器上均安裝相關(guān)的依賴(lài),只需要安裝 luci-i18n-wireguard-zh-cn 系統(tǒng)即可自動(dòng)將所有依賴(lài)安裝完畢,完成之后必須要重啟路由器。
opkg update
opkg install luci-i18n-wireguard-zh-cn
重新登錄路由器管理頁(yè)面,就可以在 狀態(tài) – WireGuard 中看到 WireGuard 連接的狀態(tài)。
配置 WireGuard 接口
若使用 N 臺(tái)路由器互相連接,則需要在每臺(tái)路由器上設(shè)置 N-1 個(gè)對(duì)端,這樣可以確保任意兩臺(tái)路由器之間能互相連接。此處假設(shè)使用兩臺(tái)路由器來(lái)配置互相連接,每臺(tái)路由器上均需要設(shè)置一個(gè)對(duì)端。
路由器
A 的網(wǎng)段為 192.168.1.0/24,路由器 B 的網(wǎng)段為 192.168.2.0/24,我們選擇為 WireGuard 網(wǎng)絡(luò)設(shè)置網(wǎng)段
172.16.0.0/16,路由器 A 在 WireGuard 網(wǎng)絡(luò)中的地址為 172.16.1.1,路由器 B 在 WireGuard
網(wǎng)絡(luò)中的地址為 172.16.2.1。
路由器 A
進(jìn)入 網(wǎng)絡(luò) – 接口 頁(yè)面中,添加新的接口,接口名稱(chēng)填入 wg,協(xié)議需要選擇 WireGuard VPN。
在 常規(guī)設(shè)置 中,點(diǎn)擊生成密鑰按鈕,私鑰欄中會(huì)自動(dòng)生成內(nèi)容,監(jiān)聽(tīng)端口填寫(xiě) 12000,IP 地址填入 172.16.1.1/16,注意此處最好是帶上網(wǎng)段。
在 高級(jí)設(shè)置 中,MTU 填入 1280,此處如果填大了會(huì)讓兩端連接速度變慢。
在 防火墻設(shè)置 中,新建一個(gè) vpn 區(qū)域。
保存并應(yīng)用,創(chuàng)建端口。
在 狀態(tài) – WireGuard 中可以看到路由器 A 的公鑰,復(fù)制下來(lái),等下要填入路由器 B 的對(duì)端設(shè)置中。
回到 網(wǎng)絡(luò) – 接口 中,編輯 wg 接口,在 對(duì)端 中,添加一個(gè)對(duì)端,描述可以寫(xiě) OpenWrt2,公鑰中填入路由器 B 的公鑰(參考本文后面路由器 B 的設(shè)置獲得公鑰),允許的 IP 中填入 172.16.2.1/32 和 192.168.2.0/24,勾選路由允許的 IP,端點(diǎn)主機(jī)填入對(duì)端路由器的公網(wǎng)地址,端點(diǎn)端口填入對(duì)端路由器的端口 12000,持續(xù) Keep-Alive 中可以填入自己喜歡的大小,如 15,保存并應(yīng)用所有設(shè)置。
進(jìn)入 網(wǎng)絡(luò) – 防火墻 – 常規(guī)設(shè)置 – 區(qū)域 中,編輯 lan 區(qū)域,將允許轉(zhuǎn)發(fā)到目標(biāo)區(qū)域勾選上 vpn 區(qū)域,將允許來(lái)自源區(qū)域的轉(zhuǎn)發(fā)也勾選上 vpn 區(qū)域,保存;將 vpn 區(qū)域的轉(zhuǎn)發(fā)改為接受,保存并應(yīng)用設(shè)置。
在 網(wǎng)絡(luò) – 防火墻 – 通信規(guī)則 頁(yè)面中,新增一項(xiàng)規(guī)則。
在 常規(guī)設(shè)置 中,名稱(chēng)填寫(xiě) Allow-WireGuard,協(xié)議保持默認(rèn) TCP+UDP 即可,源區(qū)域選擇 wan,目標(biāo)區(qū)域選擇 設(shè)備(輸入),目標(biāo)端口調(diào)入 WireGuard 監(jiān)聽(tīng)端口 12000,操作選擇接受,保存防火墻設(shè)置。
回到 網(wǎng)絡(luò) – 接口 頁(yè)面中,重啟 wg 接口。
路由器 B
進(jìn)入 網(wǎng)絡(luò) – 接口 頁(yè)面中,添加新的接口,接口名稱(chēng)填入 wg,協(xié)議需要選擇 WireGuard VPN。
在 常規(guī)設(shè)置 中,點(diǎn)擊生成密鑰按鈕,私鑰欄中會(huì)自動(dòng)生成內(nèi)容,監(jiān)聽(tīng)端口填寫(xiě) 12000,IP 地址填入 172.16.2.1/16,注意此處最好是帶上網(wǎng)段。
在 高級(jí)設(shè)置 中,MTU 填入 1280,此處如果填大了會(huì)讓兩端連接速度變慢。
在 防火墻設(shè)置 中,新建一個(gè) vpn 區(qū)域。
保存并應(yīng)用,創(chuàng)建端口。
在 狀態(tài) – WireGuard 中可以看到路由器 B 的公鑰,復(fù)制下來(lái),等下要填入路由器 A 的對(duì)端設(shè)置中。
回到 網(wǎng)絡(luò) – 接口 中,編輯 wg 接口,在 對(duì)端 中,添加一個(gè)對(duì)端,描述可以寫(xiě) OpenWrt1,公鑰中填入路由器 A 的公鑰(參考本文前面路由器 A 的設(shè)置獲得公鑰),允許的 IP 中填入 172.16.1.1/32 和 192.168.1.0/24,勾選路由允許的 IP,端點(diǎn)主機(jī)填入對(duì)端路由器的公網(wǎng)地址,端點(diǎn)端口填入對(duì)端路由器的端口 12000,持續(xù) Keep-Alive 中可以填入自己喜歡的大小,如 15,保存并應(yīng)用所有設(shè)置。
進(jìn)入 網(wǎng)絡(luò) – 防火墻 – 常規(guī)設(shè)置 – 區(qū)域 中,編輯 lan 區(qū)域,將允許轉(zhuǎn)發(fā)到目標(biāo)區(qū)域勾選上 vpn 區(qū)域,將允許來(lái)自源區(qū)域的轉(zhuǎn)發(fā)也勾選上 vpn 區(qū)域,保存;將 vpn 區(qū)域的轉(zhuǎn)發(fā)改為接受,保存并應(yīng)用設(shè)置。
在 網(wǎng)絡(luò) – 防火墻 – 通信規(guī)則 頁(yè)面中,新增一項(xiàng)規(guī)則。
在 常規(guī)設(shè)置 中,名稱(chēng)填寫(xiě) Allow-WireGuard,協(xié)議保持默認(rèn) TCP+UDP 即可,源區(qū)域選擇 wan,目標(biāo)區(qū)域選擇 設(shè)備(輸入),目標(biāo)端口調(diào)入 WireGuard 監(jiān)聽(tīng)端口 12000,操作選擇接受,保存防火墻設(shè)置。
回到 網(wǎng)絡(luò) – 接口 頁(yè)面中,重啟 wg 接口。
完成
此時(shí),稍等片刻,在兩臺(tái)路由器的 狀態(tài) – WireGuard 中即可看到另外一臺(tái)路由器的連接信息。
此時(shí)兩端路由器下的設(shè)備就都可以訪問(wèn)另一端路由器下的設(shè)備了,就像是在同一個(gè)局域網(wǎng)中。
如果需要更省心的操作,可以選擇參考以下內(nèi)容。
配合 DDNS 使用
當(dāng)其中一個(gè)路由器重新連接網(wǎng)絡(luò)之后,公網(wǎng)地址可能會(huì)發(fā)生變化,此時(shí)可能會(huì)無(wú)法連接 WireGuard,不過(guò)我們可以配合 DDNS 使用。
兩臺(tái)路由器均配置好 DDNS 之后,可以在 WireGuard 的對(duì)端配置中將端點(diǎn)主機(jī)的地址由 IP 地址更換為域名。
DDNS 配置好之后,這樣即使路由器更換了 IP 地址也可以重新連接上。
配合 IPv6 使用
WireGuard 可完美兼容 IPv6 使用,只需要 DDNS 的域名只有 IPv6 地址記錄即可,在這種情況下,WireGuard 就使用 IPv6 與其他路由器連接。只需將上文圖中 172.27.0.0/16 的地址替換為 DDNS 域名即可。
IPv6 DDNS 的配置可以參考另一篇文章:OpenWrt IPv6 DDNS
配合 WatchCat 使用
當(dāng)出現(xiàn)問(wèn)題無(wú)法連通對(duì)端路由器的時(shí)候,如果有自動(dòng)化的操作可以直接重啟接口,就很方便了,省去手動(dòng)重啟操作。
opkg update
opkg install watchcat luci-app-watchcat luci-i18n-watchcat-zh-cn
在
服務(wù) – WatchCat 頁(yè)面中,增加一項(xiàng)配置,模式選擇“重啟接口”(有些固件可能會(huì)翻譯為“重啟實(shí)例”),周期可以設(shè)置為 1m,在路由器 A
上安裝的 WatchCat 就填寫(xiě)路由器 B 的地址 192.168.2.1,在路由器 B 上安裝的 WatchCat 就填寫(xiě)路由器 A
的地址 192.168.1.1,檢查間隔填寫(xiě) 10s,接口的話就選擇 wg,其余保持不動(dòng),保存應(yīng)用所有設(shè)置。
這樣,在路由器發(fā)現(xiàn)無(wú)法 ping 通對(duì)端路由器 1 分鐘之后將會(huì)自動(dòng)重啟 wg 接口,保證兩臺(tái)路由器之間持續(xù)連接。
24小時(shí)免費(fèi)咨詢(xún)
請(qǐng)輸入您的聯(lián)系電話,座機(jī)請(qǐng)加區(qū)號(hào)