Linux netstat命令使用示例

Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

#1 列出所有网络连接

最常用的命令是列出所有当前的连接,使用-a选项:

上面命令显示 tcp, udp 和 unix socket连接,它不是很实用,信息太多。用户通常想根据协议、端口来显示信息。

#2 只列出TCP或UDP连接

使用-t选项显示tcp连接:

使用-u选项显示udp连接:

上面的输出包括 ipv4和ipv6的连接。

#3 禁止反向DNS查询,提高输出速度

默认下,netstat命令试图找到ip对应的主机名,这需要更多的时间。如果你不想知道主机名,只想输出ip地址,可以使用-n选项:

上面命令显示所有tcp连击,但是不进行反向DNS查询。

#4 列出状态是LISTEN的连接

任何一个网路服务程序都会监听端口,等待客户端的连接。使用-l选项列出监听的端口,下面命令列出tcp监听端口:

如果你想查看所有监听的端口,去掉-t选项;如果你想查看udp监听端口,把-t选项替换为-u选项。

注意:不要加-a选项,它会列出所有连接,包含监听的端口。

#5 获得进程名称/pid和用户id

当查看网络连接时,知道每个对应连接的进程是很有用的。例如apache/nginx web服务都使用80端口,你可以根据连接判断运行的web服务是apache,还是nginx,或判断web服务是否正常提供服务。

使用-t选项显示进程信息:

注意:上面命令需要root权限。

使用-p加e选项显示用户名:

#6 输出统计信息

netstat命令也可以输出网络统计信息,包括收到数据包的总数、不同网络协议对应的数据流量。

使用-s选项:

只输出TCP或UDP协议的统计信息,只要加入-t或-u选项就行了。

#7 查看内核路由表

使用-r选项,它的输出和route命令是一样的。

加入n选项,只显示ip。

#8 查看网络接口

使用-i选项:

也可以显示更详细的信息,加上e选项:

#9 实时输出

使用-c选项:

#10 显示multicast群组信息

使用-g选项

#11 输出活动的网络连接

活动的网络连接的状态是“ESTABLISHED”,可以使用grep筛选:

实时查看活动的网络连接,配合watch和grep命令:

#12 检测一个服务是否运行

判断服务(http,smtp 或 ntp)是否运行:

更多帮助:

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注