飞牛Docker compose安装wireguard和wireguard-UI

首先需要支持wireguard内核系统,较新的系统都支持例如飞牛和OpenWrt。群晖实测有点问题,需要的也可以去测试。

一、我比较习惯portainer,安装代码如下:SSH里直接执行就行:

docker run -d --restart=always --name="portainer" -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock 6053537/portainer-ce

二、Portainer里面新建堆栈

复制以下代码,要是格式出错什么的可以直接问deepseek,注意/volume1/NAS/wg 替换成你实际存放配置路径,代码里的6080和51820端口可以替换成你喜欢的数字。

version: "3.8"

services:
  wireguard:
    image: linuxserver/wireguard:latest  
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE  
    volumes:
      - /volume1/NAS/wg:/config
    ports:
      - "6080:5000"  # 这个映射可能不必要,除非您需要访问 WireGuard 的某个服务
      - "51820:51820/udp"  # WireGuard 主端口
    restart: unless-stopped
    # 建议添加环境变量配置
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai

  wireguard-ui:
    image: ngoduykhanh/wireguard-ui:latest
    container_name: wireguard-ui
    depends_on:
      - wireguard
    cap_add:
      - NET_ADMIN  # WireGuard-UI 通常不需要 NET_ADMIN 权限
    network_mode: "service:wireguard"  # 使用 WireGuard 的网络命名空间
    environment:
      - SENDGRID_API_KEY=${SENDGRID_API_KEY}  # 使用环境变量占位符
      - EMAIL_FROM_ADDRESS=${EMAIL_FROM_ADDRESS}
      - EMAIL_FROM_NAME=${EMAIL_FROM_NAME}
      - SESSION_SECRET=${SESSION_SECRET}
      - WGUI_USERNAME=admin
      - WGUI_PASSWORD=admin
      - WG_CONF_TEMPLATE=${WG_CONF_TEMPLATE}
      - WGUI_MANAGE_START=true
      - WGUI_MANAGE_RESTART=true
    logging:
      driver: json-file
      options:
        max-size: "50m"  # 添加引号
    volumes:
      - /volume1/NAS/wg:/app/db
      - /volume1/NAS/wg:/etc/wireguard  # 注意:这会覆盖上一个卷挂载
    restart: unless-stopped

三、登录配置wireguard-ui ,登录密码和账号默认均为admin登录之后自己在用户设置里修改

Post Up Script

iptables -A FORWARD -i %1 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth+ -j MASQUERADE

Post Down Script

iptables -D FORWARD -i %1 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth+ -j MASQUERADE

服务器IP看着改个你的DDNS域名就行也可以不改

新建客户端随便填

这些操作均需要点击右上角 应用此操作配置。 可以实时看到链接的客户端状态。

生成的二维码直接手机客户端wireguard扫描就行。重点别忘记端口映射,手机扫描后的配置文件编辑成你映射的端口。DNS最好的国内的,别用国外重要。

群晖的没搞定,我有点怀疑我把系统给搞坏了,回头再研究。

上一篇