others linux服务器运维 django3 监控 k8s golang 数据库 大数据 前端 devops 理论基础 java oracle 运维日志

centos7 iptables 配置dnat

访问量:2 创建时间:2025-12-20

centos7 的firewalld与iptables不是一个服务。

在 CentOS 7 系统中,iptables 和 firewalld 是两种常用的防火墙管理工具,它们各自有不同的特点和用途。了解它们之间的关系和如何共存非常重要,尤其是在配置和管理防火墙规则时。

#关闭firewalld
systemctl stop firewalld
systemctl disable firewalld

注意iptables规则,无论firewalld与iptables服务是否启动都可以配置临时规则,但是如果这两个服务关闭,临时规则会清空。如果这两个服务关闭时配置了iptables规则,服务启动后,临时规则会清空,加载文件中的规则。

启动iptables服务

systemctl start iptables
systemctl enable iptables
###也可以通过service  iptables start启动;service iptables enable开机启动

设置链的默认规则

iptables -P INPUT DROP
iptables -P INPUT ACCEPT
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

需求将本机访问192.168.72.100的请求数据包目标地址转换为192.168.72.116 ;此需求常用于网络穿透。

iptables -t nat -A OUTPUT -d 192.168.72.100  -j DNAT --to 192.168.72.116

保存规则,系统默认配置文件路径/etc/sysconfig/iptables

[root@localhost ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables: [  OK  ]

另一个保存方式,可以保存到不同的位置。

[root@localhost ~]# iptables-save > /etc/sysconfig/iptables

目标地址转换。

iptables -t nat -A PREROUTING -p tcp -d 192.168.72.100 --dport 80 -j DNAT --to-destination 192.168.1.100:80
iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.100 --dport 80 -j MASQUERADE

查看规则,iptables -L -n查看filter规则。iptables -L -n -t nat 查看nat规则。

[root@localhost ~]# iptables  -L  -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@localhost ~]# iptables  -L  -n -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
[root@localhost ~]# iptables  -L  -n -t filter
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

清空规则

#不加-t 默认清空filter规则iptables -F  与iptables -F  -t  filter相同
iptables -F 

#清空nat规则,-t   nat指定
[root@localhost ~]# iptables -t nat -L -n
[root@localhost ~]# iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination   
[root@localhost ~]# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -p tcp -m tcp --dport 80 -j DROP
[root@localhost ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@localhost ~]# iptables -D INPUT 1
[root@localhost ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination      

按顺序插入删除规则

[root@localhost ~]# iptables -D INPUT 1
[root@localhost ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

###-I插入,-I INPUT 插入INPUT链。 后面跟数字的话表示插入第几行
[root@localhost ~]# iptables -I INPUT -p tcp -m tcp --dport 80  -j ACCEPT
[root@localhost ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@localhost ~]# iptables -I INPUT 2 -p tcp -m tcp --dport 880  -j ACCEPT
[root@localhost ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:880
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@localhost ~]# iptables -I INPUT 1 -p tcp -m tcp --dport 8880  -j ACCEPT

########注意80端口第一个规则为ACCEPT,后面的DROP规则就不生效了,第一条生效。
[root@localhost ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:8880
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:880
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination    
登陆评论: 使用GITHUB登陆