
1. CentOS系统信息查看命令大全作为Linux系统管理员掌握CentOS系统信息查看命令是基本功。这些命令能帮助我们快速了解服务器状态、排查问题以及进行性能优化。下面我整理了CentOS 6/7/8各版本通用的系统信息查看命令都是我在实际运维工作中高频使用的。1.1 基础系统信息查看系统版本信息最常用的命令cat /etc/redhat-release # 查看系统具体版本 uname -a # 查看内核版本和系统架构 hostnamectl # CentOS 7/8专用显示主机名和系统信息这几个命令组合使用可以全面了解系统版本。特别是hostnamectl命令在CentOS 7/8上会显示更详细的系统信息包括操作系统架构、内核版本、虚拟化平台等。1.2 硬件信息查询要了解服务器硬件配置这几个命令必不可少lscpu # 查看CPU信息 free -h # 查看内存使用情况(-h参数人性化显示) lsblk # 查看磁盘分区情况 df -h # 查看磁盘空间使用情况 dmidecode -t memory # 查看内存详细信息特别注意df -h命令我在实际工作中经常遇到磁盘空间不足的情况这个命令能快速定位问题。如果发现挂载点异常可以检查/etc/fstab文件配置。1.3 网络信息查看网络配置信息查看命令ip addr # 查看IP地址和网卡信息(替代ifconfig) netstat -tulnp # 查看端口监听情况 ss -tulnp # netstat的替代命令效率更高 route -n # 查看路由表在CentOS 7/8中ifconfig命令可能默认未安装建议使用ip addr替代。ss命令比netstat性能更好特别是在连接数多的情况下。1.4 系统运行状态监控实时监控系统状态的命令top # 实时系统监控 htop # top的增强版(需额外安装) vmstat 1 5 # 查看系统资源使用情况 iostat -x 1 5 # 查看磁盘IO情况这些命令对性能调优特别有用。我习惯用htop替代top因为它支持鼠标操作和颜色显示更直观。安装命令yum install htop -y。2. CentOS防火墙配置全指南CentOS的防火墙管理在不同版本有较大差异CentOS 6使用iptables而CentOS 7/8使用firewalld。下面分别介绍各版本的配置方法。2.1 CentOS 6防火墙(iptables)配置2.1.1 基本命令service iptables status # 查看防火墙状态 service iptables start # 启动防火墙 service iptables stop # 停止防火墙 service iptables restart # 重启防火墙2.1.2 端口开放示例开放80端口iptables -I INPUT -p tcp --dport 80 -j ACCEPT service iptables save # 保存规则 service iptables restart # 重启生效CentOS 6的iptables规则需要手动保存否则重启后会丢失。我遇到过多次因为忘记保存规则导致服务无法访问的情况。2.2 CentOS 7/8防火墙(firewalld)配置2.2.1 服务管理命令systemctl status firewalld # 查看防火墙状态 systemctl start firewalld # 启动防火墙 systemctl stop firewalld # 停止防火墙 systemctl enable firewalld # 设置开机自启 systemctl disable firewalld # 禁用开机自启2.2.2 常用操作命令firewall-cmd --state # 查看防火墙状态 firewall-cmd --list-all # 查看所有规则 firewall-cmd --reload # 重载配置(不中断连接) firewall-cmd --complete-reload # 完全重载(中断连接)2.2.3 端口开放示例永久开放80端口firewall-cmd --zonepublic --add-port80/tcp --permanent firewall-cmd --reload这里有几个关键点需要注意--permanent参数表示永久生效不加则重启后失效修改规则后必须reload才能生效生产环境建议先不加--permanent测试确认无误后再永久添加2.3 防火墙高级配置2.3.1 服务管理firewalld支持以服务为单位管理规则比直接操作端口更安全firewall-cmd --add-servicehttp --permanent # 开放http服务 firewall-cmd --remove-serviceftp --permanent # 禁止ftp服务2.3.2 区域管理firewalld使用区域(zone)概念不同区域可以设置不同规则firewall-cmd --get-default-zone # 查看默认区域 firewall-cmd --set-default-zonework # 设置默认区域 firewall-cmd --list-all-zones # 查看所有区域规则2.3.3 富规则(Rich Rules)复杂规则可以使用富规则语法firewall-cmd --add-rich-rulerule familyipv4 source address192.168.1.0/24 service namessh accept --permanent这条规则表示允许192.168.1.0/24网段访问SSH服务。3. 常见问题与解决方案3.1 端口开放后仍无法访问可能原因及解决方法防火墙规则未生效确保执行了reload操作SELinux限制临时禁用setenforce 0测试服务未监听正确IP检查服务绑定IP是否为0.0.0.0云服务器安全组限制检查云平台安全组规则3.2 firewalld和iptables冲突如果系统同时安装了firewalld和iptables可能导致规则混乱。建议只使用其中一种防火墙彻底禁用另一种systemctl stop iptables systemctl disable iptables3.3 防火墙规则备份与恢复备份当前规则iptables-save /root/iptables.backup # iptables备份 firewall-cmd --runtime-to-permanent # firewalld临时转永久恢复规则iptables-restore /root/iptables.backup4. 实用技巧与经验分享4.1 快速诊断网络问题我常用的排查顺序ping测试基础连通性telnet IP端口测试端口可达性firewall-cmd --list-all检查防火墙规则netstat -tulnp检查服务监听状态4.2 生产环境防火墙配置建议使用白名单而非黑名单策略限制SSH访问源IP为不同服务创建单独区域(zone)定期审核防火墙规则变更前先在测试环境验证4.3 性能优化技巧大量规则时使用--direct选项直接添加iptables规则合并相似规则减少规则数量将高频访问的规则放在前面使用ipset管理大量IP地址我在实际工作中发现当规则超过500条时firewalld的性能会明显下降这时可以考虑使用--direct选项直接管理iptables规则或者使用ipset优化。