端口连接不成功诊断方法

诊断顺序

  1. 先进行快速检查,排除是否是常见问题。
  2. 如果仍未解决,再进行完整检查。

快速检查

第一步,检查端口
  1. 检查端口规则是否配置正确,是否已经添加了对应的端口,并且注意区分 TCP 与 UDP 协议。
  2. 检查源机上,对应的服务端是否已经运行,对应的端口是否已经开启。
第二步,检查客户端配置
  1. 检查客户端一侧,是否已经正确进行了封装,填写的接入码是否正确。
  2. 确认已经修改连接服务器地址,为后台分配的 127.0.*.* 的盾机入口地址。
  3. 确认客户端运行后,盾客户端程序自动退出了,此时需要在封装工具中,高级选项内调整自动退出选项。

如果以上步骤未能凑效,请采用以下完整检查步骤。

完整检查

第一步,确认网关
  1. 首先确认网关是否已经正确安装在服务器,并且防火墙或安全组已经允许了 21088 端口(若有自行修改则以修改后的为准,并且保持网关配置与网站后台设置相同)。
  2. 可在本地使用 telnet 命令或 tcp 端口测试工具测试服务器的 21088 端口是否已经可连通。如果可以连通,则进行下一步确认。
  3. 在网站后台,实例页面中,找到对应的源机一行,可以看到一个 诊断 按钮,直接点击,稍等数秒,可以看到到诊断结果,通常有以下几种提示:
    (1)提示“连接失败”,需要再次回到上一步,检测源机上的网关端口是否正确开启;
    (2)提示“Invalid method”,使用了很早版本的网关,下载最新覆盖安装即可;
    (3)没有提示错误,显示了“可连接端口” 与“不可用端口”的列表,注意列表可能很长,需要拉到底查看完整记录,如果显示这个提示,那么说明网关这一步没有问题了,可以往下继续后检查。
第二步,确认端口
  1. 通过之前的诊断,如果仍然没有解决问题,那么需要详细检查诊断结果中的“可连接端口”,查看需要连接的端口,是否在其中,并且也需要检查,所需的端口,是否被列入到“不可用端口”列表中了。
  2. 如果端口不在“可连接端口”中,也不在“不可用端口”中,这说明对应的端口,并未开启,检查源机上的服务端,是否未启动起来,或者是配置成了其他的端口。
  3. 如果端口不在“可连接端口”中,但在“不可用端口”中发现了,那么,通常是这样一个原因导致的:
      • 由于应用盾采用了全程隧道,最终的连接出口是从源机的网关服务发出,网关服务默认使用 127.0.0.1 环回地址进行连接,在部分操作系统中,是无法连接到绑定于网卡 IP 的端口的,只能连接绑定于 0.0.0.0 (任意地址)或 127.0.0.1 (本地环回)上的端口。
      • 因此,当看到该端口处于“不可用端口”列表中时,也可以同时观察到,该端口冒号前的 IP 地址,不是 0.0.0.0 或 127.0.0.1,而是网卡 IP 地址,只需要修改服务端配置,将其调整为开启在 0.0.0.0 或 127.0.0.1 即可,该调整需要对特定服务端的配置文件熟悉,可以尝试查找包含该端口的配置文件,通常可以找到对应 IP 的配置字段。
      • 注意,该调整与“连接方”无关,而是端口的“开启方”,如果将“连接方”修改成了 0.0.0.0,那么是无法连上的,如果无法区分或无法单独配置“开启方”,不妨将其统一修改为 127.0.0.1。修改完成后,尝试再次点击诊断按钮,确保已经在“可连接端口”中。
  4. 检查所需端口,是否已经添加到端口规则中,并且注意区分 TCP 与 UDP 协议。
  5. 现在可以直接尝试在客户端进行连接,如果仍然无法连接,则进行以下步骤继续检查。
第三步,确认客户端
  1. 检查封装时使用的接入码是否正确,排查是否使用了另外实例的接入码。
  2. 检查是否已经正确修改了客户端连接到服务器的地址,检查是否与网站后台,对应源机上盾机入口的 IP 一致。
  3. 当采用 EXE 封装或集成模式,如果客户端运行后,盾右下角图标自动退出了,那么应该是判断自动退出的方式不准确,可以在封装工具,高级选项中,下拉到自动退出的选项,重新调整合理的方式。如果并非此问题,则继续往下排查。
  4. 已封装的客户端运行后,尝试同时使用 telnet 命令或 tcp 端口测试工具测试 127.0.*.* 上对应的端口,看看是否可以访问,如果是 http 的页面方式的,可以直接使用浏览器测试,注意此过程中,保持封装后的客户端是运行中的,以及看到盾客户端在任务栏右下角也是运行中的。这里可以检查出端口的实际通路是否正确,假如测试工具发现也未通,那么可能问题在服务端配置上,需要仔细重新验证服务端上的端口是否正常。如果这里测试端口可连接甚至有数据返回,那么大概率是客户端配置不正确,并未连接盾机入口。
  5. 如果仍然未能解决问题,考虑是否使用了容易冲突的端口,尽量避开以下端口:
    0-4000           太多容易重复的各类服务
    7000             网吧管理系统
    8000-8099        有开发环境的有些会占用
    10000-10009      Windows 系统服务
    27015            苹果移动设备服务
    49000-50000      Windows 系统服务
    65000-65535      太多临时本地端口