如何从零开始配置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如何设置中文界面?

    图形界面设置(推荐)GNOME 桌面(Ubuntu/Fedora/CentOS 8+)打开 设置 → 区域与语言 → 语言点击 添加语言,搜索并选择 “中文(简体)”将中文拖到语言列表顶部,设为默认注销系统重新登录生效若中文选项灰色:需先安装语言包(终端执行 sudo apt install language……

    2025年7月28日
    6200
  • Linux文件权限分配的核心原则与实操方法是什么?

    Linux权限分配是系统管理的核心内容,它通过精细化的控制机制确保系统安全与资源合理使用,Linux中的权限分配围绕“用户”“用户组”“其他用户”三类主体展开,涵盖“读取(r)”“写入(w)”“执行(x)”三种基本权限,并通过一系列命令和配置实现动态管理,Linux权限体系基础Linux系统中的每个文件和目录都……

    2025年9月13日
    3800
  • 如何查看Linux系统的网卡型号信息?

    在Linux系统中,查看网卡型号是网络配置、故障排查或硬件升级时的常见需求,由于Linux发行版众多,且网卡硬件类型多样(如Intel、Realtek、Broadcom等),掌握多种查看方法能更高效地获取信息,本文将详细介绍通过命令行和图形界面查看Linux网卡型号的多种方式,并分析不同方法的适用场景和优缺点……

    2025年10月3日
    3200
  • Linux如何查看软硬RAID信息?

    软件RAID(基于mdadm)软件RAID通过Linux内核的md(Multiple Devices)驱动实现,常用工具为mdadm,检查RAID状态cat /proc/mdstat输出示例:Personalities : [raid1]md0 : active raid1 sdb1[1] sda1[0] 10……

    2025年7月21日
    6700
  • linux如何查看是否有安装vnc

    Linux中,可以使用命令vncserver -version或which vncserver来

    2025年8月17日
    6400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信