文章列表
1 分钟阅读

Linux 网络排查命令:ss、curl、dig、ping、traceroute

Linux 入门 教程 #linux#网络#终端

系列:Linux 命令基础

第 8 / 16 篇

  1. Tmux 入门教程:让 SSH 断线和多任务终端不再中断
  2. Tree 命令教程:快速查看和导出目录结构
  3. Linux 搜索命令教程:find、grep、locate、rg 应该怎么选
  4. Linux 压缩与解压命令教程:tar、zip、gzip、xz、zstd 一次讲清
  5. Linux 文本处理命令教程:cat、less、head、tail、wc、sort、uniq
  6. Linux 权限命令教程:chmod、chown、umask
  7. Linux 进程查看与管理:ps、top、htop、kill、jobs
  8. Linux 网络排查命令:ss、curl、dig、ping、traceroute
  9. systemctl 与 journalctl 入门:管理服务和查看日志
  10. rsync 使用指南:服务器文件同步与备份
  11. Linux 服务器安全基础:SSH、用户权限、防火墙和 fail2ban
  12. 线上问题排查流程:日志、端口、进程、磁盘、网络怎么一步步看
  13. 深入浅出:Linux 树状目录神器 tree 命令的安装与使用指南
  14. Linux 系统 Vim 编辑器终极指南:从入门到精通
  15. SSH 隧道实战:本地转发、远程转发和动态转发
  16. SSH Config 使用指南:别名、跳板机与多服务器管理

Web 服务打不开时,不要先猜代码。先确认端口、HTTP、DNS、网络路径。sscurldigpingtraceroute 基本够用。

看端口

Terminal window
ss -ltnp
ss -ltnp | grep 8000

-l 看监听,-t 看 TCP,-n 不解析名称,-p 显示进程。

如果端口没有监听,问题在服务本身;如果只监听 127.0.0.1,外部机器访问不到也正常。

测 HTTP

Terminal window
curl -i http://127.0.0.1:8000/
curl -I https://example.org/
curl -v https://example.org/

-i 看响应头和响应体,-I 只看响应头,-v 看连接细节。

查 DNS

Terminal window
dig example.org
dig A example.org
dig CNAME www.example.org

DNS 没解析到正确 IP,Nginx 和应用都不用看,先修域名。

连通性

Terminal window
ping 1.1.1.1
traceroute example.org

很多服务器禁 ICMP,ping 不通不一定代表 HTTP 不通。最终还是以 curl 为准。

常见问题

本机能访问,外部访问不了,按顺序查:

服务是否监听 0.0.0.0 或公网入口
防火墙是否放行端口
云安全组是否放行端口
Nginx proxy_pass 是否正确
域名 DNS 是否指向服务器

部署 Python Web 项目时可以结合 Python Web 项目部署指南:Gunicorn、Uvicorn、Nginx 和 Docker

总结

网络排查要分层:端口监听用 ss,HTTP 用 curl,DNS 用 dig,路径用 traceroute。不要把所有打不开都归因到代码。更多参考 curl 文档iproute2 ss 手册