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更新系統和所有已安裝的軟件包,修復安全漏洞??稍O置定時任務(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清理壓縮的舊日志),避免日志占用過多磁盤空間。