如何通过 LAN 路由来自 VPN 客户端的所有流量?

如何通过 LAN 路由来自 VPN 客户端的所有流量?

我有一个带有 2 个接口的 VPN 服务器(ubuntu):

eth0: A.B.C.D
eth1: 192.168.8.45

我已经设置了 VPN,并创建了 tun 接口。VPN IP 为 10.8.0.0/24 现在,我可以从 VPN 客户端 (10.8.0.6) 连接到我的 LAN (192.168.8.0/24),ping 并访问 LAN 上的服务器。我已通过在 server.conf 中进行设置强制所有流量通过 LAN

push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

并设置 IP 表

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

通过这些设置,我可以连接到互联网,但使用 eth0(ABCD)的 IP 地址,而不是我想要的通过 eth1。

如果我尝试设置:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth1 -j MASQUERADE

然后我就无法连接到互联网。

那么问题是什么?我已经在谷歌上搜索过了,但还是没有找到答案。你能帮我吗?我将不胜感激。谢谢

答案1

当您尝试设置iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth1 -j MASQUERADE路由时,请将流量从 VPN 添加到 eth1。但我认为您没有通过 eth1 到 0.0.0.0/0 的路由。关于您的网络的信息不足,但您可以添加 iptables 规则iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -o eth0 -j MASQUERADE并尝试检查发生了什么。

答案2

您需要在 VPN 服务器上添加一条路由:

ip route add 192.168.8.0/24 via 192.168.8.45 dev eth1

这将告诉您的系统通过 eth1 将所有目标发送到 192.168.8。此外,让此路由持久化也是一个好主意。

相关内容