在服务器管理和维护过程中,了解服务器上开放的端口是非常重要的。开放的端口不仅关系到服务器的安全性,还直接影响到服务的正常运行。那么,如何查看服务器上都有哪些端口呢?本文将介绍几种常用的命令和方法。

1. 使用 netstat 命令

netstat 是一个常用的网络工具,可以用来查看网络连接、路由表、接口统计信息等。要查看服务器上开放的端口,可以使用以下命令:

netstat -tuln  
  • -t:显示 TCP 端口
  • -u:显示 UDP 端口
  • -l:显示监听中的端口
  • -n:以数字形式显示地址和端口号

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

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  
udp        0      0 0.0.0.0:68             0.0.0.0:*  

Local Address 列显示了服务器上开放的端口。

2. 使用 ss 命令

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

ss -tuln  
  • -t:显示 TCP 端口
  • -u:显示 UDP 端口
  • -l:显示监听中的端口
  • -n:以数字形式显示地址和端口号

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

State      Recv-Q Send-Q Local Address:Port  Peer Address:Port  
LISTEN     0      128    0.0.0.0:22         0.0.0.0:*  
LISTEN     0      128    0.0.0.0:80         0.0.0.0:*  

同样,Local Address:Port 列显示了服务器上开放的端口。

3. 使用 lsof 命令

lsof 是一个列出当前系统打开文件的工具,也可以用来查看服务器上开放的端口。要查看服务器上开放的端口,可以使用以下命令:

lsof -i -P -n  
  • -i:显示网络连接
  • -P:显示端口号而不是服务名称
  • -n:以数字形式显示地址

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

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

NAME 列显示了服务器上开放的端口。

4. 使用 nmap 命令

nmap 是一个强大的网络扫描工具,可以用来扫描服务器上开放的端口。要查看服务器上开放的端口,可以使用以下命令:

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  

PORT 列显示了服务器上开放的端口。

总结

通过以上几种命令,你可以轻松查看服务器上开放的端口。不同的命令适用于不同的场景,netstatss 适用于快速查看,lsof 适用于查看具体进程,而 nmap 则适用于全面扫描。根据实际需求选择合适的工具,可以更高效地管理和维护服务器。

希望本文对你有所帮助!