参考文章: https://techviewleo.com/install-wireguard-vpn-server-on-ubuntu/
$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt install -y iptables wireguard
$ sudo vim /etc/sysctl.conf
取消net.ipv4.ip_forward=1
这一行的注释, 再执行下面命令生效
$ sudo sysctl -p
生成私钥和公钥
$ sudo su -
# wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey
查看并复制私钥内容
$ cat /etc/wireguard/privatekey
创建网络配置文件
$ sudo vim /etc/wireguard/wg0.conf
使用上面的私钥替换配置文件中的相关内容, 同时需要注意替换eth0
为实际的网卡设备名称
[Interface]
Address = 10.10.10.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = 上面复制的私钥内容
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
修改配置文件的权限
$ sudo chmod 600 /etc/wireguard/privatekey
$ sudo chmod 600 /etc/wireguard/wg0.conf
启动WireGuard接口
$ sudo wg-quick up wg0
执行后会输出下面内容
root@localhost:/etc/wireguard# wg-quick up wg0
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.10.10.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
$ sudo wg-quick down wg0 // 先停掉之前手工启动的端口
$ sudo systemctl enable wg-quick@wg0.service
$ sudo systemctl start wg-quick@wg0.service
$ sudo wg show // 查看启动的端口信息
在服务器端使用下面命令生成二维码
$ sudo su
# apt install -y qrencode
# mkdir -p /etc/wireguard/clients
# wg genkey | sudo tee /etc/wireguard/clients/mobile.key | wg pubkey | sudo tee /etc/wireguard/clients/mobile.key.pub
# cat /etc/wireguard/clients/mobile.key // 复制私钥内容
# vim /etc/wireguard/clients/mobile.conf
[Interface]
PrivateKey = 上面复制的私钥内容
Address = 10.10.10.2/24
DNS = 1.1.1.1, 1.0.0.1
[Peer]
PublicKey = 服务器的公钥(/etc/wireguard/publickey)
AllowedIPs = 0.0.0.0/0
Endpoint = 服务器的公网IP地址:51820
# qrencode -t ansiutf8 < /etc/wireguard/clients/mobile.conf
使用Android客户端扫描屏幕二维码即可完成添加
这个脚本可以更方便的管理, 省了手工复制粘贴密钥了
https://github.com/complexorganizations/wireguard-manager