iptables日常使用和NAT记录
服务器做路由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 主机访问互联网。