新出的 Wireguard 很多人都想嘗試,這裡 VPN 到底適不適合用來翻牆我們先不討論,先來看看怎麼快速在 vps 上起一個 wireguard 服務。很多人聽說這個服務配置起來特別複雜,所以望而卻步,實際上很簡單。
環境
這裡我用最新的 ubuntu 18.04.2 來配置,首先你得有一個 vps,創建好後最好按照我的 購買了VPS之後你應該做足的安全措施裡配置ssh的證書訪問。
安裝
wireguard 是有為 ubuntu 提供安裝包的,但並沒有集成在官方源里,所以我們要自己添加 ppa,然後安裝。
1 2 3 4 5 |
add-apt-repository ppa:wireguard/wireguard apt upgrade apt install wireguard resolvconf -y |
配置
進入配置目錄 光盤 /等等/wireguard ,執行下面兩條命令來生成密鑰對:
1 2 |
wg genkey | tee server_privatekey | wg pubkey > server_publickey wg genkey | tee client_privatekey | wg pubkey > client_publickey |
開啟流量轉發:
1 2 3 |
echo 1 > /proc/sys/net/ipv4/ip_forward echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf sysctl -p |
如果你想添加開機啟動,那麼:
1 |
systemctl enable wg-quick@wg0 |
使用 使用ifconfig 等命令查看你的網卡信息,找到那個使用外網的網卡,如果你有多個,就選其中一個,用來給wireguard服務監聽。
你得到的結果大致如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 128.199.152.999 netmask 255.255.192.0 broadcast 128.199.191.255 inet6 fe80::bc10:f7ff:feb7:226b prefixlen 64 scopeid 0x20<link> ether be:10:f7:b7:22:6b txqueuelen 1000 (Ethernet) RX packets 23440 bytes 56095614 (56.0 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 9140 bytes 714939 (714.9 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 166 bytes 13998 (13.9 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 166 bytes 13998 (13.9 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 |
比如這裡的例子,顯然網卡名稱就是 為eth0 ,要記下這個,一會寫配置要用到。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
echo " [Interface] PrivateKey = $(cat server_privatekey) Address = 10.0.0.1/24 PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE ListenPort = 443 DNS = 8.8.8.8 MTU = 1420 [Peer] PublicKey = $(cat client_publickey) AllowedIPs = 10.0.0.2/32 " > wg0.conf |
直接生成配置,你也可以手動編寫,不過就需要自己去讀取密鑰對了,注意名字,不要搞錯。另外代碼塊中高亮的兩行,之前我們查看的網卡名,就要寫在這裡面,如果你的網卡不是 為eth0 ,那麼請自行手動替換。
考慮到密鑰對都在服務器上,這裡我們再順便生成客戶端配置:
1 2 3 4 5 6 7 8 9 10 11 12 |
echo " [Interface] PrivateKey = $(cat client_privatekey) Address = 10.0.0.2/24 DNS = 8.8.8.8 MTU = 1420 [Peer] PublicKey = $(cat server_publickey) Endpoint = 128.199.152.999:443 AllowedIPs = 0.0.0.0/0, ::0/0 PersistentKeepalive = 25 " > client.conf |
注意高亮行,把遠端 IP 改成你服務器的 IP。
啟動
至此,配置完成!
1 2 3 4 5 6 7 8 |
# 启动WireGuard wg-quick up wg0 # 停止WireGuard wg-quick down wg0 # 查看WireGuard运行状态 wg |
就是這麼簡單~
多用戶
首先停止服務 由-快 下 WG0
然後生成新用戶的密鑰對:
1 |
wg genkey | tee client0_privatekey | wg pubkey > client0_publickey |
然後在服務端配置中增加,注意這是一條命令,不要分行執行:
1 2 3 4 |
echo " [Peer] PublicKey = $(cat client0_publickey) AllowedIPs = 10.0.0.3/32" >> wg0.conf |
注意高亮行,這個內網 IP 段要寫個不同的,每一個 “Peer” 用一個 ip,比如上文用的是 10.0.0.2,這裡就用 10.0.0.3,如果還需要更多用戶,那麼就以此類推。
創建客戶端配置文件,這裡就和上文中的一樣了,只是注意密鑰對用新的,這同樣也是一個命令,不要分行執行:
1 2 3 4 5 6 7 8 9 10 11 12 |
echo " [Interface] PrivateKey = $(cat client0_privatekey) Address = 10.0.0.3/24 DNS = 8.8.8.8 MTU = 1420 [Peer] PublicKey = $(cat server_publickey) Endpoint = 1.2.3.4:443 AllowedIPs = 0.0.0.0/0, ::0/0 PersistentKeepalive = 25 " > client0.conf |
然後啟動服務: 由-快 向上 WG0
參考文獻:
一個高速、安全、可以復活被牆IP的VPN —— WireGuard 服務端手動教程
本文由 落格博客 原創撰寫:落格博客 » Ubuntu 超快部署 wireguard 服務端
轉載請保留出處和原文鏈接:https://www.logcg.com/archives/3197.html
文章不錯非常喜歡