client1通过node1访问Server1,将server1的访问源转换成node1另一个ip访问
iptables -t nat -A PREROUTING -d 192.168.4.11 -s 192.168.4.10 -p tcp --dport 33000 -j DNAT --to 192.168.2.100:3000
外部主机192.168.4.10发起对192.168.4.11的33000端口的访问请求映射到内网主机192.168.2.100的3000端口。在这种情况下,内网主机192.168.1.2看到的访问源IP是外部主机192.168.4.10
希望内网主机192.168.2.100看到的访问源IP是192.168.2.1,可以使用SNAT规则,将数据包的源IP地址进行修改。可以使用以下命令添加SNAT规则:
iptables -t nat -A POSTROUTING -d 192.168.2.100 -p tcp --dport 3000 -j SNAT --to-source 192.168.2.11
这样,当内网主机192.168.2.100收到来自外部主机192.168.4.10的数据包时,它会看到源IP地址是192.168.2.11
查看规则
查看所有规则:iptables -L
查看某个表的规则,例如NAT表:iptables -t nat -L
查看某个表某个链的规则,例如NAT表PREROUTING链:iptables -t nat -L PREROUTING
查看某个链的规则,例如INPUT链:iptables -L INPUT
查看具体的规则编号及内容:iptables -L INPUT --line-numbers
删除规则:
iptables -t 表名 -D 链名 规则编号
-t 表名 指定要操作的表,常见的表包括 filter、nat 和 mangle。
-D 链名 指定要删除规则的链的名称。
规则编号 是要删除的规则在链中的编号。
例如,如果要删除 nat 表中 PREROUTING 链中的第一条规则,可以使用以下命令:
iptables -t nat -D PREROUTING 1