1、安装
apt install wireguard
2、开启ipv4流量转发并使其生效
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf sysctl -p
3、配置wireguard服务端
3.1、生成服务器和客户端密钥对
wg genkey | tee server_privatekey | wg pubkey > server_publickey wg genkey | tee client_privatekey | wg pubkey > client_publickey
3.2、服务器配置文件
根据上一步产生的服务器私钥server_privatekey,客户端公钥client_publickey填入配置文件。
如果网卡名称不是eth0,根据实际情况修改PostUp/PostDown字段的iptables命令。
ListenPort为服务端口号,可以自定义设定。
[Interface] # 填写本机的privatekey 内容 PrivateKey = $(cat server_privatekey) Address = 10.0.8.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 # 注意该端口是UDP端口 ListenPort = 50814 DNS = 8.8.8.8 MTU = 1420 [Peer] # 填写对端的publickey 内容 PublicKey = $(cat client_publickey) AllowedIPs = 10.0.8.10/24
3.3、客户端配置文件
根据上一步生产的客户端私钥client_privatekey,服务器公钥cserver_publickey填入配置文件。
修改Endpoint为服务器实际的IP和端口。
[Interface] # 填写本机的privatekey 内容 PrivateKey = $(cat client_privatekey) Address = 10.0.8.10/24 DNS = 8.8.8.8 MTU = 1420 [Peer] # 填写对端的publickey 内容 PublicKey = $(cat server_publickey) # 服务器公网的IP:PORT Endpoint = 服务器公网的IP:50814 AllowedIPs = 0.0.0.0/0, ::0/0 PersistentKeepalive = 25
3.4、启动服务
设置开机自启动
systemctl enable wg-quick@wg0
首次启动wg0
wg-quick up wg0 [#] ip link add wg0 type wireguard [#] wg setconf wg0 /dev/fd/63 Warning: AllowedIP has nonzero host part: 10.0.8.10/24 [#] ip -4 address add 10.0.8.1/24 dev wg0 [#] ip link set mtu 1420 up dev wg0 [#] resolvconf -a wg0 -m 0 -x /usr/bin/wg-quick: line 32: resolvconf: command not found [#] ip link delete dev wg0
Error: /usr/bin/wg-quick: line 32: resolvconf: command not found
解决:
apt install resolvconf -y
重新启动服务,成功信息如下。
wg-quick up wg0 [#] ip link add wg0 type wireguard [#] wg setconf wg0 /dev/fd/63 Warning: AllowedIP has nonzero host part: 10.0.8.10/24 [#] ip -4 address add 10.0.8.1/24 dev wg0 [#] ip link set mtu 1420 up dev wg0 [#] resolvconf -a tun.wg0 -m 0 -x [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
3.5、查看服务状态
wg interface: wg0 public key: xxx private key: (hidden) listening port: 50814 peer: xxx allowed ips: 10.0.8.0/24
4、配置wireguard客户端
android平台:Google Paly商店wireguard app
4.1、获取客户端配置
为了方便客户端获取配置可以把client.conf转为二维码扫描使用。
目标配置文件:client.conf
服务器安装qrencode工具
apt install qrencode
将client.conf文件转为二维码
qrencode -t ansiutf8 < client.conf
4.2、wireguard app选择扫描二维码导入
识别二维码成功,为配置命名并保存。
4.3、客户端开启连接
点击连接名称可以查看到连接详情。
5、服务器端连接状态
wg interface: wg0 public key: xxx private key: (hidden) listening port: 50814 peer: xxx endpoint: x.x.x.x:xxxx allowed ips: 10.0.8.0/24 latest handshake: 19 seconds ago transfer: 55.94 KiB received, 28.78 KiB sent
参考:
https://cloud.tencent.com/developer/article/1832768
https://www.wireguard.com/quickstart/#quick-start
Copyright © 2022 Primzahl. All rights reserved.