在服务器管理和维护过程中,了解服务器上开放的端口是非常重要的。开放的端口不仅可以帮助我们了解服务器上运行的服务,还能帮助我们排查潜在的安全隐患。本文将介绍几种常用的命令,用于查看服务器上开放的端口。

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
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    *:22                     *:*
LISTEN     0      128    *:80                     *:*

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)

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

总结

通过以上几种命令,你可以轻松查看服务器上开放的端口。每种命令都有其独特的优势,netstatss 适合快速查看,lsof 可以提供更详细的信息,而 nmap 则适合进行更全面的扫描。根据你的需求选择合适的工具,可以帮助你更好地管理和维护服务器。

希望本文对你有所帮助!如果你有任何问题或建议,欢迎在评论区留言。