Linux防火墙规则需理解匹配顺序、状态机制与持久化逻辑:规则自上而下匹配,限制性规则须前置;必须放行RELATED/ESTABLISHED连接;--permanent仅保存配置,须reload或save才生效;firewalld需明确zone、接口与服务关系。

Linux防火墙规则不是写完就生效的配置清单,而是需要理解匹配逻辑、执行顺序和状态机制的一套运行策略。新手常因忽略底层原理,导致服务不通、规则失效或安全形同虚设。
防火墙按从上到下的顺序逐条匹配,一旦命中就立即执行动作(ACCEPT/DROP/REJECT),不再继续检查后续规则。比如:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT,再写 iptables -A INPUT -s 192.168.1.100 -j DROP —— 后者对SSH完全无效,因为流量早已被前面的规则放行-I插入到链首,而非-A追加到末尾--permanent后必须firewall-cmd --reload才真正载入顺序现代防火墙默认启用连接跟踪(conntrack),但新手常漏配“已建立连接”的放行规则,结果自己连不上服务器。
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT(或新版用-m conntrack --ctstate)--direct规则或关闭了默认zone策略,就得自己补上状态相关逻辑ss -tn或netstat -tn确认连接是否处于ESTABLISHED状态,再比对规则是否覆盖很多命令加了--permanent就以为万事大吉,其实只是写进配置文件,没重载就不会跑在内存里。
--add-port=80/tcp --permanent只存到/etc/firewalld/zones/public.xml,必须跟firewall-cmd --reload
service iptables save(CentOS 6)或iptables-save > /etc/sysconfig/iptables(CentOS 7+)才是持久化,重启后靠systemctl enable iptables加载firewall-cmd --list-ports或iptables -L -n看运行中的规则,而不是只查配置文件firewalld用zone管理策略,但新手常把public、internal、trusted混用,或误以为“开了服务就等于开了端口”。
firewall-cmd --add-service=http本质是打开80/tcp + 对应的富规则,但前提是当前zone(如public)已激活且该接口归属此zonefirewall-cmd --get-zone-of-interface=eth0;查活跃zone:firewall-cmd --get-active-zones
基本上就这些。规则本身不复杂,容易踩坑的地方都在逻辑衔接和操作闭环上。
以上就是Linux防火墙规则如何编写_常见误区解析避免新手踩坑【指导】的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号