Linux作为服务器操作系统因其稳定性、安全性和开源特性,被广泛应用于企业级服务部署,配置Linux服务器需从基础环境、网络、服务、安全及性能优化等多维度入手,确保系统稳定运行并满足业务需求,以下将详细展开各环节配置步骤与关键要点。
基础环境准备
系统安装完成后,首先需更新软件包列表并升级系统,确保组件版本最新,修复潜在漏洞,以Ubuntu为例,执行sudo apt update && sudo apt upgrade -y
;CentOS系统则使用sudo yum update -y
,接着配置主机名,便于服务器识别与管理,通过sudo hostnamectl set-hostname server-name
永久设置主机名,时区配置同样重要,执行sudo timedatectl set-timezone Asia/Shanghai
确保时间准确,避免因时区偏差导致日志或服务异常。
创建专用管理用户是安全基础,避免直接使用root账户,执行sudo adduser adminuser
创建用户,然后通过sudo usermod -aG sudo adminuser
将其加入sudo组,赋予管理员权限,最后配置SSH密钥登录,提升安全性:在客户端生成密钥对(ssh-keygen -t rsa
),将公钥(~/.ssh/id_rsa.pub)通过ssh-copy-id adminuser@server_ip
传输至服务器,并修改SSH配置文件/etc/ssh/sshd_config
,设置PasswordAuthentication no
禁用密码登录,重启SSH服务(sudo systemctl restart sshd
)使配置生效。
网络配置
服务器网络需确保静态IP配置,避免因DHCP租约导致IP变更影响服务访问,不同发行版配置方式有所差异,以下为关键步骤对比:
发行版 | 配置文件路径 | 示例配置内容 |
---|---|---|
Ubuntu 20.04+ | /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] |
CentOS 7+ | /etc/sysconfig/network-scripts/ifcfg-ens33 | TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 ONBOOT=yes |
配置完成后,Ubuntu执行sudo netplan apply
,CentOS执行sudo ifdown ens33 && sudo ifup ens33
重启网卡,通过ip a
查看IP是否生效,ping 8.8.8.8
测试网络连通性。
DNS配置可参考上述文件中的nameservers参数,或修改/etc/resolv.conf
(注意CentOS 7+建议使用NetworkManager管理,避免直接编辑该文件)。
服务安装与管理
根据业务需求安装核心服务,以下以Web服务(Nginx)、数据库(MySQL)和FTP服务(vsftpd)为例:
-
Nginx安装与配置
Ubuntu执行sudo apt install nginx -y
,CentOS执行sudo yum install nginx -y
,启动服务并设置开机自启:sudo systemctl start nginx && sudo systemctl enable nginx
,配置文件位于/etc/nginx/nginx.conf
,站点配置存放在/etc/nginx/sites-available/
,可通过sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/
启用站点,测试配置语法后重启服务(sudo nginx -t && sudo systemctl restart nginx
)。 -
MySQL安装与安全配置
Ubuntu执行sudo apt install mysql-server -y
,CentOS执行sudo yum install mysql-server -y
,启动服务并运行安全脚本:sudo systemctl start mysql && sudo mysql_secure_installation
,根据提示设置root密码、匿名用户、远程访问权限等。 -
vsftpd安装与配置
Ubuntu执行sudo apt install vsftpd -y
,CentOS执行sudo yum install vsftpd -y
,编辑/etc/vsftpd.conf
,关键配置:anonymous_enable=NO
(禁止匿名访问)、local_enable=YES
(允许本地用户)、write_enable=YES
(允许写入)、chroot_local_user=YES
(限制用户主目录),重启服务并开放21端口(sudo ufw allow 21
或sudo firewall-cmd --add-port=21/tcp --permanent
)。
常用服务管理命令:systemctl start/stop/restart 服务名
(启停服务)、systemctl enable/disable 服务名
(设置开机自启)、systemctl status 服务名
(查看服务状态)。
安全加固
安全是服务器配置的核心,需从防火墙、访问控制、日志监控三方面加固:
-
防火墙配置
Ubuntu默认使用UFW,执行sudo ufw enable
开启防火墙,sudo ufw allow 22/tcp
(SSH)、sudo ufw allow 80/tcp
(HTTP)、sudo ufw allow 443/tcp
(HTTPS)开放必要端口,CentOS 7+使用firewalld,执行sudo systemctl start firewalld && sudo systemctl enable firewalld
,sudo firewall-cmd --permanent --add-service=ssh
、sudo firewall-cmd --permanent --add-service=http
、sudo firewall-cmd --permanent --add-service=https
,最后sudo firewall-cmd --reload
重新加载规则。 -
访问控制
除SSH密钥登录外,可通过/etc/hosts.allow
和/etc/hosts.deny
限制IP访问(如sshd: 192.168.1.0/24
仅允许内网SSH登录),定期更新系统软件包(前文基础环境已提及),并安装fail2ban
防止暴力破解:sudo apt install fail2ban -y
,配置/etc/fail2ban/jail.local
,设置SSH重试次数和封禁时间(如maxretry=3
、bantime=3600
)。 -
日志监控
系统日志默认存放在/var/log/
,可通过logrotate
管理日志轮转(配置文件/etc/logrotate.conf
),避免日志文件过大,关键服务日志如Nginx访问日志(/var/log/nginx/access.log
)、MySQL错误日志(/var/log/mysql/error.log
),需定期检查异常访问或错误信息。
性能优化
-
资源监控
使用top
、htop
(需安装:sudo apt install htop -y
)实时查看CPU、内存使用情况;free -h
查看内存占用;df -h
检查磁盘空间;iotop
监控磁盘I/O。 -
内核参数优化
编辑/etc/sysctl.conf
,添加以下参数提升网络性能:fs.file-max = 65535 # 最大文件描述符 net.ipv4.tcp_max_syn_backlog = 8192 # SYN队列长度 net.ipv4.tcp_syncookies = 1 # 启用SYN Cookies防止洪水攻击 net.ipv4.tcp_tw_reuse = 1 # 重用TIME_WAIT连接
执行
sudo sysctl -p
使配置生效。 -
磁盘与文件系统优化
避免使用swap分区(除非内存不足),可通过sudo swapoff -a
临时关闭,注释/etc/fstab
中swap相关行永久关闭,对频繁访问的文件(如数据库、静态资源)使用ext4或XFS文件系统,并开启noatime
挂载选项(/etc/fstab
中修改为defaults,noatime
),减少磁盘I/O。
相关问答FAQs
Q1:Linux服务器配置静态IP后无法上网,如何排查?
A:首先检查IP配置是否正确,执行ip a
确认IP、子网掩码、网关是否设置无误;然后测试网关连通性,ping 192.168.1.1
(网关IP),若不通检查网线或网络设备;再测试DNS解析,ping www.baidu.com
,若不通检查/etc/resolv.conf
中的DNS配置,或尝试临时替换为公共DNS(如8.8.8.8);最后检查防火墙是否拦截,执行sudo ufw status
或sudo firewall-cmd --list-all
,确保必要端口(如53 DNS)已开放。
Q2:如何禁止root用户通过SSH登录服务器?
A:编辑SSH配置文件/etc/ssh/sshd_config
,找到PermitRootLogin
行,将其值改为no
(若被注释需取消注释),保存后执行sudo systemctl restart sshd
重启SSH服务,此时root用户将无法通过SSH直接登录,需先通过普通管理员用户(如adminuser)登录,再使用sudo su -
切换至root,提升安全性。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/37180.html