繼續折騰迅雷賺錢寶 PRO (二代) -- WireGuard的安裝與使用
前言: |
上一次折騰迅雷賺錢寶 PRO (二代) -- armbian 軟件安裝,可以使迅雷賺錢寶 PRO實現豐富功能。再接再厲,今次在迅雷賺錢寶 PRO折騰WireGuard的安裝與使用。
為什麼是
WireGuard
? 因為WireGuard
免費是快速的VPN連接,利用先進的加密技術,通過UDP傳遞流量,性能優於OpenVPN
的一款開源軟件。
目錄內容 |
WireGuard的工作原理 |
在每個對等設備上創建一個充當隧道的網路介面(通常是wg0
),將公鑰與隧道內允許的IP地址關聯在一起。每個網路介面都有一個私鑰和對等方的一個公鑰相匹配。用於對等方相互身份驗證。這很類似於將其
SSH
公鑰存放於其他裝置以訪問SHELL伺服器的形式。
WireGuard的安裝 |
由於這迅雷賺錢寶 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 bash
啟用IP轉發 |
使用以下指令開啟IP轉發功能及立即啟用
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
iptables的安裝與修正 |
使用以下指令安裝iptables
apt install iptables -y
如圖示,會出現TABLE_ADD failed
的錯誤,我估算是迅雷賺錢寶 PRO的armbian
的內核版本是3.10.36
,而預設是使用iptables-nft
作為iptables指令才會出現這樣的錯誤。只要轉用iptabels-legacy
就沒有錯誤提示了!
使用以下指令修正iptables
update-alternatives --set iptables /usr/sbin/iptables-legacy
update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
WireGuard的配置 |
伺服器的配置
進入到wireguard目錄
cd /etc/wireguard/
修改目錄的預設權限(只有root可以讀寫)
umask 077
建立私鑰和公鑰
wg genkey | tee privatekey | wg pubkey > publickey
privatekey
#伺服器私鑰
publickey
#伺服器公鑰
分別查看私鑰和公鑰并記錄一下
cat privatekey
cat publickey
查看實體的網絡界面名稱
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
EOF
ListenPort = 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
#建立流量偽裝 及替換實體網絡界面名稱eth0
PostDown
= # 網路界面(wg0)關閉時,會聯動刪除iptables的nat表
移至客戶端的配置才回來添加客戶端料資
增添客戶端資料
在完成客戶端文件的創建後就可以在伺服器的配置文件內添加客戶端的公鑰及IP地址。
編輯伺服器的配置文件
vim /etc/wireguard/wg0.conf
新增以下內容
[Peer]
PublicKey = v6r1/YBRi+wmpG+C5Z8hn0zqKrvmjRYSJXH51iQg3Ww=
AllowedIPs = 10.255.255.2/32
[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 wg0
systemctl start wg-quick@wg0
查看WireGuard
的連線狀態
wg
開啟伺服器開機時自動啟動WireGuard
服務
systemctl enable wg-quick@wg0
所有配置完成後可移至連線測試
客戶端的配置
在這次的實驗中,因為是使用電話連線,所以客戶端的配置文件建立可以在伺服器端完成。(包括建立客戶端的私鑰和公鑰及實現QRCODE掃瞄添加設定)
建立客戶端的存放文件目錄
mkdir -p /etc/wireguard/clients
進入到目錄
cd /etc/wireguard/clients/
建立客戶端私鑰和公鑰
wg genkey | tee client1_privateKey | wg pubkey > client1_publicKey
client1_privateKey
#為客戶端私鑰
client1_privateKey
#為客戶端公鑰
分別查看客戶端私鑰和公鑰并記錄一下
cat client1_privateKey
cat client1_publicKey
編寫客戶端配置文件
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
EOF
PrivateKey = 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是聆聽的端口
安裝qrencode
qrencode
(全名:QR Encode)用於將文本生成二維碼,并可保存為 PNG等圖片格式。
使用以下指令安裝
apt install qrencode
將客戶端配置文件生成二維碼
qrencode -t ansiutf8 < /etc/wireguard/clients/client1.conf
手機掃瞄二維碼就可以添加WireGuard
隧道
連線測試 |
速度限制於迅雷賺錢寶 PRO機能
可查看到伺服器端armv7l
S805
的CPU全程已滿載
WireGuard
內存占用非常低,只有4.3M
結語: |
在armbian
(Debian
)系統上全程手動安裝和配置WireGuard
伺服器和用戶端,也(折騰)完成了! 其實這是最基礎的教程,進階些是可以重定向指定流量到不同Peer
及NAT-ot-NAT
等等。這是針對(其中至少一部裝置)有外網IP地址,才可以實現的功能。如果只有大內網可使用第三方TailScale及ZeroTier軟件及分享的內容。
參考資料: |
相關連結: |