wg你懂的是什么,下面講講我這段時間安裝過程,發覺這個軟件和CENTOS 7下面不是很合拍,它更適合ubuntu,因為ubuntu仍然用iptables,而CENTOS 早就用了firewalld了,完全廢除iptables,為了不影響CENNTOS的設置 建議使用UBUNTU,不要用CENTOS,我折騰了一個星期才搞懂它怎樣安裝,下面分享一下在UBUNTU下面怎樣安裝
我是用18.04的,wg很依賴內核,內核越新越好,18.04內核是 4.15的(CENTOS 7的是 3.10,好像對wg支持不太好),這個不錯,wg會把自己編譯成內核模塊(kernel modules),所以不適合用在docker上,github上有兩個wg的docker鏡像,但我搞不懂怎樣用,我用docker兩個鏡像都失敗了,無論在CENTOS 7和UBNTU 16.04和 18.04上都試過不行,在github上問他們怎樣使用,5天過去沒有任何人回答,所以沒有用docker方式使用下去,
https://github.com/activeeos/wireguard-docker
https://blog.jessfraz.com/post/installing-and-using-wireguard/
安裝過程我只知道要安裝內核頭文件(kernel headers),一般ubuntu已經自帶(CENTOS 要自己安裝),也不用自己安裝,另外ubuntu可以用命令行安裝
add-apt-repository ppa:wireguard/wireguard
apt-get update
apt-get install wireguard
然后就要建立服務端和客戶端的私鑰和公鑰,由於我自己用一鍵腳本建立過,所以我直接把之前的 /etc/wireguard/里的東西覆蓋,然后輸入下面命令就搞定
wg-quick up wg0
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip address add 192.168.255.1/24 dev wg0
[#] ip link set mtu 8921 dev wg0
[#] ip link set wg0 up
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; sysctl net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
如果有錯誤提示我是這樣處理
錯誤1
/usr/bin/wg-quick: line 31: resolvconf: command not found
sudo apt install resolvconf
錯誤2
Warning: `/etc/wireguard/wg0.conf' is world accessible
sudo chmod 600 /etc/wireguard/wg0.conf
打完這個命令后要檢查是否運行起來,用wg命令檢查
如果出現類似下面的內容的表示服務起來了,恭喜你
wg
interface: wg0
public key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
private key: (hidden)
listening port: 36164
peer: yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy=
endpoint: ipv4地址:端口
allowed ips: 10.0.0.2/32
latest handshake: 22 minutes, 40 seconds ago
transfer: 125.33 KiB received, 1.09 MiB sent
如果出現上面畫面然后你的客戶端仍然連不上,你要檢查wg0.conf里面的網卡和你用ifconfig顯示的網卡是否一樣,
有時有的網卡變成了ens0 而不是傳統的eth0的,要把wg0.conf的iptables的命令根據自己實際修改一下,而另外也要把相關的端口放開
比如10000端口 ufw allow 10000/udp
最后確定能通信后可以把client.conf變成二維碼在手機里掃描
sudo apt install qrencode
然后把client.conf客戶配置文件變成二維碼,下面那條命令是假定你在 /etc/wireguard/下面的執行的
qrencode -t ansiutf8 < client.conf
//把它設為服務
systemctl enable wg-quick@wg0