请考虑以下设置。我有一个VPS连接到互联网,有一个固定的IP。此外,在我的家庭网络中,在NAT路由器后面,我确实有我的家庭网络和几个主机。我的家庭网络使用网络192.168.1.0/24,而在Host1上,我已经配置了一个Wireguard到我的VPS。在此VPN中,VPS使用IP 192.168.10.1,Host1使用IP 192.168.10.2。从VPS,我可以在我的家庭网络平主机,反之亦然,这是很好的工作。
接下来,我想从VPS访问我的家庭网络。为此,我在VPS上添加了一条路线如下
ip route add 192.168.1.0/24 via 192.168.10.2 dev wg0
我的想法是,我可以访问不同的主机在我的家庭网络从VPS。但是,我知道我需要启用Host1上的IP转发,我这样做了如下:
iptables -t nat -A POSTROUTING -o ens18 -j MASQUERADE
我还配置了net.ipv4.ip_forward = 1。有了这两种配置,我就可以通过VPS在我的家庭网络中平平任何主机。然而,我在我的家庭网络中有一个web服务器,当我试图访问我的VPS上的那个服务器时,我会得到no route to host,即使我可以平分web服务器。我在我的家庭网络中在Host1上运行了Host1,并看到了错误消息admin prohibited filter,因此,与ICMP相比,似乎没有正确地转发HTTP流量。那么,我需要如何配置iptables才能访问VPS上家庭网络中的web服务器呢?我想我也需要加入NAT,但我不确定怎么做。
发布于 2022-01-24 18:45:44
您肯定缺少了服务器的密钥路由配置中的其他WireGuard条目。
服务器的WireGuard层必须知道对等匹配是什么,例如IP地址192.168.0.42。为此,它检查是否有一个具有正确AllowedIPs条目的对等程序。有一个对等点定义了,它当然有这样的条目:
AllowedIPs = 192.168.10.2这和192.168.0.42不匹配。通过WireGuard接口发送到192.168.0.42的数据包被丢弃。
因此,每当通过WireGuard接口向服务器添加其他路由(通常不像客户端那样使用AllowedIPs = 0.0.0/0/0 )时,就有可能(其中之一)它的AllowedIPs条目也必须相应更改。在这种情况下,应该有:
AllowedIPs = 192.168.10.2, 192.168.1.0/24这将使目的地与正确的出口对等点相关联,并验证从该对等点接收到的数据包以供入口。
iptables似乎与问题无关。
https://unix.stackexchange.com/questions/685379
复制相似问题