Linux防火墙规则核心是“匹配-动作”逻辑:先定义流量特征(源/目的IP、端口、协议等),再执行ACCEPT或DROP/REJECT;iptables与nftables底层一致仅语法不同;需明确规则流向(PREROUTING→INPUT/FORWARD/OUTPUT→POSTROUTING)及各链职责,按方向匹配对应链;每条规则须完整指定协议、源地址、目标端口/类型和动作;规则自上而下匹配,首条命中即执行,顺序至关重要;默认策略为兜底但不可替代显式规则。

Linux防火墙规则的核心在于“匹配-动作”逻辑:先定义流量特征(源/目的IP、端口、协议等),再决定放行(ACCEPT)或拒绝(DROP/REJECT)。iptables(传统)和nftables(现代默认)底层思路一致,只是语法不同。掌握规则流向(PREROUTING → INPUT/FORWARD/OUTPUT → POSTROUTING)和链的职责,比死记命令更重要。
明确规则生效的链和时机
不是所有规则都写在INPUT里。关键看流量方向:
- 进来的连接(如别人访问你的Web服务)→ INPUT链
- 本机主动发出的请求(如curl外网)→ OUTPUT链
- 本机转发的包(如做路由器)→ FORWARD链
- PREROUTING和POSTROUTING主要用于NAT(端口映射、IP伪装),普通过滤很少用
写规则前必须想清楚这4个条件
每条有效规则都应覆盖以下要素,缺一不可:
- 协议类型:tcp / udp / icmp / all(不建议用all,太宽泛)
- 源地址:可以是单IP(192.168.1.100)、网段(192.168.1.0/24)或anywhere(0.0.0.0/0,慎用)
- 目标端口(对tcp/udp)或类型(对icmp):比如--dport 22(SSH),--sport 53(DNS响应端口)
- 动作:ACCEPT(放行)、DROP(静默丢弃)、REJECT(返回拒绝提示,适合调试)
顺序决定成败:规则从上到下逐条匹配
iptables/nftables按插入顺序执行,**第一条匹配就立即执行动作,不再往下看**。所以:
标签: linux 防火墙 路由器 端口 curl 路由 dns
还木有评论哦,快来抢沙发吧~