Skip to content

Linux 初始整理

这是一篇典型的“新机器到手后先做什么”的日志。环境可能是云主机、HomeLab 节点,或者新装的测试服务器。重点不是把系统改得复杂,而是先把基础状态摸清楚,再把常见风险点收一遍。

背景

刚接管一台 Linux 主机时,最先遇到的问题通常不是“怎么优化”,而是“现在到底是什么状态”。磁盘剩余多少、内存是否紧张、服务有没有异常、日志是否已经开始报错,这些问题如果不先确认,后续任何操作都会缺少上下文。

这次整理的目标很直接:

  • 确认系统版本和内核信息
  • 检查磁盘、内存、CPU 和网络状态
  • 找出正在运行的关键服务
  • 做一轮最基础的安全收敛
  • 记录常用命令,作为以后复用模板

先看系统状态

通常先从最基本的几条命令开始:

bash
uname -a
cat /etc/os-release
hostnamectl
df -h
free -h
ip a
ss -tulpn

这一轮的目的不是“看得很全”,而是快速确认几个判断点:

  • 系统发行版是否符合预期
  • 文件系统挂载是否正常
  • 是否有明显的磁盘告急
  • 是否存在异常监听端口
  • 网络接口是否按预期工作

如果机器是刚启动不久,journalctl -p warning -xb 也很值得看一眼。很多看起来“还没出问题”的系统,其实已经在启动阶段留下了明显线索。

基础加固

基础加固不等于大改,而是先把最容易出风险的地方收紧:

bash
sudo useradd ops
sudo usermod -aG wheel ops
sudo visudo

如果环境允许,建议同步做这些事:

  • 禁止直接使用 root 进行日常登录
  • 确认 SSH 只允许必要的登录方式
  • 限制密码策略和空闲会话
  • 检查防火墙是否处于合理状态
  • 清理不需要的开机服务

这类变更最好遵循一个原则:一次只改一类配置,改完立即验证。不要把 SSH、sudo、firewall 和用户权限一起大幅度调整,否则一旦连不上机器,排障成本会非常高。

服务检查

一台新机器上最常见的情况是,系统本身没问题,但某个基础服务状态并不稳定。可以先看:

bash
systemctl list-units --type=service --state=running
systemctl --failed
systemctl status sshd
journalctl -u sshd -b --no-pager

如果机器上已经预装了 Nginx、Docker、Kubelet 或监控代理,也建议一并确认:

  • 服务是否处于 active (running)
  • 是否有重复重启
  • 日志里有没有权限、配置文件或证书错误
  • 端口绑定是否正确

这里的经验是,很多问题不是“服务没启动”,而是“服务启动了但一直带错运行”。这种情况下,systemctl statusjournalctl 往往比重启服务更有效。

常用排查顺序

当机器开始表现异常时,我通常按下面的顺序看:

  1. uptime 看负载是否异常
  2. df -h 看磁盘是否爆满
  3. free -h 看内存是否吃紧
  4. tophtop 看 CPU 是否被某个进程占满
  5. ss -tulpn 看端口和连接状态
  6. journalctl -xe 看系统最近报错

这个顺序的好处是从最便宜的信号开始,先排除最常见的系统级问题,再深入到具体服务。

复盘

这类日志最有价值的部分不是命令本身,而是“下次还能不能直接照着做”。所以在每次整理完之后,我会额外留两条记录:

  • 这台机器的关键服务列表
  • 这台机器最容易出问题的点

比如某些测试节点磁盘清理慢,某些主机的 SSH 配置曾经改过,某些机器的时间同步服务不稳定。这些零碎信息很小,但在后续排障时会省掉很多试错。

结论

Linux 基础整理的目标不是一次性把系统“调到完美”,而是让主机进入一个可控、可追踪、可继续维护的状态。只要这一步做扎实,后面的容器、反向代理和集群操作都会轻很多。

Focused notes for DevOps, Linux and Kubernetes.