如何在 Linux 中查找服务的端口号

由于某些原因,您可能经常需要查找端口名称和编号。 如果是这样,你很幸运。 今天,在这个简短的教程中,我们将看到在 Linux 操作系统中查找服务端口号的最简单快捷的方法。 可能有很多方法可以做到,但我目前只知道以下三种方法。 继续阅读。

在 Linux 中查找服务的端口号

方法 1 – 使用 Grep 命令:

要使用 grep 命令在 Linux 中查找给定服务的默认端口号,只需运行:

$ grep <port> /etc/services 

例如,要查找 SSH 服务的默认端口,只需运行:

$ grep ssh /etc/services 

就是这么简单。 此命令应该适用于大多数 Linux 发行版。 这是我的 Arch Linux 测试盒的示例输出:

ssh 22/tcp ssh 22/udp ssh 22/sctp sshell 614/tcp sshell 614/udp netconf-ssh 830/tcp netconf-ssh 830/udp sdo-ssh 3897/tcp sdo-ssh 3897/udp netconf-ch-ssh 4334/tcp snmpssh 5161/tcp snmpssh-trap 5162/tcp tl1-ssh 6252/tcp tl1-ssh 6252/udp ssh-mgmt 17235/tcp ssh-mgmt 17235/udp

从上面的输出中可以看到,SSH 服务的默认端口号是 22。

让我们找到端口号 Apache 网络服务器。 为此,命令将是:

$ grep http /etc/services # https://www.iana.org/assignments/port-numbers http 80/tcp www www-http # WorldWideWeb HTTP http 80/udp www www-http # HyperText Transfer Protocol http 80/sctp # HyperText Transfer Protocol https 443/tcp # http protocol over TLS/SSL https 443/udp # http protocol over TLS/SSL https 443/sctp # http protocol over TLS/SSL gss-http 488/tcp gss-http 488/udp webcache 8080/tcp http-alt # WWW caching service webcache 8080/udp http-alt # WWW caching service [...]

FTP端口号如何? 这很容易!

$ grep ftp /etc/services ftp-data 20/tcp ftp-data 20/udp # 21 is registered to ftp, but also used by fsp ftp 21/tcp ftp 21/udp fsp fspd tftp 69/tcp [...]

方法 2 – 使用 getent 命令

如您所见,上述命令显示给定搜索词“ssh”、“http”和“ftp”的所有端口名称和编号。 这意味着,您将获得与给定搜索词匹配的所有端口名称的相当长的输出。

但是,您可以使用“getent”命令将结果缩小到精确输出,如下所示:

$ getent services ssh ssh 22/tcp
$ getent services http http 80/tcp www www-http
$ getent services ftp ftp 21/tcp

如果您不知道端口名称而是端口号,只需将端口名称替换为如下所示的数字:

$ getent services 80 http 80/tcp

要显示所有端口名称和编号,只需运行:

$ getent services

建议阅读:

  • 如何改变 Apache 默认端口到自定义端口
  • 如何将 FTP 默认端口更改为自定义端口
  • 如何将 SSH 默认端口更改为自定义端口

方法 3 – 使用 Whatportis 实用程序

Whatportis 是一个简单的 python 脚本,用于查找端口名称和编号。 与上述命令不同,此实用程序以漂亮的表格列格式显示输出。

确保您已安装 PIP 包管理器。 如果没有,请参考以下链接。

  • 如何使用 Pip 管理 Python 包

安装 PIP 后,运行以下命令安装 Whatportis 实用程序。

$ pip install whatportis

现在,您可以找到与服务关联的端口,如下所示。

$ whatportis ssh
$ whatportis ftp
$ whatportis http

我的 CentOS 7 服务器的示例输出:

在 Linux 中查找服务的端口号

如果您不知道服务的确切名称,请使用 – 喜欢 标志以显示相关结果。

$ whatportis mysql --like

上述命令帮助您找到与服务关联的端口。 您还可以找到与如下端口号相关联的服务。

$ whatportis 993

您甚至可以将结果显示在 JSON 格式。

$ whatportis 993 --json