我有三个 Linux/Debian 主机:客户端、中间人和网关。客户端和网关位于 NAT 后面,而中间人有一个公共 IPv4 地址。
因此,Endpoint
客户端和网关将成为中间人。然后,我想以这种方式路由来自客户端的所有流量:
Client ==> Middleman ==> Gateway ==> Internet
我当前的配置是:
客户
[Interface]
PrivateKey =
Address = 10.0.0.1/32
ListenPort = 51821
[Peer]
PublicKey =
Endpoint = MIDDLEMAN_PUBLIC_IP:51823
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
中间人
[Interface]
PrivateKey =
Address = 10.0.0.3/32
ListenPort = 51823
PreUp = sysctl -w net.ipv4.ip_forward=1
# Client
[Peer]
PublicKey =
AllowedIPs = 10.0.0.1/32
# Gateway
[Peer]
PublicKey =
AllowedIPs = 10.0.0.0/24
网关
[Interface]
PrivateKey =
Address = 10.0.0.2/32
ListenPort = 51822
# From wg0 to eth0
PreUp = sysctl -w net.ipv4.ip_forward=1
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey =
Endpoint = MIDDLEMAN_PUBLIC_IP:51823
AllowedIPs = 10.0.0.0/24
PersistentKeepalive = 25
目前隧道正在运行,我可以通过 Wireguard 的隧道从客户端 ssh 到网关,但互联网流量卡在中间人那里(根据 TCP 转储,尝试 ping 8.8.8.8)。
我确实在 Middleman 上遗漏了一些 iptables 规则,但我已经尝试了来自不同在线指南的几条规则。
您能建议我工作配置吗?