网宝
新闻中心 / / 正文

Debian 服务器必会的基础操作

2026-02-14 17:18
技术部
← 返回

聚焦真正高频、决定服务器稳定与安全的操作,减少纯命令罗列,增加原理、决策点与常见陷阱说明。适合已有基本 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 条命令,而是养成“先看状态 → 改最小范围 → 验证 → 记录”的习惯。

QQ客服 提交工单