新聞中心
虛擬私有網(wǎng)絡(luò)Virtual Private Networks應(yīng)用廣泛。如今有各種方案可供使用,用戶(hù)可通過(guò)這些方案訪(fǎng)問(wèn)任意類(lèi)型的資源,同時(shí)保持其機(jī)密性與隱私性。

成都創(chuàng)新互聯(lián)公司是一家專(zhuān)注于成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)與策劃設(shè)計(jì),鄢陵網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:鄢陵等地區(qū)。鄢陵做網(wǎng)站價(jià)格咨詢(xún):18980820575
最近,WireGuard 因?yàn)槠浜?jiǎn)單性、速度與安全性成為最廣泛使用的虛擬私有網(wǎng)絡(luò)協(xié)議之一。WireGuard 最早應(yīng)用于 Linux 內(nèi)核,但目前可以用在其他平臺(tái),例如 iOS、Android 等。
WireGuard 使用 UDP 作為其傳輸協(xié)議,并在 Critokey Routing(CKR)的基礎(chǔ)上建立對(duì)等節(jié)點(diǎn)之間的通信。每個(gè)對(duì)等節(jié)點(diǎn)(無(wú)論是服務(wù)器或客戶(hù)端)都有一對(duì)密鑰key(公鑰與私鑰),公鑰與許可 IP 間建立通信連接。有關(guān) WireGuard 更多信息請(qǐng)?jiān)L問(wèn)其 主頁(yè)。
本文描述了如何在兩個(gè)對(duì)等節(jié)點(diǎn)(PeerA 與 PeerB)間設(shè)置 WireGuard。兩個(gè)節(jié)點(diǎn)均運(yùn)行 Fedora Linux 系統(tǒng),使用 NetworkManager 進(jìn)行持久性配置。
WireGuard 設(shè)置與網(wǎng)絡(luò)配置
在 PeerA 與 PeerB 之間建立持久性虛擬私有網(wǎng)絡(luò)連接只需三步:
- 安裝所需軟件包。
- 生成密鑰對(duì)key pair。
- 配置 WireGuard 接口。
安裝
在兩個(gè)對(duì)等節(jié)點(diǎn)(PeerA 與 PeerB)上安裝 wireguard-tools 軟件包:
$ sudo -i
# dnf -y install wireguard-tools
這個(gè)包可以從 Fedora Linux 更新庫(kù)中找到。它在 /etc/wireguard/ 中創(chuàng)建一個(gè)配置目錄。在這里你將創(chuàng)建密鑰和接口配置文件。
生成密鑰對(duì)
現(xiàn)在,使用 wg 工具在每個(gè)節(jié)點(diǎn)上生成公鑰與私鑰:
# cd /etc/wireguard
# wg genkey | tee privatekey | wg pubkey > publickey
在 PeerA 上配置 WireGuard 接口
WireGuard 接口命名規(guī)則為 wg0、wg1 等等。完成下述步驟為 WireGuard 接口創(chuàng)建配置:
- PeerA 節(jié)點(diǎn)上配置想要的 IP 地址與掩碼。
- 該節(jié)點(diǎn)監(jiān)聽(tīng)的 UDP 端口。
- PeerA 的私鑰。
# cat << EOF > /etc/wireguard/wg0.conf
[Interface]
Address = 172.16.1.254/24
SaveConfig = true
ListenPort = 60001
PrivateKey = mAoO2RxlqRvCZZoHhUDiW3+zAazcZoELrYbgl+TpPEc=
[Peer]
PublicKey = IOePXA9igeRqzCSzw4dhpl4+6l/NiQvkDSAnj5LtShw=
AllowedIPs = 172.16.1.2/32
EOF
允許 UDP 流量通過(guò)節(jié)點(diǎn)監(jiān)聽(tīng)的端口:
# firewall-cmd --add-port=60001/udp --permanent --zone=public
# firewall-cmd --reload
success
最后,將接口配置文件導(dǎo)入 NetworkManager。這樣,WireGuard 接口在重啟后將持續(xù)存在。
# nmcli con import type wireguard file /etc/wireguard/wg0.conf
Connection 'wg0' (21d939af-9e55-4df2-bacf-a13a4a488377) successfully added.
驗(yàn)證 wg0的狀態(tài):
# wg
interface: wg0
public key: FEPcisOjLaZsJbYSxb0CI5pvbXwIB3BCjMUPxuaLrH8=
private key: (hidden)
listening port: 60001
peer: IOePXA9igeRqzCSzw4dhpl4+6l/NiQvkDSAnj5LtShw=
allowed ips: 172.16.1.2/32
# nmcli -p device show wg0
===============================================================================
Device details (wg0)
===============================================================================
GENERAL.DEVICE: wg0
-------------------------------------------------------------------------------
GENERAL.TYPE: wireguard
-------------------------------------------------------------------------------
GENERAL.HWADDR: (unknown)
-------------------------------------------------------------------------------
GENERAL.MTU: 1420
-------------------------------------------------------------------------------
GENERAL.STATE: 100 (connected)
-------------------------------------------------------------------------------
GENERAL.CONNECTION: wg0
-------------------------------------------------------------------------------
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveC>
-------------------------------------------------------------------------------
IP4.ADDRESS[1]: 172.16.1.254/24
IP4.GATEWAY: --
IP4.ROUTE[1]: dst = 172.16.1.0/24, nh = 0.0.0.0, mt =>
-------------------------------------------------------------------------------
IP6.GATEWAY: --
-------------------------------------------------------------------------------
上述輸出顯示接口 wg0 已連接?,F(xiàn)在,它可以和虛擬私有網(wǎng)絡(luò) IP 地址為 172.16.1.2 的對(duì)等節(jié)點(diǎn)通信。
在 PeerB 上配置 WireGuard 接口
現(xiàn)在可以在第二個(gè)對(duì)等節(jié)點(diǎn)上創(chuàng)建 wg0 接口的配置文件了。確保你已經(jīng)完成以下步驟:
- PeerB 節(jié)點(diǎn)上設(shè)置 IP 地址與掩碼。
- PeerB 的私鑰。
- PeerA 的公鑰。
- PeerA 的 IP 地址或主機(jī)名、監(jiān)聽(tīng) WireGuard 流量的 UDP 端口。
# cat << EOF > /etc/wireguard/wg0.conf
[Interface]
Address = 172.16.1.2
SaveConfig = true
PrivateKey = UBiF85o7937fBK84c2qLFQwEr6eDhLSJsb5SAq1lF3c=
[Peer]
PublicKey = FEPcisOjLaZsJbYSxb0CI5pvbXwIB3BCjMUPxuaLrH8=
AllowedIPs = 172.16.1.254/32
Endpoint = peera.example.com:60001
EOF
最后一步是將接口配置文件導(dǎo)入 NetworkManager。如上所述,這一步是重啟后保持 WireGuard 接口持續(xù)存在的關(guān)鍵。
# nmcli con import type wireguard file /etc/wireguard/wg0.conf
Connection 'wg0' (39bdaba7-8d91-4334-bc8f-85fa978777d8) successfully added.
驗(yàn)證 wg0 的狀態(tài):
# wg
interface: wg0
public key: IOePXA9igeRqzCSzw4dhpl4+6l/NiQvkDSAnj5LtShw=
private key: (hidden)
listening port: 47749
peer: FEPcisOjLaZsJbYSxb0CI5pvbXwIB3BCjMUPxuaLrH8=
endpoint: 192.168.124.230:60001
allowed ips: 172.16.1.254/32
# nmcli -p device show wg0
===============================================================================
Device details (wg0)
===============================================================================
GENERAL.DEVICE: wg0
-------------------------------------------------------------------------------
GENERAL.TYPE: wireguard
-------------------------------------------------------------------------------
GENERAL.HWADDR: (unknown)
-------------------------------------------------------------------------------
GENERAL.MTU: 1420
-------------------------------------------------------------------------------
GENERAL.STATE: 100 (connected)
-------------------------------------------------------------------------------
GENERAL.CONNECTION: wg0
-------------------------------------------------------------------------------
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveC>
-------------------------------------------------------------------------------
IP4.ADDRESS[1]: 172.16.1.2/32
IP4.GATEWAY: --
-------------------------------------------------------------------------------
IP6.GATEWAY: --
-------------------------------------------------------------------------------
上述輸出顯示接口 wg0 已連接。現(xiàn)在,它可以和虛擬私有網(wǎng)絡(luò) IP 地址為 172.16.1.254 的對(duì)等節(jié)點(diǎn)通信。
驗(yàn)證節(jié)點(diǎn)間通信
完成上述步驟后,兩個(gè)對(duì)等節(jié)點(diǎn)可以通過(guò)虛擬私有網(wǎng)絡(luò)連接相互通信,以下是 ICMP 測(cè)試結(jié)果:
[root@peerb ~]# ping 172.16.1.254 -c 4
PING 172.16.1.254 (172.16.1.254) 56(84) bytes of data.
64 bytes from 172.16.1.254: icmp_seq=1 ttl=64 time=0.566 ms
64 bytes from 172.16.1.254: icmp_seq=2 ttl=64 time=1.33 ms
64 bytes from 172.16.1.254: icmp_seq=3 ttl=64 time=1.67 ms
64 bytes from 172.16.1.254: icmp_seq=4 ttl=64 time=1.47 ms
在這種情況下,如果你在 PeerA 端口 60001 上捕獲 UDP 通信,則將看到依賴(lài) WireGuard 協(xié)議的通信過(guò)程和加密的數(shù)據(jù):
總結(jié)
虛擬私有網(wǎng)絡(luò)很常見(jiàn)。在用于部署虛擬私有網(wǎng)絡(luò)的各種協(xié)議和工具中,WireGuard 是一種簡(jiǎn)單、輕巧和安全的選擇。它可以在對(duì)等節(jié)點(diǎn)之間基于 CryptoKey 路由建立安全的點(diǎn)對(duì)點(diǎn)連接,過(guò)程非常簡(jiǎn)單。此外,NetworkManager 支持 WireGuard 接口,允許重啟后進(jìn)行持久配置。
當(dāng)前文章:用NetworkManager配置WireGuard虛擬私有網(wǎng)絡(luò)
網(wǎng)站網(wǎng)址:http://m.5511xx.com/article/dpgpjij.html


咨詢(xún)
建站咨詢(xún)
