linux查看运行的端口命令

linux查看运行的端口命令,第1张

一、使用 netstat 检查端口

netstat 是一个命令行工具,可以提供有关网络连接的信息。

要列出正在侦听的所有 TCP 或 UDP 端口,包括使用端口和套接字状态的服务,请使用以下命令:

netstat -tunlp

此命令中使用的选项具有以下含义:

-t - 显示 TCP 端口。

-u - 显示 UDP 端口。

-n - 显示数字地址而不是主机名。

-l - 仅显示侦听端口。

-p - 显示进程的 PID 和名称。仅当您以 root 或 sudo 用户身份运行命令时,才会显示此信息。

查询指定端口通过grep过滤:

netstat -tnlp | grep :80

二、使用 ss 检查端口

ss 是新的 netstat,命令选项大致相同。它缺少一些 netstat 功能,但暴露了更多的 TCP 状态,而且速度稍快。《Linux就该这么学》 一起学习linux

使用示例:ss -tunlp

三、使用 lsof 检查端口

lsof 是一个功能强大的命令行实用程序,它提供有关进程打开的文件的信息。

在 Linux 中,一切都是文件,可以将套接字视为写入网络的文件。

要使用 lsof 获取所有侦听 TCP 端口的列表:

lsof -nP -iTCP -sTCP:LISTEN

使用的选项如下:

-n - 不要将端口号转换为端口名称。

-p - 不要解析主机名,显示数字地址。

-iTCP -sTCP:LISTEN - 仅显示 TCP 协议状态为 LISTEN 的网络文件。

要查找正在侦听特定端口(例如 3306)的进程,请使用以下命令:

sudo lsof -nP -iTCP:3306 -sTCP:LISTEN

在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 Web服务器的端口号。为此,命令是:

$grep http/etc/services

#http://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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/6026792.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-12
下一篇 2023-03-12

发表评论

登录后才能评论

评论列表(0条)

保存