1.netstat

netstatNetwork Statistics)是一个用于查看网络状态的命令行工具,常用于排查服务器和本机的网络连接、监听端口、网络统计信息等问题。

常用选项总览(功能分类)

① 显示连接/监听状态

选项 含义
-a 显示所有连接(Active)和监听端口(Listening)
-t 仅显示 TCP 连接
-u 仅显示 UDP 连接
-l 仅显示正在监听的端口
-n 显示数字地址和端口(不解析名称)
-p 显示哪个进程(PID/程序)使用了该连接

② 显示接口/统计信息

选项 含义
-i 显示网络接口状态信息(收发统计)
-s 显示协议统计(TCP/UDP/ICMP 等)
-e 显示更详细的接口信息
-c 每秒重复输出(持续查看状态)

③ 显示路由信息

选项 含义
-r 显示路由表(相当于 routeip route

✅ 常用组合命令汇总

命令 用途说明
netstat -an 显示所有连接(不解析名称)
netstat -tuln 显示所有监听中端口(TCP/UDP,数字形式)
sudo netstat -tulnp 显示监听端口和关联进程(需要 sudo)
netstat -s 显示协议统计(TCP/UDP/ICMP 的包数等)
netstat -i 显示各个网络接口的统计信息(接收/发送/丢包)
netstat -r 显示路由表
netstat -c 实时刷新连接信息(每秒更新)

示例详解

查看所有 TCP 连接:

1
netstat -tn

查看当前监听端口和所属程序:

1
sudo netstat -tulnp

输出:

1
2
tcp   0   0 0.0.0.0:22   0.0.0.0:*   LISTEN   1162/sshd
tcp 0 0 0.0.0.0:1883 0.0.0.0:* LISTEN 9592/mosquitto

2.ss

ssSocket Statistics)用来查看当前系统中所有的 socket(套接字)连接、监听端口、使用进程 等,是网络调试排查的利器。比netstat更加现代,更好用。

常用命令示例

1.显示所有连接(TCP、UDP)

1
ss -a

2.显示所有监听的端口(TCP/UDP)

1
ss -tuln
  • -t:TCP
  • -u:UDP
  • -l:仅监听
  • -n:不解析主机名/服务名(提升速度)

3.显示进程占用的端口(带 PID/程序名)

1
sudo ss -tulnp
1
2
Netid State   Recv-Q Send-Q Local Address:Port  Peer Address:Port   Process
tcp LISTEN 0 128 0.0.0.0:1883 0.0.0.0:* users:(("mosquitto",pid=9592,fd=6))

4.查看某端口是否被监听(比如 1883)

1
sudo ss -tulnp | grep :1883

5.显示所有 UNIX 本地 socket(如 /run/php/php7.4-fpm.sock)

1
ss -x

3. head 和 tail

headtail 是 Linux/Unix 中两个常用的命令行工具,分别用来查看文件的开头和结尾内容。常用于查看日志文件、文本文件的前几行或后几行。

head命令用法详解

作用:显示文件或标准输入的开头部分。

语法

1
head [选项] [文件...]

常用选项

选项 说明 示例
-n <行数> 指定显示的行数,比如 -n 20 显示前20行 head -n 20 filename
-c <字节数> 按字节数显示开头内容,比如前100字节 head -c 100 filename
-q 静默模式,多个文件时不显示文件名 head -q file1 file2
-v 显示文件名,默认多个文件时会显示文件名 head -v file1 file2
--help 显示帮助信息 head --help

示例

  • 显示文件前10行(默认)

    1
    head filename
  • 显示文件前20行

    1
    head -n 20 filename
  • 显示文件前100字节

    1
    head -c 100 filename
  • 查看多个文件前10行,不显示文件名

    1
    head -q file1 file2

tail命令用法详解

作用:显示文件或标准输入的结尾部分。

语法

1
tail [选项] [文件...]

常用选项

选项 说明 示例
-n <行数> 指定显示的行数,比如 -n 20 显示最后20行 tail -n 20 filename
-c <字节数> 按字节数显示结尾内容,比如最后100字节 tail -c 100 filename
-f 实时跟踪文件增长,文件追加时显示最新内容 tail -f filename
-F 类似 -f,但文件被移动或删除后也能继续跟踪(更健壮) tail -F filename
--pid=<pid> 进程终止时停止跟踪 tail --pid=1234 -f filename
-q 多文件时不显示文件名 tail -q file1 file2
-v 多文件时显示文件名 tail -v file1 file2
--help 显示帮助信息 tail --help

示例

  • 显示文件最后10行(默认)

    1
    tail filename
  • 显示文件最后20行

    1
    tail -n 20 filename
  • 显示文件最后100字节

    1
    tail -c 100 filename
  • 实时跟踪日志文件

    1
    tail -f /var/log/syslog
  • 使用 -F 监控日志文件,日志轮转时仍能继续跟踪

    1
    tail -F /var/log/syslog
  • 跟踪多个文件最后10行,但不显示文件名

    1
    tail -q file1 file2

进阶技巧

  • 结合 grep 过滤

    1
    tail -f /var/log/syslog | grep "error"
  • headtail 结合用法:显示文件中间部分,比如第20行到第40行

    1
    head -n 40 filename | tail -n 21

4.tcpdump

tcpdump 是 Linux/UNIX 下非常强大的网络抓包工具,能捕获并分析经过指定接口的数据包,适用于调试、排错、安全审计等场景。

img