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