我在实现此目标时遇到问题:A-->B-->C-->internet(执行 A--C-->internet 可以正常工作)
- A:客户端局域网:192.168.57.0/24(例如192.168.57.50)
- B:ubuntu 网关 eth0:172.10.0.1(/24,默认网关:172.10.0.254) eth1:192.168.57.1(/24) eth3 10.152.152.0(/18)
- C:whonix-gw eth0:10.0.0.1 eth1:10.152.152.10
一开始我尝试使用 ipbales,也尝试过DNAT
、MASQUERADE
等,但都无法达到目的。然后我尝试使用 PBR(基于策略的路由),因此创建了一个新表并添加了默认网关和策略,但没有成功。
echo 200 John >> /etc/iproute2/rt_tables
ip rule add from 192.168.57.1 table John #tried also adding the subnet here
ip route add default via 10.152.152.10 dev eth3 table John
ip route flush cache
答案1
您能否提供三个盒子上的iptables --list-rules
、ip addr
和的输出?当盒子 A 配置为通过 B 连接时,提供和也会很有帮助。ip route
traceroute <<internet host>>
traceroute C