linux下 netstat查看端口状态命令

在Linux使用过程中,需要了解当前系统开放了哪些端口,并且要查看开放这些端口的具体进程和用户,可以通过netstat命令进行简单查询

netstat命令各个参数说明如下:

  -t : 指明显示TCP端口 
  -u : 指明显示UDP端口 
  -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序) 
  -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。 
  -n : 不进行DNS轮询,显示IP(可以加速操作) 
   

即可显示当前服务器上所有端口及进程服务,于grep结合可查看某个具体端口及服务情况:

[]$ netstat -ntlp //查看当前所有tcp端口·

[]$ netstat -ntulp |grep 80 //查看所有80端口使用情况·

[]$ netstat -an | grep 3306 //查看所有3306端口使用情况·


连上ssh后


要查看当前SSH默认端口22是否启动可以做如下操作:


[luoyiran@luoyiran ~]$ netstat -tlnp|grep 22
(Not all processes could be identified, non-owned process info

 will not be shown, you would have to be root to see it all.)

//不是所有的进程都可以被识别,非拥有的过程信息,不会被显示出来,你必须是根才能看到一切。

tcp        0      0 192.168.122.1:53            0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      -                   
tcp        0      0 :::22                       :::*                        LISTEN      -                   


然后先解释几个大家可能看不明白的地方。

首先大家可能好奇0.0.0.0是什么鬼?

这里解释一下:1、0.0.0.0代表本机上可用的任意地址。 比如0.0.0.0:135 表示本机上所有地址的135端口,这样多ip计算机就不用重复显示了。

2、TCP 0.0.0.0:80表示在所有的可用接口上监听TCP80端口 
3、0.0.0.0为默认路由,即要到达不再路由表里面的网段的包都走0.0.0.0这条规则

然后127.0.0.1就是表示你本机ip地址的意思了。

然后[::]:22这又是什么鬼?

这个表示ipv6的22号端口的意思。

还有UDP的外部链接怎么都是*:*呢?

*:*是网址的通配符,就是192.168.15.12,这个类型的整体描述。

最后大家看不懂的地方可能就是状态(stat)了

LISTEN:(Listening for a connection.)侦听来自远方的TCP端口的连接请求

SYN-SENT:(Active; sent SYN. Waiting for a matching connection request after having sent a connection request.)再发送连接请求后等待匹配的连接请求

SYN-RECEIVED:(Sent and received SYN. Waiting for a confirming connection request acknowledgment after having both received and sent connection requests.)再收到和发送一个连接请求后等待对方对连接请求的确认

ESTABLISHED:(Connection established.)代表一个打开的连接

FIN-WAIT-1:(Closed; sent FIN.)等待远程TCP连接中断请求,或先前的连接中断请求的确认

FIN-WAIT-2:(Closed; FIN is acknowledged; awaiting FIN.)从远程TCP等待连接中断请求

CLOSE-WAIT:(Received FIN; waiting to receive CLOSE.)等待从本地用户发来的连接中断请求

CLOSING:(Closed; exchanged FIN; waiting for FIN.)等待远程TCP对连接中断的确认

LAST-ACK:(Received FIN and CLOSE; waiting for FIN ACK.)等待原来的发向远程TCP的连接中断请求的确认

TIME-WAIT:(In 2 MSL (twice the maximum segment length) quiet wait after close. )等待足够的时间以确保远程TCP接收到连接中断请求的确认

CLOSED:(Connection is closed.)没有任何连接状态



猜你喜欢

转载自blog.csdn.net/luoyir1997/article/details/80551297