如何从零开始配置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)
酷番叔酷番叔
上一篇 5小时前
下一篇 5小时前

相关推荐

  • linux 如何 清除木马

    Linux 中,可使用 rkhunter 等工具扫描木马,发现后手动删除相关

    2025年8月14日
    1400
  • 如何查看电脑当前网络网关?

    临时设置网关(重启失效)通过命令行快速设置,适用于临时测试:# 临时添加网关(eth0替换为你的网卡名)sudo ip route add default via 192.168.1.1 dev eth0验证:ping 8.8.8.8 测试网络连通性,永久设置网关(不同发行版方法)Ubuntu/Debian(使……

    2025年7月23日
    3100
  • Linux解压不同格式文件如何操作?

    基础工具安装确保系统已安装解压工具:sudo apt update && sudo apt install unzip unrar p7zip-full tar gzip bzip2 # Debian/Ubuntusudo yum install unzip unrar p7zip tar gz……

    2025年7月24日
    1800
  • Linux没有IP文件夹?正确操作指南

    访问本地网络配置文件目录Linux的网络配置通常存储在以下目录中,需使用终端命令操作:打开终端Ctrl+Alt+T(Ubuntu)或右键选择“打开终端”,进入网络配置目录通用路径(大部分系统): cd /etc/network/关键文件:interfaces(Debian/Ubuntu旧版)Red Hat/Ce……

    2025年6月26日
    3400
  • AppImage如何轻松运行于任何电脑?

    Linux QQ登录详细指南在Linux系统中登录QQ,目前主要有三种可靠方式:官方原生版本、Wine兼容方案和第三方开源客户端,以下是具体操作步骤及注意事项:官方原生QQ for Linux(推荐首选)适用系统:Ubuntu/Debian、Arch、Fedora等主流发行版优势:腾讯官方维护,安全性高,无兼容……

    2025年7月1日
    3300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信