netstat命令用来查看系统中所有的网络套接字连接情况。
命令格式
netstat [选项]
参考:https://linux.die.net/man/8/netstat。
netstat
命令用来查看系统中所有的网络套接字连接情况。
命令格式
netstat
[选项]
参考:https://linux.die.net/man/8/netstat。
netstat
命令用来查看系统中所有的网络套接字连接情况。
命令格式
netstat
[选项]
命令功能
netstat
命令用来查看系统中所有的网络套接字连接情况,包括TCP、UDP和Unix套接字。也可以显示路由表,接口状态,masquerade 连接,多播成员(Multicast Memberships)等等。另外,它还可以列出处于监听状态(等待接入请求)的套接字,比如想确认系统中的web服务是否起来,就可以查看80端口有没有打开。
命令参数
- -a或–all:显示所有选项,默认不显示LISTEN相关。
- -t或–tcp:(TCP)仅显示TCP相关选项。
- -u或–udp:(UDP)仅显示UDP相关选项。
- -x或–unix:此参数的效果和指定”-A unix”参数相同。
- -n或–numeric:拒绝显示别名,能显示数字的全部转化成数字。
- -l或–listening:仅列出有在Listen(监听)的服务状态。
- -g或–groups:显示多重广播功能群组组员名单。
- -p或–programs:显示建立相关链接的程序名和PID。
- -r或–route:显示路由信息,路由表。
- -e或–extend:显示扩展信息,例如UID等。
- -s或–statistics:按各个协议进行统计。
- -c或–continuous:每隔一个固定时间,执行该netstat命令。
- -g或–groups:显示多重广播功能群组组员名单。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到。
输出信息含义
netstat
的输出结构可以分为两个部分:
一个是Active Internet connections,称为有源TCP连接。其中”Recv-Q”和”Send-Q”指的是接收队列和发送队列。
1 | Active Internet connections (w/o servers) |
另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。
1 | Active UNIX domain sockets (w/o servers) |
实例
实例:列出当前所有的连接(-a)
命令:netstat -a
输出:
1 | root@iZhp3fz3iqsadyes2s8ayeZ:~# netstat -a |
实例:列出所有TCP端口(-t)
命令:netstat -at
输出:
1 | root@iZhp3fz3iqsadyes2s8ayeZ:~# netstat -at |
示例:列出所有监听TCP的端口,数字显示
描述:查看本机监听的(-l)TCP连接(-t)的IP地址的数字显示(-n)。不适用-n的话,就会用端口的约定名称来显示,例如80端口,会显示成http。
命令:netstat -tnl
输出:
1 | root@iZhp3fz3iqsadyes2s8ayeZ:~# netstat -tnl |
示例:获取本机的所有的TCP连接的进程名、进程号以及用户ID
描述:使用-p选项查看进程信息,-ep选项可以同时查看进程名和用户名。另外,-n和-e选项一起使用,User列的属性就是用户ID,而不是用户名。
查看本机所有的(al)TCP连接的(t)进程名(p)和用户名ID(ne)。
命令:netstat -altpen
1 | root@iZhp3fz3iqsadyes2s8ayeZ:~# netstat -altpen |
这个可能是最屌的命令了,也可能是最常用的命令了。
还有一些实例,暂时不常用,有待完善。