服务器大本营

 找回密码
 我要入营

微信扫码 , 快速开始

QQ登录

只需一步,快速开始

查看: 229|回复: 0

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

[复制链接]

795

敬重

367

主题

207

精华

管理员

积分
5735

启航之章进阶之印里程之碑突破之证飞跃之星蜕变之勋卓越之路龙年行大运

QQ
发表于 2024-4-15 21:33:13 | 显示全部楼层 |阅读模式

我要入营,结交更多好友,开启更多功能,轻松玩转服务器大本营!

您需要 登录 才可以下载或查看,没有账号?我要入营

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

步骤一:实例安全组检查
1、登录ECS管理控制台,单击实例。
2、在顶部菜单栏左上角处,选择地域。
3、在实例列表页面,单击对应的实例ID。
4、在实例详情页面,单击安全组,在安全组列表区域,单击对应的安全组ID。
5、在安全组规则页面,单击入方向,查看访问规则,查看是否有端口相关的授权。

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

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

说明:
· Linux系统如何通过VNC远程连接到Linux实例,请参见通过VNC远程连接登录Linux实例。
· Windows系统如何通过VNC远程连接到Windows实例,请参见通过VNC远程连接Windows实例
  1. 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远程连接登录目标服务器之后,执行以下命令,检查防火墙配置。
  1. iptables -nL
复制代码
如果返回结果中存在相应端口的配置规则,可删除相应的规则或者先关闭防火墙,然后再测试端口连通性。关闭防火墙的具体操作如下:
1、执行以下命令,查看防火墙状态。
  1. systemctl status firewalld.service
复制代码

2、执行以下命令,关闭防火墙。
  1. systemctl stop firewalld.service
复制代码

3、执行以下命令,设置开机不自启防火墙服务。
  1. systemctl disable firewalld.service
复制代码

Windows系统
先关闭防火墙,然后再测试端口连通性,具体操作如下:
1、通过VNC远程连接登录目标服务器,在控制面板中打开Windows防火墙。
2、在Windows防火墙窗口,单击启动或关闭防火墙,进入自定义设置界面。
3、将专用网络设置和公用网络设置设置为关闭 Windows 防火墙,单击确定。

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

端口可用性探测步骤
通常情况下,您可以参见以下步骤进行探测:
1、根据上文所述,使用对应工具对目标服务器和端口进行可用性探测。
2、排查分析探测结果,确认问题根源。如果相关端口在某一跳被阻断,且其后各跳均不会返回数据。据此就可以判定出异常节点。
3、如果确实存在异常节点,您可以参见以下两种方式进行解决。

· 通过淘宝IP地址库等IP地址查询网站获取相应节点的归属运营商及网络。
· 或者您也可以提交工单,请驰网技术支持协助您向相关运营商反馈问题。
说明:提交工单时,请一并提交端口可用性的探测结果。

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

案例一
探测结果如下,目标端口在第3跳之后就没有数据返回。
  1. <blockquote>C:\&gt;tracetcp www.idc02.com:135
复制代码

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

案例二
探测结果如下,目标端口在第11跳之后就没有数据返回。
  1. <blockquote>[root@mycentos ~]# traceroute -T -p 135 www.baidu.com
复制代码

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

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

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

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

测试示例
traceroute的示例命令和返回结果如下:
  1. <blockquote>[root@centos~]#  traceroute -n -T -p 22 223.5.5.5
复制代码

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

下载安装
说明:若您的操作系统中没有自带的tracetcp,可以参考以下步骤安装。
1、tracetcp的使用依赖于WinPcap library。因此,您需要前往官网下载WinPcap library。
2、前往tracetcp官网下载最新版tracetcp。
3、将下载的tracetcp相关文件直接解压到C:\Windows目录。
说明:您也可以解压到非系统目录,但是需要手工修改系统环境变量,以确保指令可以直接调用。

使用方法
双击打开tracetcp应用程序,tracetcp的常见用法如下:
  1. tracetcp [$IP]:[$Port]
复制代码
说明:
· [$IP]指目标服务器的IP地址或者域名。
· [$Port]指需要探测的目标端口。
· 关于更多tracetcp参数说明,您可以通过tracetcp -?命令查看帮助。

测试示例
tracetcp的示例命令和返回结果如下:
  1. <blockquote>C:\ >tracetcp www.idc02.com:80
复制代码

感谢您的阅读,服务器大本营-技术文章内容集合站,助您成为更专业的服务器管理员!
一入IDC深似海,从此你我是良人!
您需要登录后才可以回帖 登录 | 我要入营

本版积分规则

QQ|Archiver|手机版|小黑屋|服务器大本营 ( 赣ICP备2021009089号 )

GMT+8, 2024-5-20 04:32 , Processed in 0.078844 second(s), 26 queries .

Powered by 服务器大本营

© 2021-2023 联系飞飞

快速回复 返回顶部 返回列表