能够ping通服务器的同时端口不通的排查方法

概述

当您在客户端访问目标服务器时,如果能ping通,但业务端口无法访问,您可以参见以下方法进行排查。

步骤一:实例安全组检查

1、登录ECS管理控制台,单击实例

2、在顶部菜单栏左上角处,选择地域。

3、在实例列表页面,单击对应的实例ID。

4、在实例详情页面,单击安全组,在安全组列表区域,单击对应的安全组ID。

 

5、在安全组规则页面,单击入方向,查看访问规则,查看是否有端口相关的授权。

  • 如果没有相应端口的授权,请添加相应端口的授权,详情请参见添加安全组规则
  • 如果有相应端口的授权,请检查授权对象是否允许本地IP地址的访问。

步骤二:端口相关服务检查

通过VNC远程连接登录目标服务器之后,执行以下命令,检查端口是否被监听。

说明

  • Linux系统如何通过VNC远程连接到Linux实例,请参见通过VNC远程连接登录Linux实例
  • Windows系统如何通过VNC远程连接到Windows实例,请参见通过VNC远程连接Windows实例

netstat -ntpl|grep [$Port]

说明:[$Port]为相应的端口号。

系统显示类似如下。

 

说明

  • · 0.0.0.0代表本机上可用的任意地址。比如,0.0.0.0:135表示本机上所有地址的135端口。
  • · tcp 0.0.0.0:80表示在所有的可用接口上监听TCP的80端口

· 如果返回结果为空,说明端口对应的服务未启动,请将相应的服务启动即可。

· 如果有返回结果,说明服务为启动状态。在确认服务可以重启的情况下,重启相应的服务,待服务重启完成后,再测试端口的连通性。

步骤三:检查目标服务器的防火墙配置

Linux系统

通过VNC远程连接登录目标服务器之后,执行以下命令,检查防火墙配置。

iptables -nL

如果返回结果中存在相应端口的配置规则,可删除相应的规则或者先关闭防火墙,然后再测试端口连通性。关闭防火墙的具体操作如下:

1、执行以下命令,查看防火墙状态。

systemctl status firewalld.service

2、执行以下命令,关闭防火墙。

systemctl stop firewalld.service

3、执行以下命令,设置开机不自启防火墙服务。

systemctl disable firewalld.service

Windows系统

先关闭防火墙,然后再测试端口连通性,具体操作如下:

  1. 通过VNC远程连接登录目标服务器,在控制面板中打开Windows防火墙
  2. Windows防火墙窗口,单击启动或关闭防火墙,进入自定义设置界面。
  3. 专用网络设置公用网络设置设置为关闭 Windows 防火墙,单击确定

步骤四:通过探测工具进行检查

端口无法访问可能是链路中的相关节点拦截了端口所致,请利用端口可用性探测的相关工具进行测试,验证是否有节点拦截了端口。

端口可用性探测步骤

通常情况下,您可以参见以下步骤进行探测:

  1. 根据上文所述,使用对应工具对目标服务器和端口进行可用性探测。
  2. 排查分析探测结果,确认问题根源。如果相关端口在某一跳被阻断,且其后各跳均不会返回数据。据此就可以判定出异常节点。
  3. 如果确实存在异常节点,您可以参见以下两种方式进行解决。
    • · 通过淘宝IP地址库等IP地址查询网站获取相应节点的归属运营商及网络。
    • · 或者您也可以提交工单,请驰网技术支持协助您向相关运营商反馈问题。

说明:提交工单时,请一并提交端口可用性的探测结果。

探测结果的案例分析

此处介绍两个探测结果的案例,案例中包括探测结果和分析。

案例一

探测结果如下,目标端口在第3跳之后就没有数据返回。

C:\>tracetcp www.idc02.com:135
Tracing route to 115.X.X.27 on port 135
Over a maximum of 30 hops.
1       3 ms    3 ms    3 ms    1X.X.X.X
2       4 ms    3 ms    3 ms    2X.X.X.X
3       3 ms    3 ms    3 ms    3X.X.X.X
4       *       *       *       Request timed out.
5       *       *       *       Request timed out.
6       *       *       *       Request timed out.
7       *       *       *       Request timed out.
8       *       *       *       Request timed out.
9       *       *       *       Request timed out.
10      *       *       *       Request timed out.
11      *       *       *       Request timed out.
12      *       *       *       Request timed out.
Trace Complete.

案例分析

因为该节点为内网IP,可能是本地网络相关安全策略所致,需要联系本地网络管理人员做进一步排查分析。

案例二

探测结果如下,目标端口在第11跳之后就没有数据返回。

[root@mycentos ~]# traceroute -T -p 135 www.baidu.com
traceroute to www.baidu.com (111.13.100.92), 30 hops max, 60 byte packets
 1  * * *
 2  1X.X.X.X (1X.X.X.X)  4.115 ms  4.397 ms  4.679 ms
 3  2X.X.X.X (2X.X.X.X)  901.921 ms  902.762 ms  902.338 ms
 4  3X.X.X.X (3X.X.X.X)  2.187 ms  1.392 ms  2.266 ms
 5  * * *
 6  5X.X.X.X (5X.X.X.X)  1.688 ms  1.465 ms  1.475 ms
 7  6X.X.X.X (6X.X.X.X)  27.729 ms  27.708 ms  27.636 ms
 8  * * *
 9  * * *
10  111.13.98.249 (111.13.98.249)  28.922 ms 111.13.98.253 (111.13.98.253)  29.030 ms  28.916 ms
11  111.13.108.22 (111.13.108.22)  29.169 ms  28.893 ms 111.13.108.33 (111.13.108.33)  30.986 ms
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *

案例分析

因为该节点经查询后归属北京移动,需要您自行向运营商反馈,或者提交工单做进一步排查分析。

更多信息

不同的操作系统,端口可用性探测所使用的工具有所不同。此处分别介绍如下系统中的端口可用性探测工具。

Linux系统

traceroute是几乎所有Linux发行版本预装的网络测试工具,用于跟踪Internet协议(IP)数据包传送到目标地址时经过的路径。traceroute通过发送TCP数据包向目标端口进行探测,以检测从数据包源到目标服务器的整个链路上相应端口的连通性情况。该工具的介绍如下:

使用方法

traceroute是用于端口可用性探测的常用命令,命令格式如下:

traceroute [-n] -T -p [$Port] [$Host]

说明

  • · -n:直接使用IP地址而非主机名称(禁用DNS反查)。
  • · -T:通过TCP探测。
  • · -p:设置探测的端口号。
  • · [$Port]:需要探测的端口号,比如80。
  • · [$Host]:需要探测的目标服务器地址,比如10.10.1.1
  • 更多关于traceroute的用法,您可以通过man命令查阅。

测试示例

traceroute的示例命令和返回结果如下:

[root@centos~]#  traceroute -n -T -p 22 223.5.5.5
traceroute to 223.5.5.5 (223.5.5.5), 30 hops max, 60 byte packets
 1  5X.X.X.X  0.431 ms  0.538 ms  0.702 ms
 2  1X.X.X.X  0.997 ms  1.030 ms 10.88.16.21  1.309 ms
 3  5X.X.1X.2X  0.393 ms  0.390 ms 58.96.160.250  0.423 ms
 4  6X.X.X.X  1.110 ms 202.123.74.122  0.440 ms  0.440 ms
 5  6X.X.1X.X  1.744 ms 63.218.56.237  1.076 ms  1.232 ms
 6  63.2X.1X.1X  1.832 ms 63.223.15.90  1.663 ms 63.223.15.74  1.616 ms
 7  20X.97.1X.1X  2.776 ms 63.223.15.154  1.585 ms  1.606 ms
 8  * * 202.97.122.113  2.537 ms
 9  202.97.61.237  6.856 ms * *
10  * * *
11  * * *
12  * * 119.147.220.222  8.738 ms
13  119.147.220.230  8.248 ms  8.231 ms *
14  * 42.120.242.230  32.305 ms 42.120.242.226  29.877 ms
15  42.120.242.234  11.950 ms 42.120.242.222  23.853 ms 42.120.242.218  29.831 ms
16  42.120.253.2  11.007 ms 42.120.242.234  13.615 ms 42.120.253.2  11.956 ms
17  42.120.253.14  21.578 ms 42.120.253.2  13.236 ms *
18  * * 223.5.5.5  12.070 ms !X

Windows系统

在Windows系统中,您可通过tracetcp进行端口可用性探测。tracetcp同样通过发送TCP数据包进行链路探测,以分析链路是否存在中间节点对目标端口做了阻断。该工具的介绍如下:

下载安装

说明:若您的操作系统中没有自带的tracetcp,可以参考以下步骤安装。

  1. tracetcp的使用依赖于WinPcap library。因此,您需要前往官网下载WinPcap library。
  2. 前往tracetcp官网下载最新版tracetcp。
  3. 将下载的tracetcp相关文件直接解压到C:\Windows目录。

说明:您也可以解压到非系统目录,但是需要手工修改系统环境变量,以确保指令可以直接调用。

使用方法

双击打开tracetcp应用程序,tracetcp的常见用法如下:

tracetcp [$IP]:[$Port]

说明

  • [$IP]指目标服务器的IP地址或者域名。
  • [$Port]指需要探测的目标端口。
  • 关于更多tracetcp参数说明,您可以通过tracetcp -?命令查看帮助。
测试示例

tracetcp的示例命令和返回结果如下:

C:\ >tracetcp www.idc02.com:80
Tracing route to 140.205.63.8 on port 80
Over a maximum of 30 hops.
1       3 ms    4 ms    3 ms    3X.X.X.X
2       13 ms   3 ms    4 ms    1X.X.X.X
3       3 ms    3 ms    2 ms    10.X.X.X
4       4 ms    3 ms    3 ms    4X.X.X.X
5       5 ms    4 ms    7 ms    5X.X.X.X
6       6 ms    5 ms    7 ms    6X.X.X.X
7       8 ms    8 ms    8 ms    42.120.247.97
8       10 ms   10 ms   8 ms    123.56.34.246
9       9 ms    9 ms    11 ms   42.120.243.117
10      *       *       *       Request timed out.
11      Destination Reached in 8 ms. Connection established to 140.205.63.8
Trace Complete.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/13330.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023精选接口测试面试题(建议收藏)

前言 接口测试是现在软件测试面试中的重点,基本上每家公司面试都会问到,学姐整理一下接口测试相关的面试题,顺便给出一些参考答案。 01 Q1:一个接口用例中有多个API接口,前后两个 API 之间如何进行参数传递的&#x…

[分块][STL][树]【Centroids】不一样的解法

前言 一道好题,也就花了我一个下午而已。 本人做法比较清奇,可以当做开阔思路参考,并不太建议实操(太难调了!)。 文章较啰嗦,谅解。 思路 众所周知,我并不太喜推式子&#xff0…

矩阵系统源码智能回复私信场景开发

抖音矩阵系统源码智能回复私信场景开发 一、要想开发私信功能开发者需要准备的工作 开发者需要先对接官方api接口以及去申请api提交审核,目前需要了解官方对开发者对该能力开发权限的功能符合开发需求,其次需要了解官方私信触达的规则 1.申请流程&…

Codeforces-Round-883-Div-3

Codeforces Round 883 (Div. 3) 链接:https://codeforces.com/contest/1846 A. Rudolph and Cut the Rope There are n n n nails driven into the wall, the i i i-th nail is driven a i a_i ai​ meters above the ground, one end of the b i b_i bi​ m…

Excel 合并单元格筛选时只出现首行

一、问题描述 如果对合并单元格直接筛选,只能筛选出第一个单元格的值 二、原因分析: Excel筛选单元格时,遇到不连续区域(即中间有空白单元格)会识别不到后续内容; 合并单元格后, 除首行外&…

十八、Jenkins(centos7)执行接口自动化测试脚本,飞书推送测试结果消息

十八、Jenkins(centos7)执行接口自动化测试脚本,飞书推送测试结果消息 1.创建 Freestyle project 项目 2. 输入git仓库地址 https://gitee.com/HP_mojin/pytest_allure_request_20220811 3. 增加构建步骤-Execute shell(Jenkins…

Go 语言数组

Go 语言提供了数组类型的数据结构。 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整型、字符串或者自定义类型。 相对于去声明 number0, number1, ..., number99 的变量,使用数组形式 numbers[0], num…

Kotlin~Composite组合模式

概念 能够帮助实现树状结构的模式。 主要特点 递归组合树状结构统一处理所有对象 角色介绍 Component: 组合接口Leaf: 叶子节点,无子节点Composite:枝节点,用来存储子部件 UML 代码实现 interface Organ {fun personCount():Int } cla…

springboot dubbo seata nacos集成 分布式事务seata实现

文章目录 Seata介绍dubbo介绍目标版本说明和代码地址pom.xml验证模块microservice-boot-commonmicroservice-boot- plat 验证结果注意事项 Seata介绍 官网:http://seata.io/zh-cn/docs/overview/what-is-seata.html Seata 是一款开源的分布式事务解决方案&#xff…

python实现语音识别(讯飞开放平台)

文章目录 讯飞平台使用python实现讯飞接口的语音识别第一步:导入需要的依赖库第二步:声明全局变量第三步:初始化讯飞接口对象第四步:收到websocket建立连接后的处理函数第五步:收到websocket消息的处理函数第六步&…

scratch 角色追踪

scratch 角色追踪 本程序中一个角色移动到随机位置和方向后向前移动,碰到边缘反弹;另一个角色跟随前一个角色,两个角色接触后前者重新取随机位置。 程序内容如下

Spring Boot 缓存应用实践

缓存是最直接有效提升系统性能的手段之一。个人认为用好用对缓存是优秀程序员的必备基本素质。本文结合实际开发经验,从简单概念原理和代码入手,一步一步搭建一个简单的二级缓存系统。 一、通用缓存接口 1、缓存基础算法 FIFO(First In Fir…