网络设置:
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 连接路由到互联网。我所做的是:
- 将PC(10.0.0.51)上的网关设置为10.0.0.70
- 在 10,0,0,70 上启用 ipv4 转发
- 将伪装规则添加到 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>