# 查看端口状态

Linux 查看端口占用情况可以使用 lsof 和 netstat 命令。 如果linux中没有这两个命令,则yum安装一下.

yum install -y lsof
yum install -y net-tools

# lsof命令

lsof(list open files)是一个列出当前系统打开文件的工具。 一般格式为: lsof -i:端口号

例如查看8080端口的占用情况

lsof -i:8080 

# netstat命令

netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。

netstat 查看端口占用语法格式:

netstat -tunlp | grep 端口号

netstat - atulnp会显示所有端口和所有对应的程序,用grep管道可以过滤出想要的字段

-a :all,表示列出所有的连接,服务监听,Socket资料 -t :tcp,列出tcp协议的服务 -u :udp,列出udp协议的服务 -n :port number, 用端口号来显示 -l :listening,列出当前监听服务 -p :program,列出服务程序的PID

例如查看 8000 端口的情况,使用以下命令:

netstat -tunlp | grep 8000
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN   26993/nodejs 

在查到端口占用的进程后,如果你要杀掉对应的进程可以使用 kill 命令:

kill -9 PID

如上实例,我们看到 8000 端口对应的 PID 为 26993,使用以下命令杀死进程:

kill -9 26993

使用netstat -aptn命令行,查看所有开启的端口号,

netstat -nupl 查看所有使用udp协议的端口号 netstat -ntpl 查看所有使用tcp协议的端口号 netstat -anp 查看系统端口使用情况

# 客户端测试服务端端口是否开放

看到查询的有Local、Address、Foregin、Program name

Local Address:访问端口的方式,0.0.0.0 是对外开放端口,说明80端口外面可以访问;127.0.0.1 说明只能对本机访问,外面访问不了此端口; Foregin Address:对外开放,一般都为0.0.0.0:* Program name:此端口是那个程序在用,程序挂载此端口

重点说明: 0.0.0.0 是对外开放,通过服务域名、ip可以访问的端口,127.0.0.1 只能对本机 localhost访问,也是保护此端口安全性; ::: 这三个: 的前两个”::“,是“0:0:0:0:0:0:0:0”的缩写,相当于IPv6的“0.0.0.0”,就是本机的所有IPv6地址,第三个:是IP和端口的分隔符.

# 服务端端口状态解释

1、LISTENING状态   FTP服务启动后首先处于侦听(LISTENING)状态。   State显示是LISTENING时表示处于侦听状态,就是说该端口是开放的,等待连接,但还没有被连接。就像你房子的门已经敞开的,但还没有人进来。   从TCPView可以看出本机开放FTP的情况。它的意思是:程序inetinfo.exe开放了21端口,FTP默认的端口为21,可见在本机开放了FTP服务。目前正处于侦听状态。   inetinfo.exe:1260 TCP 0.0.0.0:21 0.0.0.0:0 LISTENING 2、ESTABLISHED状态   现在从192.168.1.1这台计算机访问一下192.168.1.10的FTP服务。在本机的TCPView可以看出端口状态变为ESTABLISHED。   ESTABLISHED的意思是建立连接。表示两台机器正在通信。   下面显示的是本机的FTP服务正在被192.168.1.1这台计算机访问。   inetinfo.exe:1260 TCP 192.168.1.10:21 192.168.1.1:3009 ESTABLISHED   注意:处于ESTABLISHED状态的连接一定要格外注意,因为它也许不是个正常连接。后面我们要讲到这个问题。 3、 TIME_WAIT状态   现在从192.168.1.1这台计算机结束访问192.168.1.10的FTP服务。在本机的TCPView可以看出端口状态变为TIME_WAIT。   TIME_WAIT的意思是结束了这次连接。说明21端口曾经有过访问,但访问结束了。   [System Process]:0 TCP 192.168.1.10:21 192.168.1.1:3009 TIME_WAIT 4、小技巧   a、可以telnet一个开放的端口,来观察该端口的变化。比如看1025端口是开放的,在命令状态(如图1运行cmd)运行:   telnet 192.168.1.10 1025   b、从本机也可以测试,只不过显示的是本机连本机   c、在Tcpview中双击连接可看出程序的位置,右键点击该连接,选择End Process即可结束该连接。

关于评论

评论前请填好“昵称”、“邮箱”这两栏内容,否则不会收到回复,谢谢!