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