在 Linux 中端口是一个编号的网络连接它允许设备通过 Internet 或本地网络与其他设备通信。确保端口是开放和可访问的非常重要它确保网络业务的正常运行。在本文中我们将讨论五个检查 Linux 中端口是否打开的常用方法。Check Open Port on Remote Host首先检查一个端口是否打开并在远程主机上侦听。Using nc Commandnc 命令允许您向端口发送数据并查看是否收到响应。nc 命令基本语法如下nc -vz hostname port例如要检查主机 example.com 上的 22 端口是否打开可以使用以下命令nc -vz example.com 22如果端口打开您将看到消息 “Connection to hostname port [ tcp/ssh ]succeeded”。如果端口关闭您将看到消息 “Connection to hostname port [ tcp/ssh ] failed: Connection refused”。Using telnet Commandtelnet 命令用于连接到远程主机上的端口看看是否建立了连接。查询端口是否打开使用以下语法telnet hostname port例如要检查主机 www.example.com 上的 80 端口是否打开可以使用以下命令telnet www.example.com 80如果端口是打开的您将看到一个空白屏幕。要退出请按CTRL ]然后键入 quit。如果端口关闭您将看到 “Connected to hostname. Escape character is ‘^]’. Connection closed by foreign host”Using nmap Commandnmap命令是一个执行网络扫描和探测的实用程序它可以通过端口扫描来检查目标主机端口是否打开。要检查端口是否打开使用以下语法nmap -p port hostname例如要检查主机 www.example.com 上的 80 端口是否打开可以使用以下命令nmap -p 80 www.example.com如果端口是打开的您将在输出中看到一行表明端口是打开的。如果端口已关闭您将看到一行指示端口已关闭。Shell Script to Check Port Status您可以创建一个 bash 脚本检查本地或远程主机上端口是否打开示例脚本如下#!/usr/bin/env bash HOST192.168.10.100 #remote host PORT22 # Port to check nc -z ${HOST} ${PORT} if [ $? -eq 0 ] then echo Port is open else echo Port is closed fi这里HOST是远程或本地主机系统的主机名或 IP 地址。PORT是要检查的端口号。nc命令可以连接到主机上的任何端口并返回状态。$?是一个系统环境变量包含最后一个命令的退出状态。Check Listening Port on Localhost很多时候我们需要检查本地机器上是否有端口正在侦听。Using lsof Commandlsof命令是一个实用程序用于显示有关打开文件的信息。要检查端口是否打开使用以下语法lsof -i :port例如要检查 80 端口是否打开可以使用以下命令lsof -i :80如果端口打开将看到一行包含端口号和使用该端口的进程的名称。如果端口关闭将看不到任何输出。Using ss Commandss命令是一个显示网络套接字信息的实用程序。要检查端口是否打开使用以下语法ss -lnp | grep port例如要检查 80 端口是否打开可以使用以下命令ss -lnp | grep 80如果端口打开将看到一行其中包含端口号和状态LISTEN。如果端口关闭将看不到任何输出。注意您可能需要使用sudo来运行这些命令这取决于您的系统配置。我的开源项目course-tencent-cloud酷瓜云课堂 - gitee仓库course-tencent-cloud酷瓜云课堂 - github仓库