概述
netstat
命令可以用于查看当前系统的网络状态情况。
语法
该命令的语法如下:
netstat [选项]
该命令支持的选项有:
选项 | 说明 |
---|---|
-a, --all | 显示所有连线中的Socket |
-A<网络类型>, --<网络类型> | 列出该网络类型连线中的相关地址 |
-c, --continuous | 持续列出网络状态 |
-C, --cache | 显示路由器配置的快取信息 |
-e, --extend | 显示网络其他相关信息 |
-F, --fib | 显示路由缓存 |
-g, --groups | 显示多重广播功能群组组员名单 |
-h, --help | 在线帮助 |
-i, --interfaces | 显示网络界面信息表单 |
-l, --listening | 显示监控中的服务器的Socket |
-M, --masquerade | 显示伪装的网络连线 |
-n, --numeric | 直接使用IP地址,而不通过域名服务器 |
-N, --netlink或–symbolic | 显示网络硬件外围设备的符号连接名称 |
-o, --timers | 显示计时器 |
-p, --programs | 显示正在使用Socket的程序识别码和程序名称 |
-r, --route | 显示Routing Table |
-s, --statistics | 显示网络工作信息统计表 |
-t, --tcp | 显示TCP传输协议的连线状况 |
-u, --udp | 显示UDP传输协议的连线状况 |
-v, --verbose | 显示指令执行过程 |
-V, --version | 显示版本信息 |
-w, --raw | 显示RAW传输协议的连线状况 |
-x, --unix | 此参数的效果和指定"-A unix"参数相同 |
–ip, --inet | 此参数的效果和指定"-A inet"参数相同 |
使用
查看详细的网络状况
如果要查看所有的网络状况(包括 TCP 和 UDP),命令格式如下:
netstat -a
列出所有 TCP 端口的网络
如果要查看所有跟 TCP 有关的网络,命令格式如下:
# 查看所有 TCP 端口的网络状态信息
netstat -at
# 查看所有 UDP 端口的网络状态信息
netstat -au
显示进程 ID 和进程名称信息
如果要在查询结果中显示进程 ID 和进程名称信息,可以加上 -p
选项。
# 查看所有 TCP 端口的网络状态信息并显示进程 ID 和进程名称
netstat -pt
# 查看所有 UDP 端口的网络状态信息并显示进程 ID 和进程名称
netstat -pu
显示网卡列表
如果要查看网卡信息,可以使用 -i
选项。命令格式如下:
netstat -i
显示网络统计信息
命令格式如下:
netstat -s
查找指定程序的端口
如果要查找指定程序的端口信息,可以通过如下命令格式:
# 语法
netstat -tunlp | grep 程序名称
# 示例,查找 ssh 程序运行的端口号
netstat -tunlp | grep ssh
查找属于指定端口的进程
如果要查找运行在指定端口的进程,可以使用如下命令格式:
# 语法
netstat -an | grep 端口号
# 示例,查找运行在 80 端口的进程
netstat -an | grep ":22\b"
通过端口号查找进程 ID
如果要通过指定端口号查找它所属进程 ID,可以通过如下命令:
# 语法
netstat -tunlp | grep 端口号 | awk '{print $7}' | cut -d "/" -f 1
# 示例,查找使用了 22 端口的进程 ID
netstat -tunlp | grep 22 | awk '{print $7}' | cut -d "/" -f 1