A机器上打开路由转发 echo "1">/proc/sys/net/ipv4/ip_forward
想要使用nat这个表,想要使用网络的转发,必须要修改一下内核的参数,默认这个文件的内容是0也就是没有
[root@rocky8 ~]# cat /proc/sys/net/ipv4/ip_forward
0
修改成1,这叫做打开端口转发。
[root@rocky8 ~]# echo "1" > !$
echo "1" > /proc/sys/net/ipv4/ip_forward
[root@rocky8 ~]# cat /proc/sys/net/ipv4/ip_forward
1
增加一条规则,然后就可以上网了。
A上执行 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
[root@rocky8 ~]# iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
[root@rocky8 ~]# iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- * ens33 192.168.100.0/24 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
这个规则就是想让100.0上网,给它做一个欺骗
数据包从B到A需要一个网关。
在B机器执行route -n查看网关
route add default gw 192.168.100.1设置默认网关。
ping 一下外网
这个就说明它现在可以和公网通信了,设置下DNS看看能不能联网。
vi /etc/resolv.conf
添加119.29.29.29
注释掉A机器的两条icmp规则
然后重启防火墙,再加下之前加的规则。
然后ping一下
在设置DNS,因为前面的配置已经配置完了情况下遇到了ping不通除了自己主机以外的外网ip,此时网络转发,欺骗,外网ip等配置项均没问题,此时检查到了规则,最终确认是/etc/sysconfi/iptables配置文件里面的两条icmp的原因注释掉即可。