664 字
3 分钟
Linux 网络、磁盘与空间排查
网络和磁盘问题经常表现为“应用超时”“写入失败”或“服务突然退出”。排查时应从本机状态开始,再逐层确认 DNS、路由、端口、文件系统和底层设备。
网络接口与路由
ip addressip linkip routeip route get 1.1.1.1ip route get 可以显示访问目标地址时系统会选择的接口、网关和源地址。
DNS 排查
getent hosts example.comresolvectl statusresolvectl query example.comcat /etc/resolv.conf先区分“域名无法解析”和“目标地址无法连接”。直接使用 IP 成功但域名失败,通常应优先检查 DNS。
端口与连接
ss -lntupss -ntpss -s测试 HTTP:
curl -I https://example.comcurl -v --connect-timeout 5 https://example.com测试 TCP 端口:
nc -vz database.example.com 5432如果系统没有 nc,可以使用 Bash 的 /dev/tcp,但可读性和兼容性不如专用工具。
防火墙
不同发行版可能使用 nftables、firewalld 或 ufw:
sudo nft list rulesetsudo firewall-cmd --list-allsudo ufw status verbose修改防火墙前确认远程管理端口,避免把自己锁在服务器外。
文件系统空间
df -hTdf -i磁盘容量充足但无法创建文件时,要检查 inode 是否耗尽。定位大目录:
sudo du -xhd1 /var | sort -hsudo du -xhd1 /var/lib | sort -h-x 限制在同一个文件系统内,避免进入挂载的网络盘或其他分区。
查找大文件
sudo find /var -xdev -type f -size +1G -printf '%s %p\n' | sort -n文件被删除但空间没有释放时,可能仍被进程打开:
sudo lsof +L1处理方式通常是让对应进程正常重载或重启,而不是直接操作 /proc 中的文件描述符。
块设备与挂载
lsblk -ffindmntmount | column -tblkid查看内核最近的存储错误:
dmesg -T | tail -n 100journalctl -k -p warning --since today挂载配置
/etc/fstab 修改错误可能导致启动失败。修改后先验证:
sudo mount -afindmnt --verify对网络存储和可选磁盘可以考虑 nofail、x-systemd.automount 等选项,但应理解它们对启动和访问延迟的影响。
排查流程
网络
ip address:接口是否有正确地址。ip route:默认路由是否存在。getent hosts:DNS 是否正常。ss -lntup:本地服务是否监听。curl -v或nc -vz:连接在哪一步失败。- 检查防火墙、云安全组、代理和容器网络。
磁盘
df -hT:容量和文件系统类型。df -i:inode。du:空间主要消耗位置。lsof +L1:已删除但仍占用的文件。dmesg、journalctl -k:设备或文件系统错误。- 确认备份后再执行清理或修复。
参考资料
Linux 网络、磁盘与空间排查
https://zh19990906.github.io/fuwari/posts/linux-network-and-disk/