使用開源工具創(chuàng)建私有的虛擬專用網(wǎng)絡(luò)
使用 OpenWRT 和 wireguard 在路由器上創(chuàng)建自己的虛擬專用網(wǎng)絡(luò)。
通過計算機網(wǎng)絡(luò)從一個地方到另一個地方可能是一件棘手的事情。除了知道正確的地址和打開正確的端口之外,還有安全問題。 對于 Linux,SSH 是一種流行的默認(rèn)方式,雖然你可以使用 SSH 做很多事情,但它仍然“只是”一個安全外殼(實際上,這就是 SSH 的含義)。用于加密流量的更廣泛的協(xié)議是“虛擬專用網(wǎng)絡(luò)”,它創(chuàng)建了一個獨特的兩點之間的虛擬的專用網(wǎng)絡(luò)。有了它,你可以登錄到另一個網(wǎng)絡(luò)上的計算機并使用它的所有服務(wù)(文件共享、打印機等等),就像你坐在同一個房間里一樣,并且全部的數(shù)據(jù)都是從點到點加密的。
通常,為了使虛擬專用網(wǎng)絡(luò)連接成為可能,進入每個網(wǎng)絡(luò)的網(wǎng)關(guān)必須接受虛擬專用網(wǎng)絡(luò)流量,并且必須偵聽目標(biāo)網(wǎng)絡(luò)上的某些計算機的虛擬專用網(wǎng)絡(luò)流量。然而,你可以運行自己的帶有虛擬專用網(wǎng)絡(luò)服務(wù)器的路由器固件,使你能夠連接到目標(biāo)網(wǎng)絡(luò),而無需擔(dān)心轉(zhuǎn)發(fā)端口或考慮內(nèi)部拓?fù)?。我最喜歡的固件是 OpenWrt,在本文中我將演示如何設(shè)置它,以及如何啟用虛擬專用網(wǎng)絡(luò)。
什么是 OpenWrt?
OpenWrt 是一個使用 Linux 面向嵌入式設(shè)備的開源項目。它已經(jīng)存在超過 15 年,擁有龐大而活躍的社區(qū)。
使用 OpenWrt 的方法有很多種,但它的主要用途是在路由器中。它提供了一個具有包管理功能的完全可寫的文件系統(tǒng),并且由于它是開源的,你可以查看和修改代碼并為生態(tài)系統(tǒng)做出貢獻。如果你想對路由器進行更多控制,這就是你想要使用的系統(tǒng)。
OpenWrt 支持很多路由器,包括 思科、華碩、MikroTik、Teltonika Networks、D-Link、TP-link、Buffalo、Ubiquiti 等知名品牌和 許多其他品牌。
wireguard-%E6%98%AF%E4%BB%80%E4%B9%88" class="mume-header">wireguard 是什么?
wireguard.com/" class="ext" rel="external nofollow" target="_blank">wireguard 是開源的虛擬專用網(wǎng)絡(luò)軟件,它比 OpenVPN 等其他選項更快、更簡單且更安全。它使用最先進的密碼學(xué):用于對稱加密的 ChaCha20;用于密鑰協(xié)商的 Curve 25519(使用橢圓曲線),和用于散列的 BLAKE2。這些算法的設(shè)計方式在嵌入式系統(tǒng)上是高效的。wireguard 也可用于各種操作系統(tǒng) wireguard.com/install/" class="ext" rel="external nofollow" target="_blank">平臺。
先決條件
對于這個項目,你需要:
- Teltonika RUT955 或支持 OpenWrt 的其他路由器
- 一個公網(wǎng) IP 地址,用于從外部網(wǎng)絡(luò)連接到虛擬專用網(wǎng)絡(luò)
- 一部安卓手機
安裝 OpenWrt
首先,下載路由器的 OpenWrt 鏡像。使用 固件選擇器 檢查 OpenWrt 是否支持你的路由器并下載固件。輸入你的路由器型號,將顯示選項:
OpenWRT 固件選擇器
使用搜索框右側(cè)的下拉輸入選擇要下載的固件版本。
下載出廠鏡像。
下載出廠鏡像
許多路由器允許你從 Web 界面刷入未經(jīng)授權(quán)的固件,但 Teltonika Networks 不允許。要將 OpenWrt 固件刷入這樣的路由器,你需要使用引導(dǎo)加載器。為此,請按照下列步驟操作:
- 拔掉路由器的電源線。
- 按住重置按鈕。
- 插入路由器的電源線。
- 插入電源線后,繼續(xù)按住重置按鈕 5 到 8 秒。
- 將計算機的 IP 地址設(shè)置為
192.168.1.15
,將網(wǎng)絡(luò)掩碼設(shè)置為255.255.255.0
。 - 使用以太網(wǎng)電纜通過 LAN 端口連接路由器和計算機。
- 打開網(wǎng)頁瀏覽器并輸入
192.168.1.1:/index.html
。 - 上傳并刷寫固件。
刷機過程可能占用三分鐘。之后,你應(yīng)該可以通過在瀏覽器中輸入 192.168.1.1
來訪問路由器的 Web 界面。 默認(rèn)情況下沒有設(shè)置密碼
OpenWrt 授權(quán)
配置網(wǎng)絡(luò)連接
網(wǎng)絡(luò)連接是必要條件。如果你的 Internet 服務(wù)提供商(ISP) 使用 DHCP 自動分配你的 IP 地址,你只需將以太網(wǎng)電纜插入路由器的 WAN 端口。
如果你需要手動分配 IP 地址,導(dǎo)航至 “Network → Interfaces”。選擇 “Edit” 編輯你的 WAN 接口。從 “Protocol” 字段中,選擇 “Static address”,然后選擇 “Switch protocol”。
手動分配 IP 地址
在 “IPv4 address” 字段中,輸入你的路由器地址。設(shè)置 “IPv4 netmask” 以匹配你的網(wǎng)絡(luò)子網(wǎng);輸入你將用于連接到網(wǎng)絡(luò)的 “IPv4 gateway” 地址; 并在 “Use custom DNS servers” 字段中輸入 DNS 服務(wù)器的地址。保存配置。
就是這樣!你已成功配置 WAN 接口以獲得網(wǎng)絡(luò)連接。
安裝必要的包
默認(rèn)情況下,該固件不包含很多包,但 OpenWrt 有一個包管理器和可選安裝的軟件包。導(dǎo)航到 “System → Software” 并通過選擇 “Update list...” 更新你的包管理器。
OpenWrt 包管理器
在“Filter”輸入中,鍵入 “wireguard”,等待系統(tǒng)找到所有包含該關(guān)鍵字的包。找到并安裝名為 “luci-app-wireguard” 的包。
luci-app-wireguard 包
該軟件包包括一個用于配置 wireguard 的 Web 界面,并安裝 wireguard 所必需的所有依賴項。
如果你在安裝 wireguard 軟件包之前收到一個軟件包丟失的警告并且在存儲庫中找不到,請忽略它并繼續(xù)。
接下來,找到并安裝名為 “luci-app-ttyd” 的包。這將用于稍后訪問終端。
安裝這些軟件包后,重新啟動路由器以使更改生效。
wireguard-%E6%8E%A5%E5%8F%A3" class="mume-header">配置 wireguard 接口
接下來,創(chuàng)建 wireguard 接口。導(dǎo)航到 “Network → Interfaces” 并選擇左下角的 “Add new interface...”。在彈出窗口中,輸入你想要的接口名稱,從下拉列表中選擇 “wireguardVPN”,然后選擇右下角的 “Create interface”。
創(chuàng)建 wireguard 接口
在新彈出的窗口中,選擇 “Generate Key” 為 wireguard 接口生成私鑰。在 “Listen Port” 字段中,輸入所需的端口。我將使用默認(rèn)的 wireguard 端口,“51820”。在 “IP Addresses” 字段中,分配將用于 wireguard 接口的 IP 地址。在這個例子中,我使用了 10.0.0.1/24
。數(shù)字 “24” 表明我的子網(wǎng)的大小。
創(chuàng)建 wireguard 接口
保存配置并重啟接口。
導(dǎo)航到 “Services → Terminal”,登錄到 shell,然后輸入命令 wg show
。你將看到有關(guān) Wiregaurd 接口的一些信息,包括其公鑰。復(fù)制公鑰——稍后你將需要它來創(chuàng)建對等點。
wireguard 公鑰
配置防火墻
導(dǎo)航到 “Network → Firewall” 并選擇 “Traffic Rules” 選項卡。在頁面底部,選擇 “Add”。在彈出窗口的 “Name” 字段中,為你的規(guī)則命名,例如 “Allow-wg”。接下來,將 “Destination zone” 從 “Lan” 更改為 “Device”,并將 “Destination port” 設(shè)置為 “51820”。
wireguard 防火墻設(shè)置
保存配置。
wireguard" class="mume-header">手機上配置 wireguard
從 Google Play 在你的手機上安裝 wireguard.android&hl=lt&gl=US" class="ext" rel="external nofollow" target="_blank">wireguard 應(yīng)用程序。安裝后,打開應(yīng)用程序并從頭開始創(chuàng)建一個新接口。在 “Name” 字段中,輸入要用于接口的名稱。在 “Private key” 字段中,按右側(cè)的雙向箭頭圖標(biāo)生成密鑰對。你將需要上面的公鑰來在你的手機和路由器之間創(chuàng)建一個對等點。在 “Addresses” 字段中,分配你將用于通過虛擬專用網(wǎng)絡(luò)訪問電話的 IP 地址。我將使用 10.0.0.2/24
。在 “Listen port” 中,輸入端口;我將再次使用默認(rèn)端口。
在 Android 上設(shè)置虛擬專用網(wǎng)絡(luò)接口
保存配置。
要向配置中添加對等點,請選擇 “Add peer”。在 “Public key” 字段中,輸入路由器的 wireguard 公鑰。在 “Endpoint” 字段中,輸入路由器的公共 IP 地址和端口,以冒號分隔,例如 12.34.56.78:51820
。在 “Allowed IP” 字段中,輸入要通過 wireguard 接口訪問的 IP 地址。 (你可以輸入路由器的虛擬專用網(wǎng)絡(luò)接口 IP 地址和 LAN 接口地址。)IP 地址必須用逗號分隔。你還可以定義子網(wǎng)的大小。
在 Android 上添加虛擬專用網(wǎng)絡(luò)對等點
保存配置。
配置中還剩下最后一步:在路由器上添加一個對等點。
在路由器上添加一個對等點
導(dǎo)航到 “Network → Interfaces” 并選擇你的 wireguard 接口。轉(zhuǎn)到 “Peers” 選項卡并選擇 “Add peer”。在 “Description” 字段中,輸入對等方的名稱。在 “Public Key” 字段中輸入手機的 wireguard 接口公鑰,在 “Allowed IPs” 字段中輸入手機的 wireguard 接口 IP 地址。選中 “Route Allowed IPs” 復(fù)選框。
在路由器上添加一個對等點
保存配置并重啟接口。
測試配置
在手機上打開 Web 瀏覽器。在 URL 欄中,輸入 IP 地址 10.0.0.1
或 192.168.1.1
。你應(yīng)該能夠訪問路由器的網(wǎng)站。
從 Android 登錄 虛擬專用網(wǎng)絡(luò)
你自己的虛擬專用網(wǎng)絡(luò)
這些天有很多虛擬專用網(wǎng)絡(luò)服務(wù)商在做廣告,但是擁有和控制自己的基礎(chǔ)設(shè)施還有很多話要說,尤其是當(dāng)該基礎(chǔ)設(shè)施僅用于提高安全性時。無需依賴其他人為你提供安全的數(shù)據(jù)連接。使用 OpenWrt 和 wireguard,你可以擁有自己的開源虛擬專用網(wǎng)絡(luò)解決方案。