将来自特定源 IP 的流量伪装到 VPN 连接

将来自特定源 IP 的流量伪装到 VPN 连接

网络设置:

10.0.0.1 路由器:连接到互联网
10.0.0.70 服务器:基于 Ubuntu 的服务器,默认网关为 10.0.0.1
10.0.0.51 PC

我在服务器上创建了一个 PPTP 连接(接口:ppp0)到互联网上的一台机器,我想要做的是将所有来自某个 IP 地址(10.0.0.51)的流量通过 PPTP 连接路由到互联网。我所做的是:

  1. 将PC(10.0.0.51)上的网关设置为10.0.0.70
  2. 在 10,0,0,70 上启用 ipv4 转发
  3. 将伪装规则添加到 iptable:
    iptables -t nat -A POSTROUTING -o ppp0 -s 10.0.0.51 -j MASQUERADE

此后,似乎来自 10.0.0.51 的流量都不会被重定向到 ppp0,而是这些流量仍直接经过 10.0.0.1。

有什么想法吗?

答案1

假设Ubuntu网关上的内部接口是eth0。

添加以下2条规则:

iptables -A FORWARD -i eth0 -o ppp0 -s 10.0.0.51 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

并确保已删除客户端上的旧网关:

route del default gw 10.0.0.1 dev <ethx>

相关内容