Linux服务器配置是确保系统稳定、安全运行的核心环节,涵盖系统初始化、网络配置、安全加固、服务部署及性能优化等多个维度,以下从实际操作出发,详细展开各环节的关键步骤与注意事项。
系统初始化配置
系统初始化是服务器配置的基础,需确保环境干净且符合后续需求,选择合适的Linux发行版,如CentOS(稳定型)或Ubuntu Server(易用型),并通过官方镜像安装最小化系统,避免预装不必要的软件包,安装完成后,更新系统软件包:CentOS使用yum update -y
,Ubuntu使用apt update && apt upgrade -y
,确保所有组件为最新版本,修复已知漏洞。
时区配置需与服务器所在时区一致,通过timedatectl set-timezone Asia/Shanghai
设置,并使用timedatectl status
验证,创建普通管理用户(避免直接使用root),执行useradd admin
创建用户,再通过passwd admin
设置密码,随后赋予sudo权限:编辑/etc/sudoers
文件,添加admin ALL=(ALL) NOPASSWD:ALL
,实现无密码sudo提权,为提升安全性,禁用root远程登录:编辑/etc/ssh/sshd_config
,将PermitRootLogin
改为no
,重启SSH服务systemctl restart sshd
。
网络配置
网络配置是服务器对外通信的基础,需根据场景选择静态IP或DHCP,生产环境推荐静态IP,避免IP变动导致服务中断,以CentOS为例,编辑网络配置文件/etc/sysconfig/network-scripts/ifcfg-ens33
,添加以下参数:
BOOTPROTO=static
(静态IP)IPADDR=192.168.1.100
(服务器IP)NETMASK=255.255.255.0
(子网掩码)GATEWAY=192.168.1.1
(网关)DNS1=8.8.8.8
DNS2=114.114.114.114
(DNS服务器)
保存后执行ifdown ens33 && ifup ens33
重启网络,使用ip addr
验证IP配置,Ubuntu系统则通过Netplan配置,编辑/etc/netplan/01-netcfg.yaml
,添加类似内容:network: version: 2 ethernets: ens33: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 114.114.114.114]
执行
netplan apply
生效,主机名配置通过hostnamectl set-hostname server01
永久设置,便于集群环境识别。
安全加固
安全加固是防范攻击的关键,需从防火墙、SSH、日志三方面入手,防火墙管理:CentOS默认使用firewalld,执行firewall-cmd --permanent --add-service=http https
开放Web端口,firewall-cmd --reload
重载配置;Ubuntu使用ufw,执行ufw allow 22/tcp
开放SSH端口,ufw enable
启用防火墙。
SSH安全需修改默认端口(如2222)、禁用密码登录(仅允许密钥认证),编辑/etc/ssh/sshd_config
,设置Port 2222
、PasswordAuthentication no
,并确保PubkeyAuthentication yes
,重启SSH服务,生成密钥对可通过ssh-keygen -t rsa
在客户端生成,将公钥(~/.ssh/id_rsa.pub
追加到服务器~/.ssh/authorized_keys
中,实现免密登录。
日志审计通过rsyslog记录系统操作,编辑/etc/rsyslog.conf
,添加auth.* /var/log/auth.log
(Ubuntu)或authpriv.* /var/log/secure
(CentOS),重启rsyslog服务systemctl restart rsyslog
,定期清理日志可通过logrotate
工具配置,避免日志占满磁盘。
核心服务部署
根据业务需求部署核心服务,常见包括Web服务器、数据库及容器化服务,以Nginx和MySQL为例:
- Nginx部署:CentOS执行
yum install -y nginx
,Ubuntu执行apt install -y nginx
,配置文件位于/etc/nginx/nginx.conf
,创建虚拟主机,在/etc/nginx/conf.d/
下新建example.conf
:server { listen 80; server_name example.com; root /var/www/html; index index.html; location / { try_files $uri $uri/ =404; } }
创建网站目录
mkdir -p /var/www/html
,上传测试文件后执行nginx -t
检查配置,systemctl restart nginx
启动服务。 - MySQL部署:CentOS执行
yum install -y mysql-server
,Ubuntu执行apt install -y mysql-server
,安全初始化通过mysql_secure_installation
设置root密码、匿名用户及远程访问权限(生产环境建议禁止远程root登录)。
性能优化
性能优化需结合硬件资源调整系统参数,文件句柄限制:编辑/etc/security/limits.conf
,添加* soft nofile 65535
* hard nofile 65535
,解决高并发场景下文件句柄不足问题,内核参数优化:编辑/etc/sysctl.conf
,添加以下内容:
fs.file-max = 655350 net.ipv4.tcp_max_syn_backlog = 65535 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 30
执行sysctl -p
生效,提升TCP连接处理能力,磁盘挂载优化:对于数据盘,添加noatime
参数到/etc/fstab
(如/dev/sdb1 /data ext4 defaults,noatime 0 0
),减少inode访问时间,提升I/O性能,定期清理可通过crontab
配置任务,如每周清理日志0 3 * * 0 find /var/log -name "*.log" -mtime +7 -delete
。
不同发行版网络配置对比表
配置项 | CentOS 7+ | Ubuntu 20.04+ |
---|---|---|
配置文件 | /etc/sysconfig/network-scripts/ifcfg-ens33 | /etc/netplan/01-netcfg.yaml |
静态IP设置 | BOOTPROTO=static, IPADDR=… | dhcp4: no, addresses: […] |
重启网络命令 | ifdown ens33 && ifup ens33 | netplan apply |
相关问答FAQs
Q1:如何查看Linux服务器当前系统负载?
A1:可通过top
命令实时查看负载平均值(第一行显示load average: 0.10, 0.20, 0.30
,分别代表1分钟、5分钟、15分钟负载),或使用uptime
命令直接输出负载信息,负载值建议不超过CPU核心数,若持续过高需排查进程或优化资源配置。
Q2:如何设置定时自动备份MySQL数据库?
A2:使用crontab
结合mysqldump
实现定时备份,首先创建备份脚本/usr/local/bin/mysql_backup.sh
如下:
#!/bin/bash date=$(date +%Y%m%d) mysqldump -u root -pYourPassword database_name | gzip > /backup/mysql_$date.sql.gz
赋予执行权限chmod +x /usr/local/bin/mysql_backup.sh
,然后编辑crontabcrontab -e
,添加以下行实现每天凌晨3点备份:
0 3 * * * /usr/local/bin/mysql_backup.sh
最后创建备份目录mkdir -p /backup
并设置权限,确保脚本可正常执行。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/37088.html