我有一个运行 Ubuntu Server 的家庭服务器。我正在 docker 上运行一些服务,这些服务需要 VPN 客户端才能匿名。 wireguard 客户端作为独立应用程序运行。我正在运行 traefik 来使用 SSL 访问服务,效果很好。
附加信息:
- IP
eth0
是192.168.178.101
- docker 网络位于子网范围内
172.xx.xx.xx/16
- 端口 80 和 443 是为 traefik 转发的端口。
当我启用 VPN 时,除了传入的 WAN 数据之外,一切都按预期工作。仅当我在 LAN 上时才能访问这些服务。当请求源自 WAN(路由器后面)时,数据包将被丢弃。
wireguard客户端配置如下:
[Interface]
PrivateKey = XXXXXXXXXXXXXXXX=
Address = 10.64.154.19/32
DNS = 10.64.0.1
PostUp = iptables -t nat -A POSTROUTING -s 192.168.178.0/32 -o wg0 -j MASQUERADE
PostUp = iptables -A INPUT -p udp -m udp --dport 51820 -j ACCEPT
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
PostUp = iptables -A FORWARD -o wg0 -j ACCEPT
[Peer]
PublicKey = XXXXXXXXXXXXXXXX=
AllowedIPs = 0.0.0.0/0
Endpoint = XXXXXXXXXXXXXXXX:51820
- 我使用
tcpdump
端口 443 作为过滤器,结果长度=0。 - 我确实看过,
iptables
但对我来说看起来不错。 - 我尝试添加
AllowedIP
s 和 docker 的子网eth0
,但没有解决问题。 - 当我禁用wireguard客户端时,一切都像以前一样正常工作。
知道可能是什么问题吗?我不是专业的网络工程师,也许我忽略了一些事情。