如何从零开始配置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如何运行微信?

    首选方案:Deepin-Wine环境(推荐)原理:利用深度(Deepin)团队优化的Wine兼容层运行Windows版微信优势:兼容性好、支持文件传输/音视频通话步骤:安装Deepin-Wine环境Ubuntu/Debian系用户执行:wget -O- https://deepin-wine.i-m.dev/s……

    2025年7月1日
    17100
  • Linux如何运行exe文件?两种方法揭秘

    在Linux系统中运行Windows的.exe文件主要有两种方法:使用Wine兼容层(轻量级,直接运行但兼容性有限)或通过虚拟机(如VirtualBox/VMware,完整Windows环境运行,资源消耗大但兼容性好)。

    2025年6月18日
    17600
  • linux如何禁用网卡

    在Linux系统中,禁用网卡是常见的网络管理操作,通常用于故障排查、安全隔离、节能降耗等场景,不同Linux发行版和网卡管理工具下,禁用网卡的方法略有差异,本文将详细介绍多种常用方法,涵盖临时禁用和永久禁用的操作步骤,并分析各方法的适用场景及注意事项,使用ifconfig命令禁用网卡ifconfig是传统的Li……

    2025年9月8日
    16500
  • Linux如何快速识别未挂载硬盘?

    核心工具:lsblk(推荐首选)作用:列出所有块设备(硬盘、分区),清晰展示挂载状态,命令:lsblk -f输出解读:设备名:如 sda(第一块硬盘)、sdb(第二块硬盘),分区:如 sdb1、sdb2,未挂载标志:若 MOUNTPOINT 列为空,则该分区未挂载, (图示:sdb1已挂载,sdb2未挂载)进阶……

    2025年6月19日
    17900
  • 如何从Linux终端切换到桌面?

    从命令行启动图形桌面(首次进入桌面)方法1:使用 startx 命令前提条件确保已安装桌面环境(如GNOME、KDE、XFCE)和X Window系统,检查是否安装必要组件(以Debian/Ubuntu为例):sudo apt install xinit <桌面环境包> # gnome-core、k……

    2025年7月26日
    14500

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信