Linux中netstat命令详解
Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
linux上面排查某个端口号是否被占用
1.netstat -anp |grep 端口号
如下,我以3306为例,netstat -anp |grep 3306(此处备注下,我是以普通用户操作,故加上了sudo,如果是以root用户操作,不用加sudo即可查看),如下图1:
图1
图1中主要看监控状态为LISTEN表示已经被占用,最后一列显示被服务mysqld占用,查看具体端口号,只要有如图这一行就表示被占用了。
2.netstat -nultp(此处不用加端口号)
该命令是查看当前所有已经使用的端口情况,如图2:
图2
图中可以看出我的82端口没有被占用
3.netstat -anp |grep 82查看82端口的使用情况,如图3:
图3
可以看出并没有LISTEN那一行,所以就表示没有被占用。此处注意,图中显示的LISTENING并不表示端口被占用,不要和LISTEN混淆哦,查看具体端口时候,必须要看到tcp,端口号,LISTEN那一行,才表示端口被占用了
下面是一些常用的命令
常见参数
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
1、列出所有的连接(包括监听和未监听的)
netstat -a
$ netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp0 0 enlightened:domain *:*LISTEN
tcp0 0 localhost:ipp *:*LISTEN
tcp0 0 enlightened.local:54750 li240-5.members.li:http ESTABLISHED
tcp0 0 enlightened.local:49980 del01s07-in-f14.1:https ESTABLISHED
tcp60 0 ip6-localhost:ipp [::]:*LISTEN
udp0 0 enlightened:domain *:*udp0 0 *:bootpc *:*udp0 0 enlightened.local:ntp *:*udp0 0 localho