iptables日常使用和NAT记录

4

服务器做路由NAT让上级路由跳入转发

场景

我在路由器192.168.50.1做了静态路由到192.168.50.236,192.168.50.236服务器网卡是ens33,还有另一个网卡是tunx他可以访问192.168.10.0/23网段, 在使用192.168.50.0/24下的设备,期望情况下 该网段下都可以 访问192.168.10.0/23到tunx网卡并返回数据

GPT:

iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o tunx -j MASQUERADE

夜老师:

iptables -t nat -A POSTROUTING -s 192.168.50.0/24 ! -d 192.168.50.0/24 -j MASQUERADE

只要服务器上能访问到的网段,不需要指定接口,来自 192.168.50.0/24 和 去 192.168.50.0/24 的数据会自动 nat,系统自动寻找网卡

  • t nat: 指定要操作的表,这里仍然是 nat 表,用于配置网络地址转换规则。

  • A POSTROUTING: 一样,这个参数告诉 iptables 在 POSTROUTING 规则链的末尾添加一条规则,用于对出站数据包进行处理。

  • s 192.168.50.0/24: 同样是指定源地址过滤条件,限制了该规则只对源 IP 地址在 192.168.50.0/24 子网范围内的数据包生效。

  • ! -d 192.168.50.0/24: 这部分是新的。! 表示逻辑取反,d 192.168.50.0/24 指定了目标地址过滤条件,限制了该规则不应用于目标 IP 地址在 192.168.50.0/24 子网范围内的数据包。换句话说,这条规则将不会影响到发往本地网络的数据包,而只会对发往其他网络的数据包进行处理。

  • j MASQUERADE: 一样,这里的动作是 MASQUERADE,告诉 iptables 对匹配的数据包执行 NAT 操作,将其源地址修改为此计算机的 IP 地址,以允许局域网内的主机通过 Linux 主机访问互联网。