下面以 CentOS 6 / 7(iptables 方式) 为主,说明如何配置 iptables。
⚠️ CentOS 8 以后默认使用
nftables,iptables 已被弃用,如需 iptables 兼容方式,请使用iptables-legacy或 firewalld。
rpm -qa | grep iptables
iptables -L -n -v
service iptables start
chkconfig iptables on
vi /etc/sysconfig/iptables
示例规则(允许 SSH、HTTP、HTTPS):
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
# 允许回环
-A INPUT -i lo -j ACCEPT
# 允许已建立连接
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# SSH
-A INPUT -p tcp --dport 22 -j ACCEPT
# HTTP / HTTPS
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
# ICMP(ping)
-A INPUT -p icmp -j ACCEPT
COMMIT
service iptables restart
systemctl stop firewalld
systemctl disable firewalld
yum install -y iptables-services
systemctl start iptables
systemctl enable iptables
vi /etc/sysconfig/iptables
内容与 CentOS 6 类似。
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
service iptables save
或:
iptables-save > /etc/sysconfig/iptables
iptables -L -n --line-numbers
iptables -D INPUT 3
iptables -F
iptables -X
✅ 默认策略:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
✅ 一定要先放行 SSH 端口,防止被锁在服务器外
✅ 使用 iptables-save 保存规则
✅ 生产环境推荐用 firewalld 或 nftables
可以,但:
update-alternatives --config iptables
选择 iptables-legacy
如果你愿意,我可以:
只需告诉我你的 CentOS 版本和使用场景 ✅