Ubuntu 20.04配置WireGuard

后阳炎
2023-12-01

参考文章: https://techviewleo.com/install-wireguard-vpn-server-on-ubuntu/

安装包

$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt install -y iptables wireguard

开启ipv4转发

$ sudo vim /etc/sysctl.conf

取消net.ipv4.ip_forward=1这一行的注释, 再执行下面命令生效

$ sudo sysctl -p

配置WireGuard服务

生成私钥和公钥

$ 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	//	查看启动的端口信息

客户端配置

客户端下载(Windows+Android)

Android客户端

在服务器端使用下面命令生成二维码

$ 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

 类似资料: