使用 wg-easy 通过 Docker Compose 配置 WireGuard 服务器

使用wg-easy docker compose设置WireGuard服务器

必须知道的事情

PASSWORD_HASH

PASSWORD_HASH=$$2a$$12$$31H.ZEl74tEF98shuIWWxe2PTsljr3vEMRfU7HL8dPvNJTImcUgRq
这是密码为123456的哈希值,参见 How_to_generate_an_bcrypt_hash.md 来了解如何获取这个哈希值,当你登录到wg-easy配置web界面时,123456将是你的密码。但现在的方法有一点问题,所以可以用以下命令代替:

sudo docker run -it ghcr.io/wg-easy/wg-easy /app/wgpw.sh 123456

如果上述命令的输出是:
PASSWORD_HASH='$2a$12$31H.ZEl74tEF98shuIWWxe2PTsljr3vEMRfU7HL8dPvNJTImcUgRq'
因为我们使用的是docker compose yaml文件,需要将每个$符号替换为两个$$符号。所以在yaml中的PASSWORD_HASH应为:
PASSWORD_HASH=$$2a$$12$$31H.ZEl74tEF98shuIWWxe2PTsljr3vEMRfU7HL8dPvNJTImcUgRq
记得用一个更强的密码替换简单的123456。

关于我们使用的IP和IP范围的注释:
  • 192.168.0.1 主机网络网关,请改为你的主机网络网关。
  • 192.168.0.0/24 主机网络IP范围,请同样改为你的主机网络IP范围。
  • 10.8.0.x 你的虚拟网络IP范围,除非你偏好其他的IP范围,否则不需要更改。
  • 10.8.0.0/2410.8.0.x 设定的虚拟网络IP范围。

Docker compose 文件

services:
  wg-easy:
    container_name: wg-easy
    image: ghcr.io/wg-easy/wg-easy
    network_mode: bridge
    environment:
      - LANG=chs # or en, de ...
      - WG_HOST=stepchen.tpddns.cn
      - WG_DEFAULT_DNS=192.168.0.1,114.114.114.114,8.8.8.8,8.8.4.4
      - PORT=7000
      - WG_DEFAULT_ADDRESS=10.8.0.x
      - WG_PORT=7001
      - WG_PRE_UP = iptables -t nat -F; iptables -F;  # Flush all rules
      - WG_POST_UP=iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
      - WG_POST_DOWN=iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
      - WG_ALLOWED_IPS=114.114.114.114,8.8.8.8,8.8.4.4,192.168.0.0/24,10.8.0.0/24
      - PASSWORD_HASH=$$2a$$12$$31H.ZEl74tEF98shuIWWxe2PTsljr3vEMRfU7HL8dPvNJTImcUgRq
      - UI_TRAFFIC_STATS=true
      - UI_CHART_TYPE=3 # (0 Charts disabled, 1 # Line chart, 2 # Area chart, 3 # Bar chart)
      # - WG_ENABLE_ONE_TIME_LINKS=true
      - UI_ENABLE_SORT_CLIENTS=true
      # - WG_ENABLE_EXPIRES_TIME=true
    volumes:
      - /mnt/appdata/wgeasy:/etc/wireguard
    ports:
      - 7000:7000/tcp
      - 7001:7001/udp
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
      - net.ipv4.ip_forward=1
    restart: unless-stopped

启动docker容器后,你可以通过 http://<your_public_ip>:7000 并使用你在 PASSWORD_HASH 中设置的密码来访问服务器的web界面。

设置WireGuard客户端

安装WireGuard客户端

sudo apt update
sudo apt install wireguard

从服务器创建客户端并获取配置文件

访问服务器的web界面并创建一个新的客户端,然后下载客户端配置文件到客户端。然后将配置文件移动到/etc/wireguard/目录下。比如你从服务器下载的配置文件名为stepchen-pc.conf位于/home/stepchen/Downloads/

sudo mv /home/stepchen/Downloads/stepchen-pc.conf /etc/wireguard/wg0.conf

注意:文件名wg0.conf意味着wg0将是在客户端启动WireGuard连接的名字。

WireGuard的命令

# Start the connection
sudo wg-quick up wg0
# Stop the connection
sudo wg-quick down wg0
# Show current connection
sudo wg show

将连接作为服务添加到客户端机器中

# Create the system service and start it immediately
sudo systemctl enable --now wg-quick@wg0
# Remove the system service and stop it immediately
sudo systemctl disable --now wg-quick@wg0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值