交流評論、關注點贊

  • Facebook Icon臉書專頁
  • telegram Icon翻牆交流電報群
  • telegram Icon電報頻道
  • RSS訂閱禁聞RSS/FEED訂閱

輕鬆幾步搭建 WireGuard (快速安全的下一代 VPN)

2018年08月05日 16:49 PDF版 分享轉發

WireGuard 是一個快速安全的新型 隧道程序,它簡單高效的特性特別適合在手機等低能耗設備上使用。

WireGuard 不同於 IPSec ,它的設計簡單(目前整體只有幾千行代碼),在不使用的情況下默認不會傳輸任何 UDP 數據包,而且能夠無縫漫遊在不同的 IP 地址間,這些特定都使它特別適合於移動設備的使用。目前 WireGuard 基於 Linux 內核實現,得到了 Linux 內核主要維護者 Greg KH 的肯定。下面介紹如何在 Ubuntu 16.04 搭建使用 WireGuard 。

搭建步驟

下載安裝 WireGuard (服務端和客戶端都需要安裝)

$ sudo add-apt-repository ppa:wireguard/wireguard
$ sudo apt-get update
$ sudo apt-get install wireguard

Ad:美好不容錯過,和家人朋友一起享受愉快時光,現在就訂票

配置服務端相關參數,創建並編輯 /etc/wireguard/wg0.conf ,內容如下:

[Interface]
PrivateKey = <Private Key>
Address = 10.0.0.1/24
ListenPort = 56660
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
SaveConfig = true

其中 PrivateKey 通過命令 wg genkey 生成。

啟動服務端 WireGuard

$ wg-quick up wg0

可以通過命令 wg 檢查啟動是否成功,成功的話會輸出如下內容:

interface: wg0
public key: xxxxxxxxxx
private key: (hidden)
listening port: 56660

將 WireGuard 設置成開機啟動

$ systemctl enable wg-quick@wg0

配置客戶端相關參數,創建並編輯 /etc/wireguard/wg0.conf ,內容如下:

[Interface]PrivateKey = <Private Key>Address = 10.0.0.3/24DNS = 8.8.8.8

[Peer]PublicKey = xxxxxxxxxxEndpoint = <Server Public IP>:56660AllowedIPs = 0.0.0.0/0

其中 PrivateKey 也是通過命令 wg genkey 生成, PeerPublicKey 填入上面服務端 wg 命令返回的 public keyEndpoint 的 IP 設置為服務端可訪問的公網 IP 。

啟動客戶端 WireGuard

$ wg-quick up wg0

啟動后同樣通過命令 wg 可查看公鑰。

在服務端添加客戶端信息

$ sudo wg set wg0 peer <Public Key> allowed-ips 10.0.0.3/24

Public Key 是客戶端的公鑰。
如果在服務端配置信息里設置了 SaveConfig = true 那麼剛才添加的客戶端參數信息會在服務端關閉時自動保存到配置文件中。如果想立即存儲剛設置的參數也可以執行命令 wg-quick save wg0

測試驗證

完成上述步驟后客戶端便能直接訪問服務端所在的網路了,可以通過 ping 10.0.0.1 進行驗證。

Tips

  1. WireGuard 能夠提供類似 TCP keepalive 的功能,如果客戶端在 NAT 子網可以考慮開啟這一選項。
  2. WireGuard 目前僅實現了 Linux 內核模塊版本,所以目前客戶端僅支持部分 Linux 和 Android 。

喜歡、支持,請轉發分享↓Follow Us 責任編輯:李心惠