我们已经学习了网络的很多知识,现在来了解一个重要的命令,netstat。
功能
netstat是基于Netstat这个命令行工具的指令。
它可以用来查询系统上的网络套接字连接情况,包括tcp,udp以及Unix套接字;另外它还能列出路由表,接口状态和多播成员等信息。也就是说可以让我们得知整个Linux系统的网络情况。
选项
选项 | 含义 |
-a(- -all) | 显示所有连线中的socket |
-c(- -continuous) | 持续列出网络状态 |
-C(- -cache) | 显示路由器配置的快取信息 |
-e(- -extend) | 显示网络其他相关信息 |
-F(- -fib) | 显示FIB |
-g(- -groups) | 显示多重广播功能群组织员名单 |
-h(- -help) | 在线帮助 |
-i(- -interfaces) | 显示网络界面信息表单 |
-l(- -listening) | 显示监控中的服务器的socket |
-M(–masquerade) | 显示伪装的网络连线 |
-n(- -numeric) | 直接使用IP地址,不通过域名解析器 |
-o(- -timers) | 显示计时器 |
-p(- -programs) | 显示正在使用socket的程序识别码和程序名称 |
-r(- -route) | 显示路由表信息 |
-s(- -statistice) | 显示网络工作信息统计表 |
-t(- -tcp) | 显示TCP传输协议的连接状况 |
-u(- -udp) | 显示UDP传输协议的连接状况 |
-x(- -unix) | 显示Unix连线中的连接状况 |
-V(- -version) | 显示版本信息 |
-v(- -verbose) | 显示指令执行过程 |
-w(- -raw) | 显示RAW传输协议的连接情况 |
实例
- 列出所有端口 (包括监听和未监听的)
- 列出所有的tcp协议的端口
- 列出所有的UDP协议的端口
- 同样的,列出常用监听的选项用法:
netstat -l #只显示监听端口
netstat -lt #只列出所有监听 tcp 端口
netstat -lu #只列出所有监听 udp 端口
netstat -lx #只列出所有监听 UNIX 端口 - 显示每个协议的统计信息
eg:显示所有端口的统计信息
eg:显示TCP端口的统计信息
eg:显示UDP端口的统计信息 - 在输出中显示 PID 和进程名称
这个与其它开关一起使用,可以添加“PID/进程名称”到netstat输出中,这样debugging的时候可以很方便的发现特定端口运行的程序。 - 持续输出netstat信息(每隔一秒输出网络信息)
- 显示系统不支持的地址族(Address Families)
这个命令是显示指令执行过程的,在最后会出现如下几行: - 显示路由表信息
- 找出程序运行的端口
(grep后接程序名,无权限将不会显示) - 找出运行在指定端口的进程
grep后接端口号 - 显示网络接口列表
显示详细信息,像是ifconfig的结果可以使用:
其他的读者可以自行使用。