CLI AI

用大白话做网络排障:连接、端口、DNS

2026-02-13

网络调试是这样一片地方:每个工具都做同一件事,但语法有点不一样。netstat 被弃用,由 ss 接替。dig、host、nslookup 各有重叠。macOS 上的 route 不是 Linux 的 route。按意图问,而不是按你记得哪个工具问,问题就绕开了。

1. 监听端口

clai
$ clai 列出所有监听 TCP 端口和对应进程名→ ss -ltnpState    Recv-Q  Local Address:Port    ProcessLISTEN   0       0.0.0.0:22            users:(("sshd",pid=812))LISTEN   0       127.0.0.1:5432        users:(("postgres",pid=1234))

2. 谁连到了某服务

clai
$ clai 谁正在连我的 postgres→ ss -tnp 'sport = :5432'ESTAB   10.0.1.12:54322    10.0.1.50:5432   users:(("postgres",pid=1234))

3. 为什么 DNS 慢

clai
$ clai 跟踪 example.com 的 DNS 为什么慢→ dig +trace +stats example.com;; Query time: 312 msec;; SERVER: 8.8.8.8#53(8.8.8.8) (UDP)

+stats 是几乎没人会写的那半。区别在于「我知道慢」和「我知道慢在哪一跳」。

4. MTU 检查

clai
$ clai 检查到 8.8.8.8 的 MTU→ ping -M do -c 3 -s 1472 8.8.8.81480 bytes from 8.8.8.8: ttl=58 time=12.4 ms

-M do 设置 don't-fragment 位。1472+8+20 = 1500 通不过,说明实际 MTU 低于标准。

5. 路由表——可读

clai
$ clai 用可读形式显示路由表→ ip -4 route showdefault via 10.0.0.1 dev eth0 proto dhcp src 10.0.1.1210.0.0.0/16 dev eth0 proto kernel scope link src 10.0.1.12

另见