wg-easy介绍
wg-easy是一个基于docker的wireguard+wireguard管理UI的一个应用程序,本教程基于ubuntu22.04下搭建,
有很长一段时间我都用的路由器(openwrt)自带的wireguard,但是配置和维护起来太过于麻烦,感觉唯一好处就是轻量化
ubuntu的网络配置和docker的安装参考教程
安装wg-easy
sudo docker pull ghcr.io/wg-easy/wg-easy
启动wg-easy
docker run -d \
--name=wg-easy \
-e LANG=chs \
-e WG_PERSISTENT_KEEPALIVE=25 \
-e WG_DEFAULT_ADDRESS=192.168.200.x \
-e WG_ALLOWED_IPS=192.168.200.0/24,192.168.10.0/24 \
-e WG_HOST={服务器地址} \
-e WG_PORT=51820 \
-e WG_DEFAULT_DNS=192.168.10.1 \
-e PASSWORD=123456 \
-v ~/wg-easy/:/etc/wireguard \
-p 51820:51820/udp \
-p 10821:51821/tcp \
--cap-add=NET_ADMIN \
--cap-add=SYS_MODULE \
--sysctl="net.ipv4.conf.all.src_valid_mark=1" \
--sysctl="net.ipv4.ip_forward=1" \
--restart unless-stopped \
ghcr.io/wg-easy/wg-easy
进阶教程
ubuntu路由配置
192.168.200.0/24 wireguard专网
192.168.10.0/24 内网
172.17.0.2 wg-easy容器ip
192.168.10.2 ubuntu ip地址
sudo route add -net 192.168.200.0 netmask 255.255.255.0 gw 172.17.0.2
ubuntu配置路由转发
echo "1" > /proc/sys/net/ipv4/ip_forward
sudo iptables -A FORWARD -i ens18 -o docker0 -j ACCEPT
sudo iptables -A FORWARD -i docker0 -o ens18 -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o docker0 -j MASQUERADE
此时在内网电脑上添加如下命令,或者在路由器上面添加一条静态路由也可以
route add 192.168.200.0 mask 255.255.255.0 192.168.10.2
然后进行ping测试能否ping通其它wg客户端ip,如果配置成功是可以访问的
注意:在ubuntu里面是无法ping通其它wg客户端ip,是正常的,如果有这个需求,需要给wg-easy也配置路由转发
ubuntu永久路由和转发配置
转发配置永久保存命令
sudo apt install iptables-persistent
sudo iptables-save -f /etc/iptables/rules.v4
路由配置永久保存命令
sudo vim /etc/netplan/00-installer-config.yaml
配置文件参考
# This is the network config written by 'subiquity'
network:
ethernets:
ens18:
dhcp4: true
docker0:
routes:
- to: 192.168.200.0/24
via: 172.17.0.2
version: 2
netplan apply