WireGuard + Nginx 中转架构实战(三)Docker 服务如何通过 WireGuard 回源(端口只绑定内网)

一、为什么中转机不能访问 http://app:80

因为:

  • app / portainerDocker 容器名
  • 只在 源站 Docker 网络内有效
  • 中转机完全无法解析

二、正确方案(推荐)

容器端口绑定 WireGuard IP


三、docker-compose 示例

services:
  app:
    image: your-app
    ports:
      - "10.100.0.2:8081:80"

  portainer:
    image: portainer/portainer-ce
    ports:
      - "10.100.0.2:9000:9000"

启动:

docker compose up -d

四、验证监听地址

ss -lntp | grep 10.100.0.2

应看到:

LISTEN 10.100.0.2:9000

:cross_mark: 不应出现 0.0.0.0:9000


五、中转机验证回源

curl -I http://10.100.0.2:9000

六、源站防火墙(强烈建议)

ufw allow from 10.100.0.1 to any port 9000
ufw default deny incoming