我有两台装有 CentOS7 的虚拟机:
网卡:内部网络 IP
192.168.1.10
带网关:192.168.1.254 enp0s3(客户端 1)(无直接连接到互联网)网卡:内部网络 IP
192.168.1.254
enp0s3 和 NAT IP10.0.3.15
enp0s8 (客户端2) (有互联网连接) (无网关)
目标是能够使用 Client1 ping 到例如 google.com,Client1 没有直接的互联网连接,但是有由 client2 转发的连接。
我如何使用 iptables 来实现这一点?
答案1
很简单。您必须在要执行 NAT 的机器上启用转发。您必须为此做两件事:
echo 1 > /proc/sys/net/ipv4/ip_forward
和
iptables -P FORWARD ACCEPT
然后伪装输出到互联网执行以下操作:
iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE
我们假设您没有其他与此冲突的规则,并且客户端 2 可以访问互联网。您可以在执行此操作之前清除所有规则,iptables -F
然后iptables -t nat -F
启动我之前设置的规则。