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

重启wg-easy测试

最后修改:2024 年 06 月 21 日
如果觉得我的文章对你有用,请随意赞赏