如何从零开始配置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下如何编写C语言代码?

    在Linux环境下进行C语言开发,是许多程序员和系统开发者的基础技能,Linux提供了强大的工具链和丰富的开发环境,支持从代码编写、编译、调试到项目管理的一系列流程,本文将详细介绍Linux下C语言开发的完整步骤,包括环境搭建、代码编写、编译运行、调试及项目管理等内容,帮助读者掌握在Linux系统中高效开发C语……

    2025年9月25日
    9600
  • Linux如何使用crontab创建和管理计划任务?

    在Linux系统中,计划任务是实现自动化运维的关键功能,能够帮助用户在指定时间自动执行脚本、命令或程序,避免人工干预,提高工作效率,Linux中最常用的计划任务工具是cron和at,其中cron适用于周期性重复的任务,而at适用于一次性任务,本文将详细介绍如何使用cron创建计划任务,包括其工作原理、配置方法……

    2025年10月5日
    8100
  • 如何设置IP地址和子网掩码?

    在Linux系统中设置IP地址是网络管理的基础操作,可通过多种方法实现,以下是详细步骤及注意事项,涵盖临时配置与永久生效方案:临时设置IP(重启失效)方法1:使用 ip 命令(推荐)# 设置默认网关sudo ip route add default via 192.168.1.1# 修改DNS(需更新/etc……

    2025年6月28日
    11100
  • Linux终端翻页技巧你会几种?

    分页查看工具中的向上翻页less 命令(最推荐)进入分页模式:执行 less 文件名(如 less /var/log/syslog),向上翻页快捷键:Page Up 或 b:向上翻一页, 或 k:向上滚动一行,u:向上翻半页,g:跳转到文件开头,退出:按 q,more 命令(基础工具)进入分页模式:执行 mor……

    2025年7月18日
    12200
  • linux中如何安装禅道

    在Linux系统中安装禅道(ZenTao)需要先了解其环境依赖,禅道是基于PHP开发的项目管理工具,因此需要搭建PHP运行环境、数据库(如MySQL或MariaDB)以及Web服务器(如Nginx或Apache),以下是详细的安装步骤,涵盖环境准备、软件安装、配置及启动全过程,以常见的Ubuntu/Debian……

    2025年10月6日
    7600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信