netstat命令_关于netstat命令的总结

1efe9f5642d6f7b1ae092a7e6c2fc610.gif

之前用netstat命令主要是查看端口占用,比如,启动某个服务之前,得先看一下这个服务用到的端口是否已经被占用了。

比如mysql,mysql默认占用3306端口,在启动之前,我们就得看看3306端口是否已经被占用了,如果被别的程序占用了,我们就得以另一个端口启动了。

命令:

netstat -nlp | grep 3306

也可以用

netstat -nap | grep 3306

这两个命令有啥区别呢?以前一直不是很理解,一直都用 -nlp来查端口占用,今天突然决心要把它弄明白,以下为个人总结。

netstat,顾明思议,网络状态,之前接触过pidstat,同理,进程状态。

-a:显示所有socket

-l:仅显示监听状态(LISTEN)的socket

这样看来,-l选项是-a选项的子集。

测试一下,刚开始,没有程序连接mysql,执行这两个命令的结果都是一样的,如下:

61006135aa38254394bf371beb92e7d8.png

但是当我们让客户端连接mysql以后,再执行这两个命令,结果就不一样了

先用Navicat远程连接mysql

05e9f71c824d1ac788fcc0107f3bfe55.png

执行上面两个命令,结果如下:

11787c72876b75069980352026c09cb5.png

选项-nap查出的结果要比选项-nlp查出的结果多。

在netstat命令的输出中,有一项是State,状态,也就是socket连接都是有状态的(个人理解),在上图的输出中, TIME_WAIT:TCP在关闭的时候有个四次握手的过程,主动关闭方在四次握手的最后一个ACK发送之后会变成TIME_WAIT状态(建立连接,三次握手,释放连接,四次握手)。 LISTEN:监听状态,等待远程机器的连接请求。

ESTABLISHED:建立连接状态,可以进行通信

以上仅为个人总结,仅供参考,大家可以在自己的机器上试试。看来以后还得再学学TCP三次握手等内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值