Ping 命令
核心作用是测试本机到目标主机的网络连通性,原理是发送 ICMP 回显请求包,等待目标主机的回显应答包,以此判断网络是否通畅、延迟 / 丢包情况。
1. 基本语法与核心参数
ping [选项] 目标主机(IP/域名)核心选项:
-c 数字:指定发送的 ping 包数量(默认会一直发送,按Ctrl+C停止);-i 数字:指定发送 ping 包的间隔时间(单位:秒,默认 1 秒);-s 数字:指定 ping 包的大小(单位:字节,默认 56 字节)。
2. 示例与输出解读
以ping -c 5 www.qq.com为例,逐行解读输出:
3. 常用场景
- 测试本机能否上网:
ping www.baidu.com; - 测试内网连通性:
ping 192.168.1.1(路由器 IP);
netstat 命令
netstat是监控网络状态的核心工具,能列出系统中所有的网络连接、监听端口、对应的进程等,排查 “端口被占用”“谁在监听某个端口” 等问题时特别有用。
1. 基本语法与核心参数
netstat [选项]核心选项(新手必记):
| 选项 | 含义 |
|---|---|
-a | 显示所有网络连接(包括监听、已建立、关闭等待等状态) |
-t | 仅显示TCP协议的连接(最常用) |
-u | 仅显示UDP协议的连接 |
-l | 仅显示处于监听状态的端口(比如服务启动后监听的端口) |
-n | 拒绝显示别名 / 域名,直接显示数字 IP 和端口(避免 DNS 解析,速度更快,更直观) |
-p | 显示建立连接 / 监听端口的进程名和 PID(需要 sudo 权限才能看到所有进程) |
2. 高频组合用法
- 最常用:
netstat -nltp(查看所有监听的 TCP 端口,显示数字 IP / 端口 + 进程信息); - 实时监控:
watch -n 1 netstat -nltp(每 1 秒刷新一次,适合观察端口状态变化); - 查看所有 TCP 连接:
netstat -nat; - 查看 UDP 监听端口:
netstat -nulp。
3. 输出解读示例
执行netstat -natp可能的输出:
逐字段解释
| 字段名 | 含义 | 图中示例值的解释 |
|---|---|---|
| Proto | 网络协议类型 | 图中都是tcp/tcp6,表示 TCP 协议(tcp6是 IPv6 版本的 TCP) |
| Recv-Q | 接收队列中未被应用程序读取的字节数(正常应为 0,非 0 可能程序阻塞) | 图中大部分是0,说明接收队列无堆积,网络正常 |
| Send-Q | 发送队列中未被对方确认的字节数 | 图中除了一条是276,其余都是0;276表示有 276 字节待对方确认(暂时无需担心) |
| Local Address | 本机的 IP: 端口(127.0.0.1是本地回环,192.168.5.163是本机网卡 IP) | 比如127.0.0.1:53:本机回环 IP 的 53 端口(DNS 服务);192.168.5.163:22:本机 22 端口(SSH 服务) |
| Foreign Address | 远程主机的 IP: 端口(0.0.0.0:*表示 “任意远程地址”) | 比如100.64.0.205:80:远程 IP 是 100.64.0.205,端口 80(HTTP 服务);0.0.0.0:*是监听状态下的 “任意远程地址” |
| State | 连接状态(核心字段) | 图中常见 2 种状态:①LISTEN:监听状态(服务已启动,等待外部连接);②ESTABLISHED:已建立连接(和远程主机的连接已成功) |
| PID/Program name | 对应连接的进程 ID 和程序名(谁占用了这个端口 / 建立了连接) | 比如611/systemd-resolve:PID 是 611,程序是systemd-resolve(负责 DNS 解析);770/sshd:PID 是 770,程序是sshd(SSH 服务) |
pidof 命令:快速获取进程 PID
pidof是一个极简但实用的命令,核心作用是通过进程名直接获取对应的进程 ID(PID),比ps过滤更高效。
1. 基本语法
pidof [进程名]- 进程名:要查询的程序名(比如 tcp_server、nginx、mysql);
- 输出:直接返回该进程的 PID(如果多个同名进程,会返回多个 PID,空格分隔)。
2. 示例与对比
3. 常用场景
- 快速杀进程:
kill $(pidof tcp_server)(通过 PID 终止 tcp_server 进程)