陈斌彬的技术博客

Stay foolish,stay hungry

Linux - Netstat 命令

netstat信息

执行 netstat,其输出结果为:

img

从整体上看,netstat 的输出结果分为两个部分:

  • 一个是激活 Internet 连接,称为有源 TCP 连接,其中Recv-QSend-Q 指接收队列和发送队列。这些数字一般都应该是0.如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况下见到

  • 另一个是活跃的 UNIX 域套接字,称为有源 Unix 域套接口(跟网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。 Proto:显示连接使用的协议,RefCnt:表示连接到本套接口上的进程号,Types:显示套接口当前的状态,Path:表示连接到套接口的其他进程使用的路径名

    常见参数

  • -a (all)显示所有选项,默认不显示 LISTEN 相关

  • -t (tcp)仅显示 tcp 相关选项
  • -u (udp)仅显示 udp 相关选项
  • -n 拒绝显示别名,能显示数字的全部转化成数字。
  • -l 仅列出有在 Listen (监听) 的服務状态
  • -p 显示建立相关链接的程序名
  • -r 显示路由信息,路由表
  • -e 显示扩展信息,例如 uid 等
  • -s 按各个协议进行统计
  • -c 每隔一个固定时间,执行该 netstat 命令。

提示:LISTENLISTENING 的状态只有用 -a 或者 -l 才能看到

常用命令

1.列出所有的tcp端口(包括监听和未监听的)

img

2.列出所有处于监听状态的tcp端口

img

3.显示所有端口的统计信息

img

4.显示占用某个特定tcp端口的进程的pid

netstat -p 可以与其它开关一起使用,就可以添加 PID/进程名称netstat 输出中,这样排查问题的适合可以很方便的发现特定端口运行的程序

img