< 返回

    Debian 服务器必会的基础操作

    2026-02-14 17:18 作者:技术部 阅读量:2

    聚焦真正高频、决定服务器稳定与安全的操作,减少纯命令罗列,增加原理、决策点与常见陷阱说明。适合已有基本 Linux 经验、想快速形成“服务器思维”的管理员。

    核心原则(先理解,再操作)

    1. 一切变更走包管理器 Debian 的稳定性建立在 APT + 严格依赖关系上。手动编译、手动复制二进制、乱用 curl | bash 都是高风险行为。
    2. 最小权限 + 可审计 日常用普通用户 + sudo,root 直登几乎只用于救援模式。
    3. 变更前三问
      • 会不会影响正在运行的服务?
      • 回滚成本多高?
      • 日志/监控能否捕捉问题?

    日常最重要三条复合命令(强烈建议做成别名)

    Bash
     
    # 日常维护(几乎每天)
    alias safeup='sudo apt update && sudo apt list --upgradable && sudo apt full-upgrade -y && sudo apt autoremove --purge'
    
    # 空间+日志清理(空间紧张时)
    alias cleanup='sudo apt autoclean && sudo journalctl --vacuum-time=14d && sudo find /var/log -type f -name "*.log.*" -mtime +30 -delete'
    
    # 快速健康检查(登录第一件事)
    alias health='uptime && free -h && df -h -x tmpfs -x devtmpfs && ss -s && systemctl --failed --no-legend'
     
     

    关键领域操作思维导图

    1. 安全基线(新服务器到手 30 分钟内完成)

    • SSH 加固(最重要一步)

      • 改端口(2222 或更高随机端口)
      • 禁用密码登录(只允许 ed25519 密钥)
      • 禁用 root 登录
      • 限制允许用户(AllowUsers deploy)

      典型配置片段(/etc/ssh/sshd_config):

      text
       
      Port 2222
      PermitRootLogin prohibit-password
      PasswordAuthentication no
      PubkeyAuthentication yes
      AllowUsers deploy@你的管理IP段
       
       
    • 防火墙(ufw 最简单)

      Bash
       
      sudo ufw default deny incoming
      sudo ufw default allow outgoing
      sudo ufw allow 2222/tcp comment 'SSH new port'
      sudo ufw allow from 你的管理IP to any port 80,443 proto tcp
      sudo ufw --force enable
       
       
    • Fail2Ban(防暴力破解)

      Bash
       
      sudo apt install fail2ban
      # 大多数人直接用默认 jail.local 就够用
      sudo systemctl enable --now fail2ban
       
       

    2. 包管理决策树

    场景 首选命令 备选 / 注意事项
    日常小更新 apt upgrade 基本不会中断服务
    内核/重要依赖升级 apt full-upgrade 可能需要重启
    想用较新版本但不想切 testing apt install -t bookworm-backports xxx 先确认 backports 源已启用
    明确要安装某个版本 apt install pkg=版本号 或用 apt pinning
    修复依赖损坏 apt install -f 常跟在手动 .deb 安装后
    查看谁占了某个文件/端口 apt-file search /bin/xxx 需要先 apt install apt-file && apt-file update
     
     

    3. 服务管理(systemd)高频模式

    • 不中断服务改配置 → systemctl reload xxx(首选)
    • 必须重启才生效 → systemctl restart xxx
    • 开发/调试时 → systemctl status -l -n 100 xxx + journalctl -u xxx -f
    • 批量操作 → systemctl --type=service list-units --state=running

    4. 问题定位快速路径(5 分钟内找到 80% 原因)

    1. systemctl --failed → 有没有单元启动失败
    2. journalctl -p 3 -xb → 本次启动后的所有错误(优先级 3 及以上)
    3. dmesg --color=always | grep -iE 'error|fail|oom|fault' → 内核级异常
    4. ss -ltnp + lsof -i :端口号 → 端口冲突/占用
    5. sudo -u 运行用户 strace -p PID → 某个进程卡死时用(慎用)

    5. 空间与性能常见陷阱及对策

    • /var/log 爆炸 → 配置 /etc/systemd/journald.conf → SystemMaxUse=300M → 定期 journalctl --vacuum-size=200M
    • inode 用尽(df 显示空间够但无法创建文件) → df -i 查看 inode 使用率 → 常见元凶:大量小文件(邮件队列、日志分片、缓存)
    • 内存压力导致 OOM Killer → grep -i 'out of memory' /var/log/syslog → 调整 /proc/sys/vm/swappiness(服务器建议 10 或更低)

    推荐“最小但够用”工具集(按重要性排序)

    1. htop / btop(进程监控)
    2. ncdu(磁盘占用可视化)
    3. tmux / screen(会话持久)
    4. fail2ban
    5. unattended-upgrades(自动安全更新)
    6. mtr / tcpdump / nmap(网络诊断)
    7. restic / borgbackup(备份)
    8. prometheus-node-exporter(未来监控)

    总结:服务器运维的“节奏感”

    • 每天:health + safeup
    • 每周:cleanup + 检查 failed units
    • 每月:评估是否需要重启(内核更新后)
    • 任何升级前:快照/备份 → 测试环境验证 → 生产逐步滚动

     

    真正的高手不是记住 200 条命令,而是养成“先看状态 → 改最小范围 → 验证 → 记录”的习惯。

    联系我们
    返回顶部