菜鸟科技网

当前连接有哪些查看命令?

在Linux和Unix-like系统中,查看当前网络连接状态是网络管理和故障排查的常见需求,通过命令行工具,可以实时监控系统的网络连接、端口占用、进程关联等信息,以下是几种常用的查看当前连接的命令及其详细用法。

当前连接有哪些查看命令?-图1
(图片来源网络,侵删)

ss 命令

ssnetstat的替代工具,速度更快,功能更强大,默认安装在现代Linux发行版中,它可以显示套接字统计信息,包括TCP、UDP、RAW等协议的连接状态。

  • 基本用法

    ss -tulnp
    • -t:显示TCP连接
    • -u:显示UDP连接
    • -l:仅显示监听端口
    • -n:以数字形式显示地址和端口(不解析域名)
    • -p:显示进程ID和名称
  • 输出示例

    State      Recv-Q Send-Q Local Address:Port   Peer Address:Port   Process
    LISTEN     0      128          0.0.0.0:22         0.0.0.0:*        users:(("sshd",pid=1234,fd=3))
    ESTAB      0      0        192.168.1.100:22    10.0.0.5:12345    users:(("sshd",pid=1235,fd=4))

netstat 命令

netstat是传统工具,仍广泛使用,尤其在旧系统中,功能与ss类似,但性能稍差。

当前连接有哪些查看命令?-图2
(图片来源网络,侵删)
  • 基本用法

    netstat -tulnp

    参数与ss命令一致,但需注意netstat可能需要安装net-tools包。

  • 输出示例

    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 192.168.1.100:22       10.0.0.5:12345          ESTABLISHED 1235/sshd

lsof 命令

lsof(List Open Files)可以列出系统打开的文件,包括网络连接,通过指定-i参数,可筛选网络相关连接。

  • 基本用法

    lsof -i -P -n
    • -i:显示网络文件
    • -P:不解析端口号
    • -n:不解析主机名
  • 输出示例

    COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    sshd      1234 root    3u  IPv4   12345      0t0  TCP *:ssh (LISTEN)
    sshd      1235 root    4u  IPv4   12346      0t0  TCP 192.168.1.100:ssh->10.0.0.5:12345 (ESTABLISHED)

netstatss 的对比

特性 ss 命令 netstat 命令
默认安装 是(现代Linux) 否(需安装net-tools
性能 更快,基于内核API 较慢,扫描/proc文件系统
功能 支持更多统计信息(如-w 功能相对基础
推荐场景 生产环境、高并发系统 兼容旧系统或简单检查

高级用法

  • 查看特定端口的连接
    ss -tulnp | grep :80  # 查看80端口相关连接
  • 统计连接状态
    ss -s  # 显示连接总数及各状态统计
  • 实时监控连接变化
    watch -n 1 'ss -tulnp'  # 每秒刷新一次连接状态

相关问答FAQs

Q1: ssnetstat 有什么区别?哪个更推荐?
A1: ssnetstat的升级版,基于内核API,性能更高,默认支持更多功能(如TCP状态统计),推荐在Linux系统优先使用ss,除非需要兼容旧环境或依赖netstat的特定输出格式。

Q2: 如何查看某个进程占用的所有网络连接?
A2: 使用lsof命令结合进程名或PID,

lsof -i -P -n -p 1234  # 查看PID为1234的进程的网络连接

或通过ss/netstat过滤:

ss -tulnp | grep 'pid=1234'
分享:
扫描分享到社交APP
上一篇
下一篇