Ubuntu 14.04.2 VM,IP 为 1.2.3.4 和 1.2.3.5。
我尝试将 1.2.3.5 的所有流量路由到另一个地址 1.2.3.189(位于另一台服务器上,网络上的任何机器都可以访问)。
在/etc/sysctl.conf:我启用了设置net.ipv4.ip_forward = 1
我用这个脚本重置了一切
echo "Stopping firewall and allowing everyone..." iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT
然后我运行这个脚本来处理流量
sudo iptables -t nat -A PREROUTING -d 1.2.3.5 -j DNAT --to-destination 1.2.3.189
ufw 已禁用,我想不出还有什么其他办法。
理想情况下(以及将来),流量将被发送到连接到不同网络(10.0.0.189)的第二个 NIC,但我认为让我们先从最简单的开始。
答案1
1.2.3.5
由于和似乎1.2.3.189
在同一个子网,服务器1.2.3.189
将尝试使用自己的 IP(第 2 层)进行回复。
您还应该SNAT
从返回数据包1.2.3.189
到1.2.3.5
添加:
iptables -t nat -A POSTROUTING -s 1.2.3.189 -j SNAT --to-source 1.2.3.5