4G 网络下资源加载失败?一次运营商封禁 IP 的案例分享

news2024/11/15 20:22:00

在工作中,网络问题是不可避免的挑战之一。最近,我们在项目中遇到了一起网络资源加载异常的问题:某同事在使用 4G 网络连接公司 VPN 时,云服务的前端资源居然无法加载!通过一系列的排查和分析,我们发现问题的根源竟是运营商封禁了部分 IP 段。今天我将详细分享这个排查过程,教你如何迅速定位问题,彻底解决类似的网络故障。

问题背景(也适用服务域名、IP)

某同事在使用 4G 网络并通过 VPN 访问公司的资源时,发现前端资源加载失败。开发者工具显示多个资源请求异常,响应状态码异常。奇怪的是,其他网络环境如公司内网或 Wi-Fi 环境下都正常。这让我们怀疑是网络连接或 VPN 配置的问题,但具体原因还未明确。

在这里插入图片描述

问题排查流程
1. 初步排查:VPN 路由配置

首先,我们检查了公司 VPN 的配置,确认设置一切正常。虽然缺少了对于前端资源相关路由配置,但是这个资源是可以外网访问的,所以说 VPN 不针对该资源配置也是没问题的。

查看了出问题电脑是否还配置了其他的 VPN,网络是否出现了代理,以及是否在本地配置了host,并未发现异常。

在这里插入图片描述

为确保是网络连接问题,我们决定使用一些网络排查工具来进行测试。

2. 借助网络工具深度排查

在问题排查过程中,使用了以下网络工具:

  • ping:用于检测网络连通性,判断目标服务器是否能够响应请求。通过 ping 测试,我们发现同事的设备无法 ping 通目标资源的 IP 地址。这意味着设备与目标服务器之间的连接被阻断。

    示例:

    ping example.com
    

    输出:

    PING example.com (203.xxx.xxx.xxx): 56 data bytes
    Request timeout for icmp_seq 0
    

    直接 ping IP ,输出也是相同的结果。

  • traceroute:用于追踪数据包的传输路径,帮助我们定位中途可能出现的网络问题。通过 traceroute,我们确认数据包在到达某些中转节点后丢失,无法到达目标服务器。

    示例:

    traceroute example.com
    

    输出:

    traceroute to example.com (203.xxx.xxx.xxx), 30 hops max, 60 byte packets
     1  192.168.0.1 (192.168.0.1)  2.163 ms
     2  10.0.0.1 (10.0.0.1)  10.643 ms
     3  * * *  (丢包)
     4  * * *  (丢包)
    
  • curl:用于测试目标资源的 HTTP 请求。通过 curl 请求验证资源是否可以正常加载,我们在同事的设备上得到了超时或失败的响应。

    示例:

    curl -I 'http://example.com/resource' -x '203.xxx.xxx.xxx:80'
    

    输出:

    curl: (7) Failed to connect to example.com port 80: Connection timed out
    

我和几位SRE老师,使用上面三种方式,都是正常的。

而通过这三种工具的结合,我们可以明确问题不在本地配置或 VPN 设置上,问题很可能是运营商网络中某个中间节点出现了阻断。

3. 多网络环境测试

为了进一步确认问题,我们在公司内网、VPN 环境以及同事的 4G 网络下分别测试资源访问情况。

最终只有在 4G 网络环境下出现了资源加载失败的现象,初步判断问题与运营商网络相关。

4. 临时解决方案

由于问题暂时只在 4G 网络下发生,我们提出了两个临时解决方案,帮助同事恢复对资源的访问:

  1. 切换到公司内网或 Wi-Fi 环境以避免 4G 网络的影响。
  2. 修改本地 hosts 文件,将目标域名解析到另一个可访问的 IP 地址。

通过这些手段,虽然能够临时解决资源加载问题,但我们仍需进一步确认问题的根源。

5. 深入排查:运营商 IP 封禁

在进一步分析中,我们意识到问题可能与运营商的网络策略有关。为此,我们联系了外部的网络运营商团队,进行更深入的排查。

最终,运营商确认,由于特定区域对部分 IP 地址段进行了封禁,导致在 4G 网络下无法正常访问这些资源。

运营商随后对该 IP 地址段进行了解封,问题得以彻底解决。

经验总结

通过这次事件,我总结了以下几点排查网络问题的经验:

  1. 分层排查,逐步缩小问题范围:从最基本的网络连通性开始,逐层排除可能性是解决复杂网络问题的有效方法。在这个案例中,排查从宿主机、VPN 配置逐步扩展到网络环境和运营商封禁,最终定位到问题所在。

  2. 合理利用网络排查工具:工具如 pingtraceroutecurl 是排查网络问题的重要利器,能够帮助我们快速判断问题的根源。

  3. 考虑区域性网络封禁问题:在不同网络环境下,特别是跨区域或不同运营商的网络中,可能会遇到 IP 段封禁的情况。这种封禁常常表现为特定网络条件下资源无法访问,因此在排查时要考虑到这类区域性问题。

  4. 临时解决方案的应对:当问题的根本原因短时间内无法解决时,提供临时的解决方案可以保证用户的正常使用。修改本地 hosts 文件或切换网络环境都是应对网络问题的常见方法。

结语

网络问题的排查通常涉及多个层面,每一个步骤都需要仔细验证。通过这次运营商 IP 封禁问题的排查与解决,可以看到还有很多的网络调试方式,也可以看到网络环境中的复杂性,特别是运营商的区域性封禁。

你是否也遇到过类似的网络问题?你会如何排查?欢迎在评论区分享你的见解或提问!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

alias 后门从入门到应急响应

目录 1. alias 后门介绍 2. alias 后门注入方式 2.1 方式一(以函数的方式执行) 2.2 方式二(执行python脚本) 3.应急响应 3.1 查看所有连接 3.2 通过PID查看异常连接的进程,以及该进程正在执行的命令行命令 3.3 查看别名 3.4 其他情况 3.5 那么检查这些…

Arthas jvm(查看当前JVM的信息)

文章目录 二、命令列表2.1 jvm相关命令2.1.3 jvm(查看当前JVM的信息) 二、命令列表 2.1 jvm相关命令 2.1.3 jvm(查看当前JVM的信息) 基础语法: jvm [arthas18139]$ jvmRUNTIME …

C++_21_模板

模板 简介&#xff1a; 一种用于实现通用编程的机制。 通过使用模板我们可以编写可复用的代码&#xff0c;可以适用于多种数据类型。 C模板的语法使用角括号 < > 来表示泛型类型&#xff0c;并使用关键字 template 来定义和声明模板 概念&#xff1a; c范式编程 特点&…

OSPFv3协议几类LSA介绍

OSPFv3协议介绍 与OSPFv2相比&#xff0c;OSPFv3在工作机制上与OSPFv2基本相同&#xff1b;但为了支持IPv6地址格式&#xff0c;OSPFv3对OSPFv2做了一些改动。OSPFv3基于OSPFv2基本原理增强&#xff0c;是一个独立的路由协议&#xff08;v3不兼容v2&#xff09;协议号仍然是89…

java -versionbash:/usr/lib/jvm/jdk1.8.0_162/bin/java:无法执行二进制文件:可执行文件格式错误

实验环境&#xff1a;Apple M1在VMwareFusion使用Utubun Jdk文件错误 &#xfffc; 尝试&#xff1a; 1、重新在网盘下载java1.8 2、在终端通过命令下载 3、确保 JDK 正确安装在系统中&#xff0c;可以通过 echo $JAVA_HOME 检查 JAVA_HOME 环境变量是否设置正确。 &#xfff…

前端JavaScript导出excel,并用excel分析数据,使用SheetJS导出excel

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f…

C语言的文件基础知识

一、文件存在的意义 ① 文件的定义是什么&#xff1f; 文件是以单个名称在计算机上存储的信息集合。文件可以是文本文档、图片、程序等等。文件通常具有三个字母的文件扩展名&#xff0c;用于指示文件类型&#xff08;例如&#xff0c;图片文件常常以 JPEG 格式保存并且文件扩…

【技术编辑与写作】优秀文章整理——如何做个好编辑

【技术编辑与写作】优秀文章整理——如何做个好编辑 本文适用人群&#xff1a; 本文不是严谨教程贴&#xff0c;更多的是好文搜集、经验分享和闲聊&#xff0c;适用于感兴趣想简单了解运营、编辑等行业的人&#xff0c;如果是追求高精尖和专业的&#xff0c;已有N年经验人士请…

【HTTP】方法(method)以及 GET 和 POST 的区别

文章目录 方法&#xff08;method&#xff09;登录上传GET 和 POST 有什么区别&#xff08;面试&#xff09;区别不准确的说法 方法&#xff08;method&#xff09; 首行中的第一部分。首行是由方法、URL 和版本号组成 方法描述了这次请求想干什么&#xff0c;最主要的是&…

无人机之激光避障篇

无人机的激光避障技术是通过激光传感器来感知和避开周围障碍物的一种高级技术。以下是关于无人机激光避障技术的详细解析&#xff1a; 一、技术原理 激光避障技术利用激光束的直线传播和反射特性&#xff0c;通过发送激光束并接收反射回来的信号&#xff0c;来检测和计算周围障…

植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面

一、介绍 植物病害识别系统。本系统使用Python作为主要编程语言&#xff0c;通过收集水稻常见的四种叶片病害图片&#xff08;‘细菌性叶枯病’, ‘稻瘟病’, ‘褐斑病’, ‘稻瘟条纹病毒病’&#xff09;作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算…

提前解锁 Vue 3.5 的新特性

Vue 3.5 是 Vue.js 新发布的版本&#xff0c;虽然没有引入重大变更&#xff0c;但带来了许多实用的增强功能、内部优化和性能改进。 1. 响应式系统优化 Vue 3.5 进一步优化了响应式系统的性能&#xff0c;并且减少内存占用。尤其在处理大型或深度嵌套的响应式数组时&#xff…

2024 新手指南:轻松掌握 Win10 的录屏操作

之前为了节约成本我们公司都采用录制软件操作都方式来为异地的同事进行远程操作培训的。所以我们尝试了不少的录屏工具&#xff0c;这里我就分享下win10怎么录屏的操作过程。 1.福昕录屏大师 链接&#xff1a;www.foxitsoftware.cn/REC/ 这款录屏工具是初学者的理想之选&…

【STL】map和set相关知识详细梳理

1. 预备知识 1.1 关联式容器 在之前&#xff0c;我们已经接触过STL中的部分容器&#xff0c;比如&#xff1a;vector、list、deque、 forward_list(C11)等&#xff0c;这些容器统称为序列式容器&#xff0c;因为其底层为线性序列的数据结构&#xff0c;里面 存储的是元素本身。…

Git之如何删除Untracked文件(六十八)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…

PCL 点云圆柱邻域搜索

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接&#xff1a; PCL点云算法与项目实战案例汇总&#xff08;长期更新&#xff09; 一、概述 本文将介绍如何使用PCL库进…

L3 逻辑回归

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 在周将使用 LogisticRegression 函数对经典的鸢尾花 (Iris) 数据集进行分类。将详细介绍逻辑回归的数学原理。 1. 逻辑回归的数学原理 逻辑回归是一种线性分…

海外大带宽服务器连接失败怎么办?

在全球化日益加深的今天&#xff0c;海外大带宽服务器已成为企业拓展国际市场、提升业务效率的重要工具。然而&#xff0c;面对复杂多变的网络环境和技术挑战&#xff0c;服务器连接失败的问题时有发生&#xff0c;这不仅影响了企业的正常运营&#xff0c;还可能带来经济损失和…

R语言机器学习算法实战系列(二) SVM算法(Support Vector Machine)

文章目录 介绍原理应用方向下载数据加载R包导入数据数据预处理数据描述数据切割标准化数据设置参数训练模型预测测试数据评估模型模型准确性混淆矩阵模型评估指标ROC CurvePRC Curve特征的重要性保存模型总结系统信息介绍 支持向量机(Support Vector Machine,简称SVM)是一种…

JavaScript发送邮件:实现前端触发的教程?

JavaScript发送邮件的方式&#xff1f;怎么使用JavaScript发信&#xff1f; 无论是用户反馈、联系表单还是自动通知&#xff0c;前端触发的邮件发送功能都能极大地提升用户体验。AokSend将详细介绍如何通过JavaScript发送邮件&#xff0c;实现前端触发的邮件发送功能。 JavaS…