繼續折騰迅雷賺錢寶 PRO (二代) -- Wire­Guard的安裝與使用_DSC6229.jpg前言: 上一次折騰迅雷賺錢寶 PRO (二代) -- armbian 軟件安裝，可以使迅雷賺錢寶 PRO實現豐富功能。再接再厲，今次在迅雷賺錢寶 PRO折騰WireGuard的安裝與使用。為什麼是Wire­Guard? 因為Wire­Guard免費是快速的VPN連接，利用先進的加密技術，通過UDP傳遞流量，性能優於OpenVPN的一款開源軟件。目錄內容 WireGuard的工作原理WireGuard的安裝啟用IP轉發iptables的安裝與修正WireGuard的配置伺服器的配置客戶端的配置連線測試WireGuard的工作原理 在每個對等設備上創建一個充當隧道的網路介面(通常是wg0)，將公鑰與隧道內允許的IP地址關聯在一起。每個網路介面都有一個私鑰和對等方的一個公鑰相匹配。用於對等方相互身份驗證。這很類似於將其SSH公鑰存放於其他裝置以訪問SHELL伺服器的形式。Cover.pngWireGuard的安裝 由於這迅雷賺錢寶 PRO的armbian的內核版本是3.10.36，所以只能安裝wireguard-go安裝Debian Backports源Backports源是將新版本的軟件某些功能移植到舊版本上來,使這些包不依賴於新版本的庫就可以在 debian 的 stable 發行版上面運行。apt install sudo lsb-release -y echo "deb http://deb.debian.org/debian $(lsb_release -sc)-backports main" | sudo tee /etc/apt/sources.list.d/backports.list sudo apt update更新Wireguard-tools用於配置WireGuard的工具，如: wg、wg-quick。移除舊版本apt remove wireguard-tools更新指定的版本apt install wireguard-tools=1.0.20210223-1~bpo10+1安裝wireguard-go一把梭腳本是P3TERX大佬編譯的最新穩定版 wireguard-go 二進制文件：curl -fsSL git.io/wireguard-go.sh | sudo bashinstallation_-03-18_103924.png啟用IP轉發 使用以下指令開啟IP轉發功能及立即啟用echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf sysctl -pip_forward_03-18_101436.pngiptables的安裝與修正 使用以下指令安裝iptablesapt install iptables -yiptables_2022-03-18_094425.png如圖示，會出現TABLE_ADD failed的錯誤，我估算是迅雷賺錢寶 PRO的armbian的內核版本是3.10.36，而預設是使用iptables-nft作為iptables指令才會出現這樣的錯誤。只要轉用iptabels-legacy就沒有錯誤提示了!使用以下指令修正iptablesupdate-alternatives --set iptables /usr/sbin/iptables-legacy update-alternatives --set ip6tables /usr/sbin/ip6tables-legacyiptables_2022-03-18_094817.pngWireGuard的配置 伺服器的配置進入到wireguard目錄cd /etc/wireguard/修改目錄的預設權限(只有root可以讀寫)umask 077建立私鑰和公鑰wg genkey | tee privatekey | wg pubkey > publickeyprivatekey #伺服器私鑰publickey #伺服器公鑰分別查看私鑰和公鑰并記錄一下cat privatekey cat publickeyserver_-03-18_100238.png查看實體的網絡界面名稱ip -c route show default | awk '{print $5}'輸出結果是eth0，代表實體網絡界面名稱。建立伺服器配置文件cat > wg0.conf <<EOF [Interface] ListenPort = 51820 Address = 10.255.255.1/24 PrivateKey = GNsHS8K6jLPHu/kfenB17jfcYCFtmCj+1gAyMYPcTkY= PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE EOFListenPort = 51820 # wireguard聆聽的端口，可自定義Address = 10.255.255.1/24 # 指定網路界面(wg0)的IP地址為10.255.255.1，其/24為(CIDR )網段格式，子網掩碼為255.255.255.0PrivateKey = GNsHS8K6jLPHu/kfenB17jfcYCFtmCj+1gAyMYPcTkY= # 貼上剛才產生伺服器私鑰PostUp = # 網路界面(wg0)啟動時，會聯動創建iptables的nat表iptables -A FORWARD -i %i -j ACCEPT #允許網路界面(wg0)轉發(進入) iptables -A FORWARD -o %i -j ACCEPT #允許網路界面(wg0)轉發(出去)iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #建立流量偽裝 及替換實體網絡界面名稱 eth0PostDown = # 網路界面(wg0)關閉時，會聯動刪除iptables的nat表server_-03-18_100338.png[[移至客戶端的配置]]才回來添加客戶端料資增添客戶端資料在完成客戶端文件的創建後就可以在伺服器的配置文件內添加客戶端的公鑰及IP地址。編輯伺服器的配置文件vim /etc/wireguard/wg0.conf新增以下內容[Peer] PublicKey = v6r1/YBRi+wmpG+C5Z8hn0zqKrvmjRYSJXH51iQg3Ww= AllowedIPs = 10.255.255.2/32server-03-19_115938.png[Peer] # 代表添加對等的裝置，即客戶端PublicKey = v6r1/YBRi+wmpG+C5Z8hn0zqKrvmjRYSJXH51iQg3Ww= # 這裡貼上客戶端的公鑰，用於與客戶端裝置的身份相互驗證AllowedIPs = 10.255.255.2/32 = # 指定客戶端裝置的IP地址為10.255.255.2，其/32為(CIDR )網段格式的子網用於限制IP地址變動而影響其他裝置IP地址重疊啟動WireGuard隧道(2選1)wg-quick up wg0systemctl start wg-quick@wg0server_-03-17_155350.png查看WireGuard的連線狀態wgserver_-03-18_104235.png開啟伺服器開機時自動啟動WireGuard服務systemctl enable wg-quick@wg0所有配置完成後可移至[[連線測試]]客戶端的配置在這次的實驗中，因為是使用電話連線，所以客戶端的配置文件建立可以在伺服器端完成。(包括建立客戶端的私鑰和公鑰及實現QRCODE掃瞄添加設定)建立客戶端的存放文件目錄mkdir -p /etc/wireguard/clients進入到目錄cd /etc/wireguard/clients/建立客戶端私鑰和公鑰wg genkey | tee client1_privateKey | wg pubkey > client1_publicKeyclient1_privateKey #為客戶端私鑰client1_privateKey #為客戶端公鑰分別查看客戶端私鑰和公鑰并記錄一下cat client1_privateKey cat client1_publicKeyclient_-03-18_100937.png編寫客戶端配置文件cat > client1.conf <<EOF [Interface] PrivateKey = uEvQ3yvT5OWBqTeSjyVSYK+Eas0eDu3mMQltVcgMq24= Address = 10.255.255.2/24 [Peer] PublicKey = M5vKle2ioE/mMfWloB0Diha/+oCiH6VnrYss3AHRt28= AllowedIPs = 0.0.0.0/0 Endpoint = Wireguard_Server_IP:51820 PersistentKeepalive = 20 EOFPrivateKey = GNsHS8K6jLPHu/kfenB17jfcYCFtmCj+1gAyMYPcTkY= # 貼上剛才產生客戶端私鑰Address = 10.255.255.2/24 # 指定網路界面(client1)的IP地址為10.255.255.2，其/24為網段格式的子網掩碼(CIDR格式 )PublicKey = M5vKle2ioE/mMfWloB0Diha/+oCiH6VnrYss3AHRt28= # 這裡貼上伺服器的公鑰，用於與伺服器的身份相互驗證Endpoint = 221.122.256.256:51820 = # 221.122.256.256是伺服器端的公網IP地址，:51820是聆聽的端口安裝qrencodeqrencode（全名：QR Encode）用於將文本生成二維碼，并可保存為 PNG等圖片格式。使用以下指令安裝apt install qrencodeqrencode_03-17_160530.png將客戶端配置文件生成二維碼qrencode -t ansiutf8 < /etc/wireguard/clients/client1.confQR_2022-03-19_140125.png手機掃瞄二維碼就可以添加WireGuard隧道返回[[編輯伺服器的配置文件-增添客戶端資料]]連線測試 SpeedTest_20220318105454.jpg速度限制於迅雷賺錢寶 PRO機能server_-03-18_105009.png可查看到伺服器端armv7l S805的CPU全程已滿載server_-03-17_160239.pngWireGuard 內存占用非常低，只有4.3M結語: 在armbian(Debian)系統上全程手動安裝和配置WireGuard 伺服器和用戶端，也(折騰)完成了! 其實這是最基礎的教程，進階些是可以重定向指定流量到不同Peer及NAT-ot-NAT等等。這是針對(其中至少一部裝置)有外網IP地址，才可以實現的功能。如果只有大內網可使用第三方TailScale及ZeroTier軟件及分享的內容。參考資料: How to Set Up WireGuard VPN on Ubuntu Debian Linux VPS 服務器 WireGuard 安裝教程相關連結: 折騰迅雷賺錢寶 PRO (二代) -- armbian 軟件安裝2021 年了，大家還記得迅雷賺錢寶嗎？記一次 OpenWrt 軟件安裝