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