linux之netstat命令
netstat用于显示各种网络相关的信息,如网络连接,路由表接口状态(interface statistics),
masquerade连接,多播成员(Multicast Memberships)等等。
执行netstat后,从输出结果整体上看,分为两部分:
① Active Internet connections,有源TCP连接,
"Recv-Q" "Send-Q"指%OA的是接受队列和发送队列,这些数字一般为0,如果不是则表示软件包
正在队列中堆积(这种情况比较少见)。
② Active UNIX domain sockets,称为有源unix域套接口(和网络套接字一样,但是只能用于本
机通信,性能可以提高一倍)。
Proto 显示连接使用的协议,
RefCnt 表示连接到本套接口上的进程号,
Types显示套接口的类型,
State显示套接口当前的状态,
Path表示连接到套接口的其它进程使用的路径名。
参数:
-a 显示所有选项,默认不显示LISTEN相关
-t 仅显示tcp相关选项
-u 仅显示udp相关选项
-n 拒绝显示别名、尽量显示数字
-l 仅列出有在Listen(监听)的服务状态
-p 显示建立相关连接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个隔定时间,执行该netstat命令
注:LISTEN和LISTENING的状态只有用-a或者-l才能看到
实例:
1、netstat -a | more 列出所有端口(包括监听和未监听)
netstat -at
netstat -au
2、列出所有处于监听状态的sockets
netstat -l 只显示监听端口
netstat -lt
netstat -lu
netstat -lx 只列出所有监听unix端口
3、显示每个协议的统计信息
netstat -s
netstat -st
netstat -su
4、netstat -n 不显示主机、端口和用户名
netstat -a --numeric-ports
netstat -a --numeric-hosts
netstat -a --numeric-users
5、netstat -c 每隔一段时间显示一次netstat信息
6、netstat --verbose 显示系统不支持的地址族
7、netstat -r 显示核心路由信息
netstat -rn 显示数字格式,不显示主机名称
8、netstat -ap | grep ssh (root权限显示所有信息)
显示进程运行的端口
netstat -an | grep ':80' 找出运行在指定端口的进程
9、netstat -i 显示网络接口列表
netstat -ie (ifconfig)
10、netstat -tunlp 查看进程端口
netstat -tunlp | grep 进程号