如何从零开始配置Linux服务器?

配置Linux服务器是运维和开发中的核心任务,涉及系统安装、基础配置、安全加固、服务部署及监控维护等多个环节,合理的配置能确保服务器稳定、安全、高效运行,本文将详细说明关键步骤及注意事项。

如何配置服务器 linux

系统安装与初始准备

选择合适的Linux发行版是首要任务,常见选择包括Ubuntu Server(适合新手,社区支持丰富)、CentOS Stream(企业级,稳定可靠)及Debian(严格的开源标准),安装时需注意分区规划:建议/boot分区(500MB,存放引导文件)、/分区(剩余空间的70%-80%,根目录)、swap分区(内存的1-2倍,用于虚拟内存,若内存≥8GB可适当减小),/home分区(可选,存放用户数据,便于系统重装时保留数据)。

安装完成后,通过ip a查看服务器IP地址,使用SSH客户端(如PuTTY、Xshell)远程连接,初始建议使用普通用户登录,再通过sudo提升权限,避免直接使用root账户,执行sudo apt update && sudo apt upgrade(Ubuntu/Debian)或sudo yum update(CentOS)更新系统软件包,确保基础环境安全。

基础系统配置

用户与权限管理

创建管理员用户(如admin):sudo adduser admin,并将其加入sudo组:sudo usermod -aG sudo admin,为增强安全性,禁用root远程登录:编辑/etc/ssh/sshd_config文件,将PermitRootLogin yes改为no,保存后执行sudo systemctl restart sshd重启SSH服务。

网络与时区配置

配置静态IP(以Ubuntu为例):编辑/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]  

执行sudo netplan apply使配置生效,时区设置为Asia/Shanghai:sudo timedatectl set-timezone Asia/Shanghai,并启用NTP同步时间:sudo timedatectl set-ntp true

系统资源限制

调整文件描述符限制:编辑/etc/security/limits.conf,添加:

* soft nofile 65535  
* hard nofile 65535  

避免因文件描述符耗尽导致服务异常。

如何配置服务器 linux

安全加固

防火墙配置

使用firewalld(CentOS/Ubuntu)或ufw(Ubuntu)管理端口,以CentOS为例:

  • 开启防火墙:sudo systemctl start firewalld
  • 开放必要端口(如SSH 22、HTTP 80、HTTPS 443):sudo firewall-cmd --permanent --add-service=sshsudo firewall-cmd --permanent --add-service=http
  • 重新加载规则:sudo firewall-cmd --reload

SSH安全增强

修改SSH默认端口(如改为2222):编辑/etc/ssh/sshd_config,设置Port 2222,并禁用密码登录,仅允许密钥认证:

PasswordAuthentication no  
PubkeyAuthentication yes  
AuthorizedKeysFile .ssh/authorized_keys  

将本地公钥(~/.ssh/id_rsa.pub)上传至服务器用户目录的.ssh/authorized_keys文件中,重启SSH服务。

入侵检测与日志管理

安装fail2ban防暴力破解:sudo apt install fail2ban(Ubuntu),配置/etc/fail2ban/jail.local,设置SSH监禁规则:

[sshd]  
enabled = true  
port = 2222  
maxretry = 3  
bantime = 3600  

启用日志轮转:编辑/etc/logrotate.conf,确保系统日志定期清理,避免磁盘占满。

核心服务部署

根据业务需求部署Web、数据库等服务,以下以Nginx和MySQL为例:

Web服务器(Nginx)

安装Nginx:sudo apt install nginx(Ubuntu),启动服务并开机自启:sudo systemctl enable --now nginx,配置虚拟主机:编辑/etc/nginx/sites-available/example.com,添加:

如何配置服务器 linux

server {  
    listen 80;  
    server_name example.com;  
    root /var/www/html;  
    index index.html;  
}  

创建软链接启用站点:sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/,测试配置并重启:sudo nginx -t && sudo systemctl restart nginx

数据库(MySQL)

安装MySQL:sudo apt install mysql-server,安全初始化:sudo mysql_secure_installation,设置root密码、移除匿名用户、禁止root远程登录,创建数据库和用户:

mysql -u root -p  
CREATE DATABASE mydb;  
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';  
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';  
FLUSH PRIVILEGES;  

服务部署对比

服务类型 常用软件 安装命令(Ubuntu) 配置文件位置 适用场景
Web服务器 Nginx apt install nginx /etc/nginx/nginx.conf 静态资源、反向代理
Web服务器 Apache apt install apache2 /etc/apache2/apache2.conf 动态页面、模块化扩展
数据库 MySQL apt install mysql-server /etc/mysql/mysql.conf.d/mysqld.cnf 关系型数据存储
数据库 PostgreSQL apt install postgresql /etc/postgresql/14/main/postgresql.conf 复杂查询、事务处理

监控与维护

监控工具

部署Prometheus+Grafana:安装Prometheus采集服务器指标(CPU、内存、磁盘IO),通过Grafana可视化展示,或使用轻量级工具htop(实时进程监控)、df -h(磁盘使用)、free -h(内存占用)。

备份策略

定期备份数据库和重要配置:使用mysqldump备份数据库:mysqldump -u root -p mydb > backup.sql,通过rsync同步文件到远程服务器:rsync -avz /var/www/ user@remote:/backup/www/,配合crontab设置定时任务(如每天凌晨2点执行备份)。

优化建议

  • 内核参数调整:编辑/etc/sysctl.conf,优化网络栈(如net.core.somaxconn=65535提升并发连接数)。
  • 文件系统选择:XFS适合大文件存储,ext4兼容性更好,根据业务场景选择。
  • 资源隔离:使用Docker容器部署服务,避免应用间相互影响。

FAQs

Q1:忘记Linux服务器root密码如何重置?
A1:

  1. 重启服务器,进入GRUB引导菜单,选择“Advanced options for Linux”,按e编辑内核参数。
  2. 找到linuxlinuxefi行,在末尾添加rd.break,按Ctrl+X启动。
  3. 系统进入紧急模式,执行mount -o remount,rw /sysroot重新挂载根目录。
  4. 执行chroot /sysroot切换到根环境,使用passwd修改root密码。
  5. 输入exit,执行reboot重启服务器,新密码生效。

Q2:如何排查服务器高负载问题?
A2:

  1. 使用tophtop查看占用资源最高的进程,记录PID。
  2. 执行iostat -x 1检查磁盘IO是否繁忙(%util接近100%表示磁盘瓶颈)。
  3. 运行free -h查看内存使用,若swap占用高,说明内存不足。
  4. 使用netstat -an | awk '/tcp/ {print $6}' | sort | uniq -c检查网络连接状态,如大量TIME_WAIT连接可能导致端口耗尽。
  5. 定位异常进程后,根据业务需求终止进程(kill -9 PID)或优化应用配置。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/22492.html

(0)
酷番叔酷番叔
上一篇 2025年9月9日 20:01
下一篇 2025年9月9日 20:16

相关推荐

  • Linux中二维数组如何实现?有哪些方法?

    在Linux环境下,二维数组的实现主要依赖于编程语言自身的特性,而Linux作为操作系统,为这些语言的运行提供了底层支持(如内存管理、进程调度等),不同语言在二维数组的内存布局、动态扩展、操作便捷性上存在差异,本文将从C、C++、Python三种主流语言出发,详细解析其在Linux环境下的实现原理及操作方法,C……

    2025年10月7日
    1900
  • 腾讯云Linux登录密码忘记,如何重置密码恢复系统访问?

    当使用腾讯云Linux服务器时,若忘记登录密码,可能会导致无法正常管理服务器,通过腾讯云提供的多种方式,可以安全、高效地重置密码,以下是详细的操作步骤和注意事项,帮助用户快速解决密码遗忘问题,准备工作:重置密码前的注意事项在开始重置密码前,建议用户先确认以下事项,避免操作过程中出现意外:确认实例状态:确保Lin……

    2025年10月4日
    900
  • Linux下用什么工具打开BMP文件?

    在Linux操作系统中,BMP(Bitmap)作为一种常见的位图图像格式,因其无损压缩特性被广泛应用于图像存储和编辑场景,虽然Linux生态下默认的图像查看工具可能不像Windows那样直接关联BMP格式,但通过多种方式均可轻松打开和编辑BMP图片,本文将详细介绍Linux环境下打开BMP图片的图形界面工具、命……

    2025年9月16日
    2200
  • archlinux如何安装桌面环境

    Archlinux中可通过sudo pacman -S xfce4等命令安装对应桌面

    2025年8月15日
    3700
  • Debian系如何添加Deepin源?

    推荐方案:Deepin-Wine容器方案(兼容主流发行版)原理:利用深度团队优化的Wine环境运行Windows版微信,资源占用低且兼容性好wget -O- https://deepin-wine.i-m.dev/setup.sh | sudo bash# 2. 安装微信包sudo apt install co……

    2025年8月7日
    3800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信