iptables配置实现NAT(随手记)

这里写目录标题

  • iptables配置NAT
    • [0. 环境准备](#0. 环境准备)
    • [1. 防火墙配置(lb01)](#1. 防火墙配置(lb01))
    • [2. 内网服务器配置(front)](#2. 内网服务器配置(front))
    • 测试

iptables配置NAT

0. 环境准备

  • lb01: 作为防火墙,使用iptables实现nat
  • front: 作为内网应用,关闭公网网卡(ens33),使用内网网卡与lb01互通,实现经过防火墙的访问外网(ens37)

1. 防火墙配置(lb01)

shell 复制代码
# 编辑iptables
# 这条命令的作用是将所有从10.0.0.0/24网络出发的数据包的源IP地址改为192.168.100.155
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT --to-source 192.168.100.155



# 开启内核转发(nat必须开启,不然不会实现一台主机内的路由转发
# 永久生效
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p
  • iptables:这是用来设置、维护和检查Linux内核防火墙的命令行工具。
  • -t nat:指定要操作的是nat表。iptables有多个表,每个表包含不同的链,nat表用于处理网络地址转换。
  • -A POSTROUTING:-A表示向链中添加一条规则,POSTROUTING链在所有数据包离开本机之前应用,这是设置SNAT的理想位置。
  • -s 10.0.0.0/24:指定源地址为10.0.0.0/24网络,即所有来自这个网络的出站数据包都会受到这条规则的影响。
  • -j SNAT:-j表示跳转目标,SNAT表示执行源地址转换。
  • --to-source 192.168.100.155:指定转换后的源IP地址为192.168.100.155。这意味着所有从10.0.0.0/24网络出发的数据包,在经过NAT转换后,它们的源IP地址都会被改为192.168.100.155。

若公网ip不固定,也可使用-j MASQUERADE

iptables -t nat -A POSTROUTING -s 内网网段 -j MASQUERADE

2. 内网服务器配置(front)

shell 复制代码
# ens37(内网网卡)添加网关
[root@front01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens37
[root@front01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens37
TYPE=Ethernet
BOOTPROTO=static
NAME=ens37
DEVICE=ens37
ONBOOT=yes
IPADDR=10.0.0.148
GATEWAY=10.0.0.155 # 添加此行,指向启用NAT的服务器内网ip
NETMASK=255.255.255.0

# 关闭公网网卡
nmcli connection down ens33

#可以使用ip route或route -n查看默认路由
[root@front01 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.155      0.0.0.0         UG    100    0        0 ens37
10.0.0.0        0.0.0.0         255.255.255.0   U     100    0        0 ens37

测试

  • 无nat规则

    ping不通外网

  • 有nat规则

    能ping通外网

相关推荐
Sylvia33.1 分钟前
LOL实时数据接入深度解析:从WebSocket到完整数据模型
java·网络·python·websocket·网络协议
梦想不只是梦与想2 分钟前
Web 服务器网关协议:ASGI 和 WSGI
服务器·python·fastapi
智恒百亿6 分钟前
8 卡 RTX 5090 服务器深度实测:256GB 显存能否支撑 70B 模型微调?选型参考
大数据·运维·服务器·人工智能
鼹鼠SDN3 小时前
没有公网 IP,如何在外面访问家里的打印机、摄像头和整个局域网?
网络·网络协议·tcp/ip
志栋智能5 小时前
超自动化运维如何支持合规审计?
运维·自动化
小诗懂技术6 小时前
【网络通信UDP】基础 进程间不同主机的通信
运维·服务器·网络
weixin_440730506 小时前
selenium实战记录-从登陆-首页-进入应用流程用例三种参数化+日志+报告
服务器·selenium·测试工具
名字还没想好☜6 小时前
Docker 容器安全加固实战:非 root、只读根文件系统、drop capabilities 与最小攻击面
运维·安全·docker·容器·kubernetes
琥珀色糖6 小时前
Linux守护进程
linux·终端·守护进程·会话·进程组
鹤落晴春6 小时前
有状态应用 vs 无状态应用
运维·云原生·k8s