Skip to content

网络端口连通性测试学习笔记 ​

1. 为什么要测试端口连通性? ​

在运维、开发和调试过程中,经常需要确认目标服务器的某个端口是否开放、服务是否正常监听。常见的场景包括:

  • 验证防火墙策略是否放行
  • 检查服务(如 Web、数据库、SSH)是否启动
  • 排查网络连接故障

2. Windows 环境下的端口测试 ​

2.1 使用 telnet 命令(传统方法) ​

Windows 系统默认未安装 Telnet 客户端,需要先启用(控制面板 → 程序和功能 → 启用或关闭 Windows 功能 → 勾选“Telnet 客户端”)。

命令格式:

cmd
telnet <目标IP> <端口号>

示例:

cmd
telnet 192.168.1.100 80

执行结果解读:

  • 连接成功:屏幕清空或显示空白窗口,说明端口可达且服务正常响应。
  • 连接失败:提示“正在连接...无法打开到主机的连接, 在端口 80: 连接失败”,可能原因:
    • 目标主机未开启服务
    • 防火墙拦截
    • IP 或端口错误
    • 网络不可达

注意:Telnet 协议本身明文传输且不安全,仅建议在内网或测试环境使用。生产环境避免长期启用 Telnet 服务。

2.2 Windows 替代工具(更现代) ​

  • Test-NetConnection(PowerShell 内置):

    powershell
    Test-NetConnection -ComputerName 192.168.1.100 -Port 80

    返回 TcpTestSucceeded : True 表示成功。

  • tcping(第三方工具):支持 TCP 层面的 ping,可设置超时和重试次数。

3. Linux 环境下的端口测试 ​

3.1 使用 telnet 命令 ​

大多数 Linux 发行版默认安装 telnet 客户端(若未安装,可用 yum install telnet 或 apt install telnet 安装)。

命令格式:

bash
telnet <目标IP> <端口号>

示例:

bash
telnet 10.0.0.5 22

结果判断:

  • 成功:显示 Connected to 10.0.0.5.,并进入 SSH 协议交互(或空白屏)。
  • 失败:显示 Connection refused(服务未监听)或 No route to host(网络不通)。

退出方式:按 Ctrl + ] 进入 telnet 交互模式,然后输入 quit 回车退出。

3.2 Linux 其他常用端口测试工具 ​

工具命令示例特点
nc (netcat)nc -zv 10.0.0.5 80-z 扫描模式,-v 详细输出,快速且脚本友好
nmapnmap -p 80 10.0.0.5功能强大,支持端口范围扫描和服务识别
curlcurl -v telnet://10.0.0.5:80利用协议探测,适合 HTTP 服务的连通性检查
timeout + bashtimeout 2 bash -c "echo >/dev/tcp/10.0.0.5/80" && echo "open"无需额外工具,利用 /dev/tcp 伪文件

3.3 推荐方案 ​

  • 快速单次测试:nc -zv <IP> <端口>(最常用)
  • 批量扫描:nmap -p 1-1000 <IP>
  • 脚本化检查:使用 nc 或 /dev/tcp 结合条件判断。

4. 跨平台通用工具 ​

  • tcping:同时支持 Windows 和 Linux,可指定超时和次数。
  • nmap:跨平台,提供丰富的扫描选项。

5. 常见故障排查思路 ​

当端口测试失败时,按以下顺序检查:

  1. 本地网络:ping <IP> 确认 IP 层可达。
  2. 服务状态:在目标服务器上执行 ss -tlnp 或 netstat -tlnp 确认服务是否监听。
  3. 防火墙规则:
    • Linux:iptables -L -n 或 firewall-cmd --list-all
    • Windows:netsh advfirewall show allprofiles
  4. 安全组/ACL:云服务器需检查控制台的安全组策略。
  5. 端口是否被占用:目标服务器上使用 lsof -i :端口。

6. 安全提醒 ​

  • 生产环境慎用 telnet 明文传输,测试完毕后及时退出。
  • 对公网服务器进行端口扫描前需获得授权,避免违法风险。
  • 建议使用加密方式(如 SSH 隧道)进行远程管理。

7. 总结 ​

操作系统推荐命令适用场景
WindowsTest-NetConnection -Port(Powershell)内网日常检测
Windowstcping需要细粒度超时控制
Linuxnc -zv快速单端口测试
Linuxnmap端口范围扫描

掌握以上工具和方法,能高效定位网络端口连通性问题,提升排障效率。

基于 Vite 强力驱动 | 纯静态轻量托管