Wireguard簡易教程--以內(nèi)網(wǎng)穿透為例
wireguard官網(wǎng):?
https://www.wireguard.com/
參考教程:?
①https://icloudnative.io/posts/wireguard-docs-practice/
②https://gitee.com/spoto/wireguard
1.安裝(以ubuntu為例):
# 其他系統(tǒng)參考官網(wǎng) https://www.wireguard.com/install/
# root權(quán)限
sudo -i
# 安裝wireguard軟件
apt install wireguard resolvconf -y
# 開啟IP轉(zhuǎn)發(fā)
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
2.進(jìn)入配置路徑,并調(diào)整權(quán)限(建議)
cd /etc/wireguard/
umask 077
3.生成機(jī)器的私鑰和公鑰
wg genkey > private.key
wg pubkey < private.key
4.創(chuàng)建編寫機(jī)器的配置文件
# 配置文件的命名形式必須為 ${WireGuard 接口的名稱}.conf
# WireGuard 接口的名稱為 ^[a-zA-Z0-9_=+.-]{1,15}$
# WireGuard 接口的名稱常用為 wg[0-9]{1,3}
vim wg0.conf
配置文件樣例(內(nèi)網(wǎng)穿透)
機(jī)器A在公網(wǎng),機(jī)器B、C在內(nèi)網(wǎng)
機(jī)器A需要開啟一個(gè)UDP端口用來監(jiān)聽
機(jī)器A配置文件wg0.conf

[Interface]
PrivateKey = # 機(jī)器A的私鑰
Address = 10.0.8.1/28 # 機(jī)器A的虛擬局域網(wǎng)地址
ListenPort = 51000?# 機(jī)器A的UDP監(jiān)聽端口
PostUp? ?= iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # wg0開啟后,啟用端口轉(zhuǎn)發(fā)和nat
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE # wg0關(guān)閉后,關(guān)閉端口轉(zhuǎn)發(fā)和nat
MTU = 1420 #可以不設(shè)置
[Peer]
PublicKey = # 機(jī)器B的公鑰
AllowedIPs = 10.0.8.2 # 機(jī)器B的虛擬局域網(wǎng)地址
[Peer]
PublicKey = # 機(jī)器C的公鑰
AllowedIPs = 10.0.8.3 # 機(jī)器C的虛擬局域網(wǎng)地址

機(jī)器B配置文件wg0.conf

[Interface]
PrivateKey = # 機(jī)器B的私鑰
Address = 10.0.8.2/28 # 機(jī)器B的虛擬局域網(wǎng)地址
MTU = 1420 # 可以不設(shè)置
[Peer]
PublicKey = # 機(jī)器A的公鑰
AllowedIPs = 10.0.8.0/28 # 虛擬局域網(wǎng)地址的地址段
Endpoint = ip:port # 機(jī)器A的ip及wireguard中配置的監(jiān)聽端口
PersistentKeepalive = 60 # 每隔 60s / 1minute保持連接 該選項(xiàng)只需要對被訪問的機(jī)器配置,如果要雙向訪問建議都配置

機(jī)器C配置文件wg0.conf
[Interface]
PrivateKey = # 機(jī)器C的私鑰
Address = 10.0.8.3/28 # 機(jī)器C的虛擬局域網(wǎng)地址
MTU = 1420 # 可以不設(shè)置
[Peer]
PublicKey = # 機(jī)器A的公鑰
AllowedIPs = 10.0.8.0/28 # 虛擬局域網(wǎng)地址的地址段
Endpoint = ip:port # 機(jī)器A的ip及wireguard中配置的監(jiān)聽端口
PersistentKeepalive = 60 # 每隔 60s / 1min 保持連接

5.設(shè)置服務(wù)開機(jī)自啟動(dòng)
# wg0為相應(yīng)配置文件的前綴
systemctl enable wg-quick@wg0
6.啟動(dòng)和關(guān)閉wireguard配置的網(wǎng)口
# 啟動(dòng), wg0為相應(yīng)配置文件的前綴
wg-quick up wg0
# 關(guān)閉
wg-quick down wg0
# 如果開始只安裝了wireguard,該步驟可能出現(xiàn)無法解析問題,需要安裝 resolvconf 解決