网站推广.NET

网站推广.NET

linux如何查看已开启的端口

来源:互联网

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 … … … … … … …

标签: 查看端口命令