CentOS系统信息查看与防火墙管理命令详解

发布时间:2026/7/18 6:18:00
CentOS系统信息查看与防火墙管理命令详解 1. CentOS系统信息查看命令大全作为Linux系统管理员掌握CentOS系统信息查看命令是基本功。这些命令能帮助我们快速了解服务器硬件配置、系统版本、运行状态等关键信息。下面我整理了最常用的系统信息查看命令并附上实际使用案例。1.1 系统版本与内核信息要查看CentOS系统版本最直接的方法是cat /etc/centos-release这个命令会返回类似CentOS Linux release 7.9.2009 (Core)的信息。如果想获取更详细的内核版本信息可以使用uname -a输出示例Linux server1 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux其中包含了内核版本、主机名、处理器架构和编译日期等信息。1.2 CPU与内存信息查看CPU信息lscpu这个命令会显示CPU架构、核心数、线程数、缓存大小等详细信息。如果只需要简单的核心数统计nproc查看内存信息最常用的命令是free -h输出示例total used free shared buff/cache available Mem: 7.7G 1.2G 5.8G 16M 684M 6.2G Swap: 2.0G 0B 2.0G-h参数表示以人类可读的格式显示GB/MB。1.3 磁盘与文件系统信息查看磁盘分区和挂载信息df -h输出示例Filesystem Size Used Avail Use% Mounted on /dev/vda1 50G 5.3G 42G 12% / devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm查看磁盘设备详细信息lsblk这个命令会显示所有块设备及其分区关系对于理解磁盘布局非常有帮助。1.4 网络信息查看查看IP地址和网络接口ip addr或者使用老式的ifconfig查看路由表ip route查看网络连接状态ss -tulnp这个命令比netstat更高效显示所有TCP/UDP监听端口和对应的进程。1.5 系统运行时间与负载查看系统运行时间和平均负载uptime输出示例15:30:45 up 25 days, 3:15, 2 users, load average: 0.08, 0.03, 0.05这个命令同时显示了当前时间、运行时长、登录用户数和1/5/15分钟的平均负载。查看登录用户who2. CentOS防火墙管理命令详解CentOS的防火墙管理在不同版本中有显著差异。CentOS 7及以上使用firewalld而CentOS 6及以下使用iptables。下面我将分别介绍这两种防火墙的管理方法。2.1 CentOS 7的firewalld管理2.1.1 服务状态管理查看防火墙状态systemctl status firewalld启动/停止/重启防火墙服务systemctl start firewalld systemctl stop firewalld systemctl restart firewalld设置开机自启systemctl enable firewalld禁用开机自启systemctl disable firewalld2.1.2 端口管理开放TCP端口以80端口为例firewall-cmd --zonepublic --add-port80/tcp --permanent开放UDP端口firewall-cmd --zonepublic --add-port53/udp --permanent移除端口firewall-cmd --zonepublic --remove-port80/tcp --permanent查看已开放的端口firewall-cmd --zonepublic --list-ports2.1.3 服务管理firewalld预定义了许多服务如http、https、ssh等可以直接允许这些服务firewall-cmd --zonepublic --add-servicehttp --permanent查看所有预定义服务firewall-cmd --get-services2.1.4 重载配置每次修改规则后需要重载防火墙配置使更改生效firewall-cmd --reload2.2 CentOS 6的iptables管理2.2.1 基本命令查看当前规则iptables -L -n -v清空所有规则iptables -F保存规则重启后不丢失service iptables save2.2.2 端口管理允许80端口TCP连接iptables -A INPUT -p tcp --dport 80 -j ACCEPT允许特定IP访问22端口iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT拒绝所有其他连接iptables -A INPUT -j DROP2.2.3 服务管理启动/停止/重启iptables服务service iptables start service iptables stop service iptables restart3. 防火墙配置实战案例3.1 案例1配置Web服务器防火墙假设我们需要配置一台运行Nginx的Web服务器需要开放80和443端口# CentOS 7 firewall-cmd --zonepublic --add-port80/tcp --permanent firewall-cmd --zonepublic --add-port443/tcp --permanent firewall-cmd --reload # CentOS 6 iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT service iptables save3.2 案例2限制SSH访问为了提高安全性我们可以限制只有特定IP能通过SSH连接服务器# CentOS 7 firewall-cmd --zonepublic --remove-servicessh --permanent firewall-cmd --zonepublic --add-rich-rulerule familyipv4 source address192.168.1.100 service namessh accept --permanent firewall-cmd --reload # CentOS 6 iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j DROP service iptables save3.3 案例3配置数据库服务器对于MySQL数据库服务器通常只需要开放3306端口给应用服务器# CentOS 7 firewall-cmd --zonepublic --add-rich-rulerule familyipv4 source address192.168.1.200 port protocoltcp port3306 accept --permanent firewall-cmd --reload # CentOS 6 iptables -A INPUT -p tcp -s 192.168.1.200 --dport 3306 -j ACCEPT iptables -A INPUT -p tcp --dport 3306 -j DROP service iptables save4. 常见问题与解决方案4.1 防火墙规则不生效可能原因及解决方法忘记重载防火墙firewalld需要--reloadiptables需要service iptables save规则冲突后面的规则覆盖了前面的规则服务未正确启动检查systemctl status firewalld或service iptables status4.2 误操作导致SSH连接断开如果错误地封锁了SSH端口导致无法连接可以通过以下方式恢复如果是云服务器通过控制台的VNC连接登录如果是物理服务器直接连接显示器操作紧急情况下可以重启服务器防火墙规则会重置不推荐4.3 端口冲突问题当发现端口被占用时可以使用以下命令查找占用端口的进程ss -tulnp | grep 端口号然后根据情况终止冲突进程或修改服务配置。4.4 防火墙日志查看查看firewalld日志journalctl -u firewalld -f查看iptables日志需要先配置日志规则grep -i firewall /var/log/messages5. 高级防火墙配置技巧5.1 使用富规则(Rich Rules)firewalld的富规则提供了更灵活的配置方式例如firewall-cmd --zonepublic --add-rich-rulerule familyipv4 source address192.168.1.0/24 service namehttp log prefixhttp_access levelinfo accept --permanent这条规则允许192.168.1.0/24网段访问HTTP服务并记录访问日志。5.2 端口转发将外部端口转发到内部服务器的不同端口firewall-cmd --zonepublic --add-forward-portport8080:prototcp:toport80:toaddr192.168.1.100 --permanent firewall-cmd --reload5.3 自定义区域创建自定义防火墙区域firewall-cmd --new-zonemyzone --permanent firewall-cmd --reload firewall-cmd --zonemyzone --add-source192.168.2.0/24 --permanent firewall-cmd --zonemyzone --add-port3306/tcp --permanent firewall-cmd --reload5.4 临时规则与永久规则firewall-cmd命令默认只修改运行时配置重启后会丢失。要永久生效需要添加--permanent参数然后reload。临时开放端口测试用firewall-cmd --zonepublic --add-port8080/tcp永久开放端口firewall-cmd --zonepublic --add-port8080/tcp --permanent firewall-cmd --reload5.5 使用直接规则对于firewalld不支持的复杂规则可以使用直接规则firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport 8000 -m conntrack --ctstate NEW -m recent --set --name web --rsource firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport 8000 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 10 --name web --rsource -j DROP这两条规则实现了对8000端口的连接速率限制。