ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

UDP、TCP四大检测工具——ping netstat watch pidof

UDP、TCP四大检测工具——ping netstat watch pidof
@bit::Shadow
✧(≖ ◡ ≖✿

目录

一、ping —— 网络连通性测试

功能

基本用法

输出解读

常用选项

实际案例

二、netstat —— 网络状态查看(老牌工具)

功能

常用组合(强烈推荐记这个)

输出示例

实际案例

三、watch —— 定时执行命令(实时监控)

功能

基本用法

常用选项

实际案例

退出

四、pidof —— 根据进程名查 PID

功能

基本用法

输出示例

常用选项

实际案例

五、xargs —— 将标准输入转为命令行参数(批量操作神器)

功能

基本用法

常用选项

实际案例

六、组合使用(实战场景)

场景 1:实时监控某个服务的端口状态

场景 2:批量杀死所有 Python 进程

场景 3:检查某个服务是否在运行

场景 4:实时监控某个进程的网络连接

七、命令速查表

八、终极总结(一句口诀)


8-10

一、ping—— 网络连通性测试

功能

测试本机到目标主机的网络是否通畅,测量往返延迟(RTT)。

基本用法

bash

ping 192.168.1.1 ping baidu.com ping -c 4 192.168.1.1 # 只发 4 个包 ping -i 0.5 192.168.1.1 # 间隔 0.5 秒发一个包(默认 1 秒)

输出解读

bash

64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.123 ms
字段含义
icmp_seq包的序号,判断是否丢包(跳号说明丢包)
ttl生存时间(每经过一个路由器减 1),可推测目标距离
time往返延迟(越小越好)

常用选项

选项作用
-c N发送 N 个包后停止
-i N间隔 N 秒发一个包
-s N设置包大小(默认 56 字节)
-W N超时时间(秒)

实际案例

bash

# 检查网关是否正常 ping -c 3 192.168.1.1 # 检查 DNS 是否正常(能解析域名说明 DNS 通) ping -c 2 baidu.com

二、netstat—— 网络状态查看(老牌工具)

功能

显示网络连接、路由表、接口统计等信息。

常用组合(强烈推荐记这个)

bash

netstat -tulnp # 查看所有监听端口 + 对应进程
选项含义
-tTCP 连接
-uUDP 连接
-l仅显示监听状态的端口
-n显示数字 IP 和端口(不解析域名)
-p显示进程名和 PID(需 root)
-a显示所有连接(不仅是监听)
-r显示路由表

输出示例

bash

$ netstat -tulnp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5678/nginx udp 0 0 0.0.0.0:8888 0.0.0.0:* 9012/udp_server

解读

  • 0.0.0.0:80表示监听所有网卡的 80 端口(HTTP 服务)。

  • 127.0.0.1:3306表示只监听本地的 3306 端口(MySQL,外部无法访问)。

  • LISTEN表示正在监听(等待连接)。

实际案例

bash

# 查看谁占用了 8888 端口 netstat -tulnp | grep 8888 # 查看所有 TCP 连接(包括已建立的) netstat -tanp # 查看路由表 netstat -rn

三、watch—— 定时执行命令(实时监控)

功能

周期性地执行指定命令,并清屏显示输出,适合实时监控变化

基本用法

bash

watch -n 2 'netstat -tulnp | grep 8888' # 每 2 秒检查一次 8888 端口的状态

常用选项

选项作用
-n N每隔 N 秒执行一次(默认 2 秒)
-d高亮显示变化的行(方便看出差异)
-t不显示标题行(时间戳)

实际案例

bash

# 实时监控系统负载 watch -n 1 'uptime' # 实时监控内存使用 watch -n 2 'free -h' # 实时监控某个进程是否存活 watch -n 1 'ps aux | grep udp_server' # 监控网卡流量变化(结合 ifconfig) watch -n 1 'ifconfig eth0 | grep "RX packets"'

退出

Ctrl + C退出。


四、pidof—— 根据进程名查 PID

功能

根据进程名查找对应的进程 ID(PID)。

基本用法

bash

pidof nginx # 输出所有 nginx 进程的 PID pidof sshd pidof udp_server

输出示例

bash

$ pidof nginx 1234 1235 1236 # 输出多个 PID(如果启动了多个进程)

常用选项

选项作用
-s只返回第一个 PID(单实例进程)
-x也匹配脚本进程(如 shell 脚本)

实际案例

bash

# 杀掉所有 nginx 进程 kill -9 $(pidof nginx) # 检查某个服务是否在运行 if [ -n "$(pidof udp_server)" ]; then echo "udp_server is running" else echo "udp_server is not running" fi

五、xargs—— 将标准输入转为命令行参数(批量操作神器)

功能

从标准输入读取数据,将其作为参数传递给其他命令。

基本用法

bash

echo "1 2 3" | xargs mkdir # 创建 1、2、3 三个目录 ps aux | grep nginx | awk '{print $2}' | xargs kill -9 # 批量杀进程

常用选项

选项作用
-n N每次传递 N 个参数(分批处理)
-I {}{}占位符替换参数(处理带空格的文件名)
-P N并行执行 N 个进程
-0\0分隔(配合find -print0,处理特殊文件名)

实际案例

bash

# 批量删除所有 .log 文件 ls *.log | xargs rm -f # 批量压缩所有 .txt 文件(每次传 3 个) ls *.txt | xargs -n 3 gzip # 并行压缩(用 4 个进程同时压缩) ls *.txt | xargs -P 4 -n 1 gzip # 查找并删除所有 .tmp 文件(处理空格文件名) find . -name "*.tmp" -print0 | xargs -0 rm -f # 自定义占位符(批量创建备份) ls *.conf | xargs -I {} cp {} {}.bak

六、组合使用(实战场景)

场景 1:实时监控某个服务的端口状态

bash

watch -n 2 'netstat -tulnp | grep 8888'

场景 2:批量杀死所有 Python 进程

bash

ps aux | grep python | awk '{print $2}' | xargs kill -9 # 更安全的写法(确认后再杀): ps aux | grep python | awk '{print $2}' | xargs -p kill -9 # -p 会询问确认

场景 3:检查某个服务是否在运行

bash

if [ -n "$(pidof udp_server)" ]; then echo "✅ udp_server 正在运行,PID: $(pidof udp_server)" else echo "❌ udp_server 未运行" fi

场景 4:实时监控某个进程的网络连接

bash

watch -n 1 'netstat -tanp | grep $(pidof udp_server)'

七、命令速查表

命令功能最常用法
ping测试网络连通性ping -c 4 baidu.com
netstat查看网络状态netstat -tulnp | grep 8888
watch定时执行命令(监控)watch -n 2 '命令'
pidof按进程名查 PIDpidof nginx
xargs批量执行命令ps aux | grep ... | xargs kill

八、终极总结(一句口诀)

ping 测通不通,netstat 看端口;
watch 实时瞅,pidof 找 PID;
xargs 批量干,组合起来最顺手。

返回列表