在 CentOS 上出现“防火墙连接慢”(例如 SSH 连接慢、服务访问卡顿)通常不是防火墙本身处理慢,而是与 firewalld / iptables 规则、DNS 解析、连接跟踪(conntrack) 等有关。下面按最常见原因逐一说明。
CentOS 默认开启:
sshd 的 UseDNS yes# 修改 ssh 配置
vi /etc/ssh/sshd_config
改为:
UseDNS no
GSSAPIAuthentication no
重启:
systemctl restart sshd
✅ 这是 90% 连接慢的根因
log 规则(非常慢)firewall-cmd --list-all
firewall-cmd --list-rich-rules
firewall-cmd --add-rich-rule='... log ...'dmesg | grep conntrack
cat /proc/sys/net/netfilter/nf_conntrack_count
cat /proc/sys/net/netfilter/nf_conntrack_max
sysctl -w net.netfilter.nf_conntrack_max=655360
永久:
echo "net.netfilter.nf_conntrack_max=655360" >> /etc/sysctl.conf
sysctl -p
systemctl status firewalld
journalctl -u firewalld
CentOS 8+:
nftablesiptables 会冲突firewall-cmd --backend
getenforce
如为 Enforcing,可临时测试:
setenforce 0
UseDNS nolog 规则我可以直接给你对应配置命令。