CentOS高效配置服务器的实践指南
基础环境是服务器运行的基石,需优先完成以下配置:
/etc/sysconfig/network-scripts/ifcfg-ens33(网卡名以实际为准),设置BOOTPROTO=static、IPADDR(服务器IP)、NETMASK(子网掩码)、GATEWAY(网关)、DNS1=8.8.8.8(DNS服务器),重启网络服务使配置生效。配置前需通过ip addr show验证网卡状态、ping -c 4 www.baidu.com测试DNS解析、ping -c 4 114.114.114.114测试外网连通性,确保网络正常。hostnamectl set-hostname your_hostname设置易识别的主机名(如web-server-01),修改/etc/hosts文件添加127.0.0.1 your_hostname,避免软件因主机名解析失败报错。chrony服务(sudo yum install -y chrony),启动并设置开机自启(systemctl start chronyd; systemctl enable chronyd),强制同步时间(chronyc -a makestep),通过chronyc sources -v验证同步状态。时间准确可避免日志时序混乱、证书验证失败等问题。firewalld,开启服务并设置开机自启(systemctl start firewalld; systemctl enable firewalld)。按“默认拒绝入站,只开放必要端口”原则配置,例如允许SSH端口(firewall-cmd --zone=public --add-port=22/tcp --permanent),修改后重载规则(firewall-cmd --reload)。若习惯使用iptables,需先关闭firewalld(systemctl stop firewalld; systemctl disable firewalld),再安装iptables-services并配置规则。安全是服务器高效运行的前提,需采取以下措施:
ssh-keygen -t rsa),将公钥(id_rsa.pub)复制到服务器~/.ssh/authorized_keys文件中。修改/etc/ssh/sshd_config文件,设置PasswordAuthentication no、PermitRootLogin no(禁止root直接登录),限制访问IP(AllowUsers your_user@your_ip),重载SSH服务(systemctl reload sshd)。wheel组(usermod -aG wheel your_user),通过sudo执行需要root权限的命令(需提前配置/etc/sudoers文件,允许wheel组使用sudo)。/etc/selinux/config文件,设置SELINUX=permissive(仅记录违规行为,不阻止),然后重启服务器。若需保留SELinux,需通过semanage、setsebool等命令调整策略,例如允许Nginx访问80端口(semanage port -a -t http_port_t -p tcp 8080)。sudo yum update -y更新系统和所有已安装的软件包,修复安全漏洞。可设置定时任务(crontab -e添加0 3 * * * yum update -y >> /var/log/yum_update.log 2>&1),每天凌晨3点自动更新。性能优化需结合服务器用途(如Web服务器、数据库服务器)调整,以下是通用优化措施:
systemctl list-units --type=service列出所有服务,禁用不需要的服务(如firewalld、postfix,若不需要邮件服务),减少系统资源占用(systemctl stop service_name; systemctl disable service_name)。/etc/sysctl.conf文件,优化以下关键参数:net.ipv4.tcp_tw_reuse = 1(允许复用TIME-WAIT状态的连接,提升TCP并发能力)、net.core.somaxconn = 65535(增加TCP监听队列长度,避免连接被拒绝)、vm.swappiness = 10(降低Swap使用频率,优先使用物理内存)、vm.dirty_ratio = 10(当脏页占内存10%时触发刷盘,平衡性能与数据安全性)。修改后执行sysctl -p使配置生效。mkswap /dev/sdb1创建Swap分区,swapon /dev/sdb1启用,修改/etc/fstab文件(添加/dev/sdb1 swap swap defaults 0 0)实现开机自动挂载。同时,设置vm.swappiness=10(默认60),减少Swap使用。iostat -x 1监控磁盘I/O负载。调整文件系统挂载选项,在/etc/fstab中添加noatime,nodiratime(减少对磁盘的写入操作,提升读性能),例如/dev/sda1 / ext4 defaults,noatime,nodiratime 0 1。优化I/O调度器,通过echo deadline /sys/block/sda/queue/scheduler设置为deadline(适用于大多数场景,减少I/O等待时间)。/etc/sysctl.conf中添加net.ipv4.tcp_window_size = 1024000(增大TCP窗口大小,提升吞吐量)、net.ipv4.tcp_max_syn_backlog = 8192(增加SYN队列长度,应对高并发连接)、net.core.netdev_max_backlog = 2000(增加网络设备队列长度,避免丢包)),修改后执行sysctl -p生效。启用网卡多队列(ethtool -l eth0查看是否支持多队列,ethtool -L eth0 combined 8设置多队列,提升网络吞吐量)。自动化管理与监控可快速定位问题、减少人工干预:
ansible-playbook playbook.yml命令在多台服务器上执行,减少手动操作。top(实时查看CPU、内存使用情况)、htop(更直观的进程管理)、iostat(监控磁盘I/O)、vmstat(监控系统整体性能)等工具实时查看系统状态。设置日志集中管理(如ELK Stack),收集和分析系统日志、应用日志,快速定位故障。定期清理日志文件(journalctl --vacuum-size=100M清理Journal日志,保留100MB以内;rm -rf /var/log/*.gz清理压缩的旧日志),避免日志占用过多磁盘空间。