Linux如何查看已开启的端口
在Linux系统中,我们可以通过多种方法查看已开启的端口,本文将介绍四种常见的方法:使用netstat
命令、使用lsof
命令、使用ss
命令以及查看/proc
文件系统中的端口信息,下面我们将分别介绍这四种方法。
1. 使用netstat
命令
netstat
命令是一个非常实用的网络工具,可以显示网络连接、路由表、接口统计等信息,要查看已开启的端口,可以使用以下命令:
netstat -tuln
参数说明:
-t
:表示列出TCP端口;
-u
:表示列出UDP端口;
-l
:表示仅列出监听状态的端口;
-n
:表示以数字形式显示地址和端口号,而不进行域名解析。
运行上述命令后,你将看到类似如下的输出:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd
tcp6 0 0 :::80 :::* LISTEN 5678/httpd
udp 0 0 0.0.0.0:53 0.0.0.0:* 1234/dnsmasq
从输出中,我们可以看到本机已经开启了22(SSH)、80(HTTP)和53(DNS)这三个端口。
2. 使用lsof
命令
lsof
命令用于列出当前系统打开的文件描述符,通过结合特定的选项,我们可以查看已开启的端口,要查看已开启的端口,可以使用以下命令:
lsof -i -P -n | grep LISTEN
参数说明:
-i
:表示列出Internet相关的文件描述符;
-P
:表示不将端口号转换为服务名;
-n
:表示不进行DNS反查。
运行上述命令后,你将看到类似如下的输出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1234 root 6u IPv4 12345 0t0 TCP *:22 (LISTEN)
httpd 5678 www-data 5u IPv6 12345 0t0 TCP *:80 (LISTEN)
dnsmasq 1234 root 6u IPv4 12345 0t0 TCP *:53 (LISTEN)
从输出中,我们可以看到本机已经开启了22(SSH)、80(HTTP)和53(DNS)这三个端口。
3. 使用ss
命令
ss
命令是socket statistics
的缩写,它是一个功能强大的网络工具,可以实时监控网络状态,要查看已开启的端口,可以使用以下命令:
ss -tuln | grep 'ESTABLISHED' | cut -d ' ' -f '4' | cut -d '/' -f '1' | sort | uniq -c | sort -nr
运行上述命令后,你将看到类似如下的输出:
2 80/tcp LISTEN 1234/httpd 5678/httpd 1 192.168.1.100:80->192.168.1.1:80 192.168.1.1:80 ESTABLISHED 1234/sshd 5678/httpd 1 [::]:80->[::]:80 [::]:80 ESTABLISHED 1234/sshd 5678/httpd 1 [::]:53->[::]:53 [::]:53 ESTABLISHED 1234/dnsmasq 5678/httpd 1 tcp6 0 192.168.1.1:53 -> :::53 [::]:53 ESTABLISHED 1234/dnsmasq 5678/httpd 1 tcp6 0 [::]:53 -> :::53 [::]:53 ESTABLISHED 1234/dnsmasq 5678/httpd 1 tcp6 0 ::ffff:9999 -> ::ffff:aarp [::]:aarp ESTABLISHED 5678/network … … … … … … …
原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/113015.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复