在对 Linux 系统上运行的服务进行故障排除期间,检查开放端口是任何用户或管理员应考虑执行的任务之一。如果一个服务预计会运行,但由于某种原因它没有运行,那么与该服务关联的端口很可能已关闭并应该打开。
在本教程中,我们将演示如何从命令行检查 Linux 中的开放端口。
1) 使用 ss 命令检查开放端口
Linux ss 命令为您提供有关开放端口和侦听套接字的详细信息。它从 Linux 内核中提取信息,并且比已弃用的 netstat 命令更受欢迎。
要显示正在侦听的 TCP 连接,请运行命令
$ ss -tl
l - 显示监听套接字
t - 代表 TCP 端口
要显示侦听的 UDP 连接,请发出命令
$ ss -lu
u - 代表 UDP 端口
或者
要同时显示 tcp 和 udp,进程名称
$ ss -lntup
p - 列出打开套接字的进程名称
要打印所有套接字连接,只需使用默认格式的 ss 命令
$ ss
2) 使用 netstat 命令检查开放端口
netstat 命令是一个强大的命令工具,用于检查打开的TCP和UDP端口以及其他属性。要检查打开的端口,请发出命令:
$ netstat -pnltu
让我们仔细看看命令选项:
p - 显示与服务或程序名称关联的 Procees ID
n - 显示正在运行的端口的数字编号,例如3306用于mysqld,22用于sshd。
l - 显示监听套接字
t - 显示 TCP 连接
u - 显示 UDP 连接
3) 使用 lsof 命令检查开放端口
lsof 命令是一个网络命令工具,也可用于检查 Linux 系统中的开放端口。要显示打开的端口,请发出命令
$ lsof -i
如果您希望显示打开的套接字,请使用lsof命令并将输出通过管道传输到 grep,如下所示:
$ lsof -n -P | grep LISTEN
要查看所有 TCP 连接,请执行:
$ lsof -i tcp
要显示所有 UDP 连接,请运行以下命令:
$ lsof -i udp
4) 使用 Nmap 实用程序检查打开的端口
Nmap 是一种免费的开源网络扫描工具,通常用于侦察道德黑客行为,以发现远程系统的开放端口。默认情况下,Nmap不会安装在您的系统上。要安装 Nmap,请发出命令
$ sudo apt install nmap (For Debian/ Ubuntu)
$ sudo yum install nmap (For RedHat/ CentOS)
$ sudo dnf install nmap (For Fedora)
$ pacman -S nmap (ArchLinux)
要扫描打开的 TCP 端口,请运行命令
$ nmap -sT -O localhost
要扫描打开的 UDP 端口,请运行以下命令:
$ nmap -sU localhost