使用 Wireguard

一、安装 wireguard

sudo apt-get install wireguard -y

二、配置服务端

配置公钥和私钥

在服务器创建一对公钥和私钥:

wg genkey | tee private.key | wg pubkey > public.key

配置配置文件

进入配置文件:

sudo vim /etc/wireguard/wg0.conf

添加以下配置:

[Interface]
PrivateKey = your_private_key
Address = 10.0.0.1/32
ListenPort = 51820
SaveConfig = true
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT && iptables -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

[Peer]
PublicKey = client_public_key
AllowedIPs = 10.0.0.2/32

注意 💥

使用下面的命令查看你的默认网卡:

ip route list table main default

例如如果返回结果是:

default via 172.18.224.1 dev `enp4s0` proto dhcp src 172.18.224.100 metric 100

那么你需要将 eth0 改为enp4s0

三、配置客户端

配置公钥和私钥

在客户端创建一对公钥和私钥:

wg genkey | tee private.key | wg pubkey > public.key

配置配置文件

进入配置文件:

sudo vim /etc/wireguard/wg0.conf

添加以下配置:

[Interface]
PrivateKey = client_private_key
Address = 10.0.0.2/32
DNS = 114.114.114.114, 223.5.5.5

[Peer]
PublicKey = server_public_key
Endpoint = server_ip:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

四、向服务器添加客户端的公钥

获得客户端的公钥:

cat publickey

添加到客户端当中:

sudo wg set wg0 peer client_public_key allowed-ips 10.0.0.2

你也可以直接在服务端的配置文件中添加Peer

五、防火墙设置

允许端口转发

进入配置文件:

sudo vim /etc/sysctl.conf

取消注释以下内容:

net.ipv4.ip_forward=1

重启或者输入以下命令生效端口转发:

sudo sysctl -p

打开防火墙

输入以下命令查看防火墙是否启动:

sudo ufw status

如果防火墙已经启动,你可以输入以下命令开启防火墙:

ufw allow 51820/udp

注意 💥

如果你的服务器是在 VPS 上搭建的,那么你需要在你的服务商后台面板开启相应的51820的UDP端口

六、启动服务

在服务端和客户端都输入以下命令:

wg-quick up wg0

在客户端输入以下命令发送流量:

ping 10.0.0.1

然后在服务端输入以下命令查看流量:

sudo tcpdump -envi wg0

七、设置开机自启

sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
systemctl status wg-quick@wg0
sudo systemctl stop wg-quick@wg0
sudo systemctl disable wg-quick@wg0

八、参考视频