linux如何查看服务器开放的端口和启用的端口

发布时间:2022-08-10 14:08:48 作者:iii
来源:亿速云 阅读:743

Linux如何查看服务器开放的端口和启用的端口

在Linux服务器管理中,了解服务器上开放的端口和启用的端口是非常重要的。开放的端口可能意味着服务正在运行,而启用的端口则可能意味着服务已经配置好但尚未启动。本文将详细介绍如何在Linux系统中查看服务器开放的端口和启用的端口。

1. 使用netstat命令查看开放的端口

netstat是一个强大的网络工具,可以用来查看网络连接、路由表、接口统计信息等。通过netstat命令,我们可以查看服务器上所有开放的端口。

1.1 查看所有开放的端口

要查看服务器上所有开放的端口,可以使用以下命令:

netstat -tuln

执行该命令后,你将看到类似以下的输出:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 :::80                   :::*                    LISTEN     
udp        0      0 0.0.0.0:68              0.0.0.0:*                          

在这个输出中,Local Address列显示了服务器上开放的端口。例如,0.0.0.0:22表示服务器正在监听所有IP地址的22端口(SSH服务),0.0.0.0:80表示服务器正在监听所有IP地址的80端口(HTTP服务)。

1.2 查看特定协议的端口

如果你只想查看TCP或UDP协议的端口,可以使用以下命令:

netstat -tln
netstat -uln

1.3 查看特定服务的端口

如果你想查看某个特定服务(如SSH)的端口,可以使用grep命令进行过滤:

netstat -tuln | grep :22

这将只显示与22端口相关的信息。

2. 使用ss命令查看开放的端口

ssnetstat的替代工具,功能更强大,性能更好。ss命令也可以用来查看服务器上开放的端口。

2.1 查看所有开放的端口

要查看服务器上所有开放的端口,可以使用以下命令:

ss -tuln

执行该命令后,你将看到类似以下的输出:

Netid  State      Recv-Q Send-Q Local Address:Port  Peer Address:Port              
udp    UNCONN     0      0      0.0.0.0:68          0.0.0.0:*                      
tcp    LISTEN     0      128    0.0.0.0:22          0.0.0.0:*                      
tcp    LISTEN     0      128    0.0.0.0:80          0.0.0.0:*                      
tcp    LISTEN     0      128    :::22               :::*                          
tcp    LISTEN     0      128    :::80               :::*                          

在这个输出中,Local Address:Port列显示了服务器上开放的端口。例如,0.0.0.0:22表示服务器正在监听所有IP地址的22端口(SSH服务),0.0.0.0:80表示服务器正在监听所有IP地址的80端口(HTTP服务)。

2.2 查看特定协议的端口

如果你只想查看TCP或UDP协议的端口,可以使用以下命令:

ss -tln
ss -uln

2.3 查看特定服务的端口

如果你想查看某个特定服务(如SSH)的端口,可以使用grep命令进行过滤:

ss -tuln | grep :22

这将只显示与22端口相关的信息。

3. 使用lsof命令查看开放的端口

lsof是一个列出当前系统打开文件的工具。由于在Linux中,一切皆文件,网络连接也被视为文件,因此lsof也可以用来查看服务器上开放的端口。

3.1 查看所有开放的端口

要查看服务器上所有开放的端口,可以使用以下命令:

lsof -i -P -n

执行该命令后,你将看到类似以下的输出:

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd      1234  root    3u  IPv4  12345      0t0  TCP *:22 (LISTEN)
apache2   2345  www-data 3u  IPv4  23456      0t0  TCP *:80 (LISTEN)

在这个输出中,NAME列显示了服务器上开放的端口。例如,*:22表示服务器正在监听所有IP地址的22端口(SSH服务),*:80表示服务器正在监听所有IP地址的80端口(HTTP服务)。

3.2 查看特定协议的端口

如果你只想查看TCP或UDP协议的端口,可以使用以下命令:

lsof -iTCP -P -n
lsof -iUDP -P -n

3.3 查看特定服务的端口

如果你想查看某个特定服务(如SSH)的端口,可以使用grep命令进行过滤:

lsof -i -P -n | grep :22

这将只显示与22端口相关的信息。

4. 使用nmap命令扫描开放的端口

nmap是一个网络扫描工具,可以用来扫描服务器上开放的端口。与前面的命令不同,nmap不仅可以查看本地服务器上的端口,还可以扫描远程服务器上的端口。

4.1 扫描本地服务器上的端口

要扫描本地服务器上开放的端口,可以使用以下命令:

nmap localhost

执行该命令后,你将看到类似以下的输出:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-01 12:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00010s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http

Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds

在这个输出中,PORT列显示了服务器上开放的端口。例如,22/tcp表示服务器正在监听22端口(SSH服务),80/tcp表示服务器正在监听80端口(HTTP服务)。

4.2 扫描远程服务器上的端口

要扫描远程服务器上开放的端口,可以使用以下命令:

nmap 192.168.1.100

192.168.1.100替换为你要扫描的远程服务器的IP地址。

5. 查看启用的端口

启用的端口通常是指已经配置在服务器上但尚未启动的服务端口。要查看这些端口,可以检查服务器的配置文件。

5.1 查看/etc/services文件

/etc/services文件包含了系统中所有已知的服务及其对应的端口号。你可以使用以下命令查看该文件:

cat /etc/services

在这个文件中,你可以找到所有已知的服务及其端口号。例如:

ssh             22/tcp
http            80/tcp

5.2 查看/etc/xinetd.d/目录

如果你的服务器使用xinetd作为超级服务器,你可以查看/etc/xinetd.d/目录中的配置文件来了解哪些服务已经配置但尚未启动。

ls /etc/xinetd.d/

在这个目录中,每个文件代表一个服务。你可以查看这些文件来了解哪些服务已经配置但尚未启动。

5.3 查看systemctl管理的服务

如果你的服务器使用systemd作为初始化系统,你可以使用systemctl命令来查看哪些服务已经启用但尚未启动。

systemctl list-unit-files --type=service | grep enabled

这将列出所有已经启用的服务。你可以进一步查看这些服务的配置文件来了解它们使用的端口。

6. 总结

在Linux服务器管理中,查看服务器上开放的端口和启用的端口是非常重要的。通过使用netstatsslsofnmap等工具,你可以轻松地查看服务器上开放的端口。而通过查看/etc/services文件、/etc/xinetd.d/目录和systemctl管理的服务,你可以了解哪些端口已经配置但尚未启动。掌握这些工具和方法,将有助于你更好地管理和维护Linux服务器。

推荐阅读:
  1. 如何查看服务器是否开放某个端口
  2. Linux开放端口和关闭端口的命令

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux 服务器

上一篇:怎么使用Java编写网络聊天程序

下一篇:C语言取整及函数使用的方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》