虛擬私人網路(VPN)在現代網路中被廣泛使用。如今,有多種解決方案可供用戶存取各種資源,同時保持其機密性和隱私。在眾多VPN協定中, WireGuard因其簡單性、速度和安全性而受到廣泛使用。 WireGuard最初在Linux核心中實現,現在也可用於其他平台,如iOS和Android等。
WireGuard的基本原理
WireGuard使用UDP作為其傳輸協議,並基於Critokey Routing (CKR)進行點對點通訊。每個節點(無論是伺服器還是客戶端)都有一對金鑰(公鑰和私鑰),公鑰與允許的IP位址之間存在連結。
WireGuard設定步驟
本文將介紹如何在兩個節點(PeerA和PeerB)之間設定WireGuard。兩個節點均運行Fedora Linux,並使用NetworkManager進行持久性配置。
第一步:安裝必要的套件
在PeerA和PeerB上安裝wireguard-tools
套件:
『`bash $ sudo -i
```
此套件在Fedora Linux更新庫中可用。它會在/etc/wireguard/
目錄下建立配置目錄,您將在此建立金鑰和介面設定檔。
第二步:產生密鑰對
接下來,使用wg
工具在每個節點上產生公鑰和私鑰:
『`bash
```
第三步:配置PeerA的WireGuard接口
WireGuard介面使用名稱wg0
、 wg1
等。為WireGuard介面建立設定文件,您需要以下資訊:
- 在PeerA節點上設定的IP位址和子網路遮罩。
- 此Peer監聽的UDP連接埠。
- PeerA的私鑰。
建立設定檔/etc/wireguard/wg0.conf
:
『`bash
[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流量透過此Peer將監聽的連接埠:
『`bash
```
最後,將介面設定檔匯入NetworkManager,以便在重新啟動後保持WireGuard介面的持久性:
『`bash
```
成功新增連線後,您可以透過以下命令驗證裝置wg0的狀態:
『`bash
```
配置PeerB的WireGuard接口
現在,您需要為第二個Peer建立wg0介面的設定檔。確保您擁有以下資訊:
- 在PeerB上設定的IP位址和子網路遮罩。
- PeerB的私鑰。
- PeerA的公鑰。
- PeerA的IP位址或主機名稱及其監聽WireGuard流量的UDP連接埠。
建立設定檔/etc/wireguard/wg0.conf
:
『`bash
[Interface] Address = 172.16.1.2/32 SaveConfig = true PrivateKey = UBiF85o7937fBK84c2qLFQwEr6eDhLSJsb5SAq1lF3c=
[Peer] PublicKey = FEPcisOjLaZsJbYSxb0CI5pvbXwIB3BCjMUPxuaLrH8= AllowedIPs = 172.16.1.254/32 Endpoint = peera.example.com:60001 EOF ```
同樣,將此介面設定檔導入NetworkManager:
『`bash
```
驗證PeerB的wg0設備狀態:
『`bash
```
驗證節點之間的連通性
在執行上述步驟後,兩個Peer可以透過VPN連線相互通訊。您可以使用以下ICMP測試來驗證連通性:
bash
[root@peerb ~]# ping 172.16.1.254 -c 4
如果一切設定正確,您應該可以看到類似如下的輸出,表示Peer之間的連接正常。
總結
透過上述步驟,您可以在Fedora Linux上成功設定WireGuard VPN。 WireGuard以其簡單性和高效性,成為了現代VPN解決方案中受歡迎的選擇。希望本指南能幫助您順利搭建VPN連接,確保網路安全與隱私。