iptables NAT规则设置

参考:
https://blog.csdn.net/aoli_shuai/article/details/86288838
https://blog.csdn.net/u011537073/article/details/82685586

了解iptables 结构

iptables的结构:iptables -> Tables -> Chains -> Rules. 即tables由chains组成,而chains又由rules组成

iptables NAT规则设置_第1张图片
image.png

Filter

Filter表示iptables的默认表,因此如果你没有自定义表,那么就默认使用filter表

  • INPUT链 – 处理来自外部的数据。
  • OUTPUT链 – 处理向外发送的数据。
  • FORWARD链 – 将数据转发到本机的其他网卡设备上。

NAT

  • PREROUTING链 – 处理刚到达本机并在路由转发前的数据包。它会转换数据包中的目标IP地址(destination ip address),通常用于DNAT(destination NAT)。
  • POSTROUTING链 – 处理即将离开本机的数据包。它会转换数据包中的源IP地址(source ip address),通常用于SNAT(source NAT)。
  • OUTPUT链 – 处理本机产生的数据包。

Mangle

Mangle表用于指定如何处理数据包。它能改变TCP头中的QoS(Quality of Service,服务质量,指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术。)

  • PREROUTING
  • OUTPUT
  • FORWARD
  • INPUT
  • POSTROUTING

Raw

用于处理异常

  • PREROUTING chain
  • OUTPUT chain
iptables NAT规则设置_第2张图片
image.png
iptables NAT规则设置_第3张图片
image.png

客户端和web服务端是无法单独通行的,nat server 有两块网卡,通过在nat server中设置iptables 规则,使得能进行http请求

在nat server 中,先更改配置文件,/etc/sysctl.conf 中改为
net.ipv4.ip_forward = 1
修改完成后,命令行sysctl -p 让其全部执行生效

添加iptables规则

iptables -t(built-in tables which are corresponding to different traffic rules) nat()

iptables -t nat -A POSTROUTING -s 10.10.177.0/24 -j SNAT --to 10.10.188.232

在client机器里面加入一条路由,确保所有的数据包都从10.10.177.232中出去
可以再网卡配置文件里面设置,也可以使用route命令进行设置

route add 0.0.0.0 gw 10.10.177.232
iptables NAT规则设置_第4张图片
image.png

nat server设置iptables规则

iptables -t nat -A PREROUTING -d 10.10.188.232 -p tcp --dport 80 -j DNAT --to 10.10.177.233:80

你可能感兴趣的:(iptables NAT规则设置)