检查服务器防火墙设置的命令是什么?

Linux 系统(常见防火墙工具)

1. iptables(传统防火墙,适用于 CentOS 6、Ubuntu 等)

  • 查看当前防火墙规则
    iptables -L -n -v  # 列出所有规则(-n 不解析域名,-v 显示详细信息)
    iptables -L -n -v -t nat  # 查看 NAT 规则(可选)
    
  • 检查 3306 端口是否开放(以 MySQL 端口为例):
    iptables -L INPUT -n | grep 3306
    

2. firewalld(CentOS 7+、RHEL 7+ 等)

  • 查看防火墙状态
    systemctl status firewalld  # 确认防火墙是否运行
    firewall-cmd --state  # 快速查看状态(running 或 not running)
    
  • 查看当前开放的端口和服务
    firewall-cmd --list-all  # 查看所有区域的规则(默认区域为 public)
    firewall-cmd --list-ports  # 仅查看开放的端口
    
  • 检查 3306 端口是否开放
    firewall-cmd --query-port=3306/tcp
    

3. ufw(Ubuntu 等 Debian 系系统)

  • 查看防火墙状态
    ufw status  # 简洁状态(显示规则是否启用及开放的端口)
    ufw status verbose  # 详细状态(包含规则的源、目标等)
    
  • 检查 3306 端口是否开放
    ufw status | grep 3306
    

云服务器额外检查(如 AWS、阿里云)

即使服务器本地防火墙开放了端口,云服务商的 安全组 / 网络 ACL 可能仍限制了访问,需登录对应控制台:
  • AWS EC2:检查实例的安全组规则,确保入站规则允许 3306 端口来自目标 IP 或网段(如 0.0.0.0/0 允许所有)。
  • 阿里云 ECS:在 安全组 中检查入方向规则是否放行 3306 端口。

临时开放端口(示例,以 3306 为例)

1. iptables 临时开放端口(重启后失效)

iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

2. firewalld 永久开放端口(需重载配置)

firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload  # 生效配置

3. ufw 开放端口

ufw allow 3306/tcp

posted on 2025-04-18 11:26  数据库那些事儿  阅读(87)  评论(0)    收藏  举报