首先需要支持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最好的国内的,别用国外重要。
群晖的没搞定,我有点怀疑我把系统给搞坏了,回头再研究。