【网络】测试 IP 端口连通性方法总结
测试 IP 端口连通性方法总结
- 1.使用 Telnet(Windows / Linux / macOS)
- 1.1 在 Windows 上使用 Telnet
- 1.2 在 Linux 或 macOS 上使用 Telnet
- 2.使用 PowerShell(推荐用于 Windows)
- 3.使用 nc 命令(Linux / macOS 或 Windows Subsystem for Linux)
- 4.总结
ping
命令本身使用的是 ICMP 协议,它只能测试到 IP 地址的连通性,无法检测特定端口的状态。
要检查 IP 地址的特定端口是否开放,需要使用其他工具。最常用和简单的方法是使用 telnet
命令,或者在 Windows 上使用更现代的 Test-NetConnection
PowerShell 命令。
1.使用 Telnet(Windows / Linux / macOS)
Telnet 是通用的方法,但可能需要先安装。
1.1 在 Windows 上使用 Telnet
a. 首先,确保启用 Telnet 客户端(默认可能未安装):
- 打开 “
控制面板
” → “程序
” → “程序和功能
” → “启用或关闭 Windows 功能
”。 - 在列表中找到并勾选 “
Telnet 客户端
”,然后点击 “确定
” 进行安装。
b. 使用方法:
打开命令提示符(CMD)或 PowerShell,输入:
telnet <IP地址> <端口号>
示例:测试 192.168.1.1
的 80
端口(HTTP)
telnet 192.168.1.1 80
结果判断:
- 连接成功:屏幕会变黑,只显示一个闪烁的光标,或者显示一些连接信息。这表示该端口是开放的。
- 按
Ctrl + ]
,然后输入quit
来退出。
- 按
- 连接失败:如果显示类似 “
正在连接...无法打开到主机的连接。在端口 80:连接失败
” 或需要等待一段时间后报错,则表示该端口是关闭的或无法访问。
1.2 在 Linux 或 macOS 上使用 Telnet
a. 安装(如果尚未安装):
Ubuntu
/Debian
:sudo apt install telnet
CentOS
/RHEL
:sudo yum install telnet
macOS
:通常已预装。
b. 使用方法:
与 Windows 相同,在终端中执行:
telnet <IP地址> <端口号>
您看到的 Escape character is '^]'.
信息是 Telnet 客户端 的正常提示!
看到这行提示,意味着您指定的 IP 地址和端口是开放的,并且可以正常建立 TCP 连接。
目标服务器上的服务(如 Web 服务器、数据库等)正在该端口上监听,并且接受了您的连接请求。
如果你想退出这个连接,可以输入这个转义序列。
Escape character
(转义字符): 指的是Ctrl + ]
(先按住Ctrl
键,再按右方括号键]
)。'^]'
: 是Ctrl + ]
的显示方式。
接下来您现在有几个选择:
1.直接退出(最常用的做法)
既然已经验证了端口是通的,通常直接退出即可。
- 按下转义字符:
Ctrl + ]
(同时按住Ctrl
键和]
键)。 - 你会看到提示符变为
telnet>
。 - 在
telnet>
提示符后输入quit
或q
,然后按回车,即可完全退出 Telnet。
在 Windows 上,直接关闭命令行窗口也可以。telnet> quit
2.发送一个简单的协议命令进行进一步测试(可选)
如果您连接的是已知协议的服务(如 HTTP、SMTP),可以尝试发送一个命令看看服务是否正常响应。
例如,如果您测试的是 HTTP 端口(80 或 443):
在出现 Escape character is '^]'.
后,输入以下命令然后按两次回车:
GET / HTTP/1.1
Host: example.com
[按两次回车]
您可能会看到服务器返回的 HTTP 响应头和一些 HTML 代码。
例如,如果您测试的是 SMTP 端口(25):
服务器通常会先发送一个欢迎标语。您也可以输入 QUIT
来优雅地结束会话。
3.什么都不做,等待连接超时
如果您不进行任何操作,一段时间后(通常是几分钟),服务器可能会主动断开连接,或者 Telnet 客户端会因超时而退出。
2.使用 PowerShell(推荐用于 Windows)
PowerShell 的 Test-NetConnection
命令功能更强大,且无需额外安装。
1.打开 PowerShell。
2.输入以下命令:
Test-NetConnection -ComputerName <IP地址> -Port <端口号>
示例: 测试 8.8.8.8
的 53
端口(DNS)
Test-NetConnection -ComputerName 8.8.8.8 -Port 53
结果判断:
- 查看输出中的
TcpTestSucceeded
字段:True
:端口开放。False
:端口关闭或超时。
3.使用 nc 命令(Linux / macOS 或 Windows Subsystem for Linux)
nc
(netcat
)被称为 “网络瑞士军刀”,非常强大。
在终端中执行:
nc -zv <IP地址> <端口号>
-z
: 扫描模式,不发送任何数据。-v
: 详细输出。
示例: 测试 example.com
的 443
端口(HTTPS)
nc -zv example.com 443
结果判断:
- 成功:显示
succeeded!
或connected
。 - 失败:显示
failed: Connection refused
或超时。
4.总结
Windows | Test-NetConnection | Test-NetConnection -ComputerName 8.8.8.8 -Port 53 | TcpTestSucceeded: True |
Windows / Linux / macOS | telnet | telnet 192.168.1.1 80 | 屏幕变黑 / 显示连接信息 |
Linux / macOS | nc | nc -zv example.com 443 | 输出 succeeded! |