firewalld
查看状态
systemctl status firewalld
禁用
systemctl stop firewalld
systemctl disable firewalld
启用
systemctl start firewalld
查看所有
sudo firewall-cmd --zone=public --list-all
查看端口
返回 yes 代表开启成功
firewall-cmd --zone=public --query-port=80/tcp
放行端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent
删除端口
返回 success 代表成功
firewall-cmd --zone=public --remove-port=80/tcp --permanent #关闭80端口
firewall-cmd --zone=public --remove-port=8289/tcp --permanent
重新载入
返回 success 代表成功
firewall-cmd --reload
iptables
查看规则
# 查看所有规则(带序号)
iptables -L -n --line-numbers
# 只看 INPUT 规则
iptables -L INPUT -n --line-numbers
# 清空所有规则(慎用!)
iptables -F
放行 / 禁止 端口
# 放行 80 端口(HTTP)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 放行 443 端口(HTTPS)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 放行 22 端口(SSH,千万别漏!)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 禁止某个端口(例如 3306)
iptables -A INPUT -p tcp --dport 3306 -j DROP
按 IP 限制
# 允许单个 IP 访问(信任IP)
iptables -A INPUT -s 192.168.1.100 -j ACCEPT
# 禁止单个IP
iptables -A INPUT -s 112.112.112.112 -j DROP
# 禁止 IP 段
iptables -A INPUT -s 112.112.112.0/24 -j DROP
删除规则
# 先查看规则序号
iptables -L INPUT --line-numbers
# 删除第 2 条规则
iptables -D INPUT 2
保存规则
# CentOS/RHEL
service iptables save
# Ubuntu/Debian
iptables-save > /etc/iptables/rules.v4
一切简单自然的事物都是美好的。