由于某种原因,WireGuard 和 NPM 无法进行转发

由于某种原因,WireGuard 和 NPM 无法进行转发

我遇到了 Nginx 代理管理器和 WireGuard 的问题。我有以下设置:一台安装了 Debian 12 和 Proxmox 的家庭服务器,位于 CNAT 后面。

因此我使用 VPS 来获取公共 IP。我的虚拟机彼此隔离,并通过 WireGuard 连接到 VPS,这样我的主机系统也与 VPS 隔离。然后我通过 iptables 将所需端口的流量直接路由到虚拟机。

端口的直接转发工作正常。现在我想托管一个虚拟机作为中央备用代理,它将 HTTP 和 HTTPS 转发到其他虚拟机。但是,由于某种原因,转发不起作用。

我可以通过 wg ips 相互 ping VM 与 NPM 以及 VM 与 Web 服务。但如果我现在想转发example.domain.org192.168.4.101:264NPM,它就行不通了。如果我使用 VM 的本地 IP,它就可以工作。如果我将服务转发到 NPM 主机自己的 WireGuard IP,它也可以工作。

我这里犯了错误吗?

总结了所需的代理:

192.168.4.101:246 -> WG IP, does not work
192.168.8.101:246 -> Local IP, works 
192.168.4.102:81 -> Own WG IP on NPM works

Ping 工作在以下范围:

192.168.4.1 (VPS) <-> 192.168.4.101 (VM web service) <-> 192.168.4.102 (VM NPM)

配置如下:带有 NPM 的 VM

[Peer]
AllowedIPs =  192.168.4.1/32, 192.168.4.101/32

带有 web 服务的虚拟机

[Peer]
AllowedIPs =  192.168.4.1/32, 192.168.4.102/32

VPS:

[Interface]
PrivateKey= xxxx
ListenPort = 55107
Address = 192.168.4.1

PostUp = iptables -A FORWARD -i eth0 -o wg0 -j ACCEPT
PostUp = iptables -A FORWARD -i wg0 -o eth0 -j ACCEPT
#NGINX-Reverse-Proxy
PostUp = iptables -t nat -A PREROUTING -i eth0 -p tcp -m multiport --dport 80 -j DNAT --to 192.168.4.102
PostUp = iptables -t nat -A PREROUTING -i eth0 -p tcp -m multiport --dport 443 -j DNAT --to 192.168.4.102

PostUp = iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE

PostDown = iptables -D FORWARD -i eth0 -o wg0 -j ACCEPT
PostDown = iptables -D FORWARD -i wg0 -o eth0 -j ACCEPT
#NGINX-Reverse-Proxy
PostDown = iptables -t nat -D PREROUTING -i eth0 -p tcp -m multiport --dport 80 -j DNAT --to 192.168.4.102
PostDown = iptables -t nat -D PREROUTING -i eth0 -p tcp -m multiport --dport 443 -j DNAT --to 192.168.4.102

PostDown = iptables -t nat -D POSTROUTING -o wg0 -j MASQUERADE

# VM with a webservice
[Peer]
PublicKey = xxx
AllowedIPs = 192.168.4.101/32

# VM with NPM
[Peer]
PublicKey = xxx
AllowedIPs = 192.168.4.102/32

相关内容