关于文件上传失败问题的排查思路

news2024/11/16 13:45:50
问题场景:

最近公司的app有很多用户反馈上传文件失败了。业务路径就是简单的app前端调用后端文件上传接口,所以发生上传失败的可能因素可能是:1、文件大小/文件类型等是否有问题,公司用的是七牛的文件服务器,对文件上传大小和类型一般有限制,不符合规则的话会上传失败。2、公司后端的上传接口是封住了七牛那边推荐的接口upload.qiniu.com,所以业务层封装接口的域名可能会被dns解析失败导致上传失败。3、文件数据传输过程中的有故障点或网络拥塞位置,通过tracert/traceroute排查。4、网速不行,上传超时。5、反馈到七牛云让那边的技术协助排查。

可能因素分析(常见)
A类型:dns解析异常

下图可看出阿里云日志显示是dns解析异常了。

用户设备在浏览器登录网址网易DNS检测工具,显示ISP的DNS异常了,这种情况是比较好解决的,改个DNS基本就行了(在设备WiFi设置那里改DNS或者在路由器设置DNS,DNS一般改为223.5.5.5或者119.29.29.29或者114.114.114.114。)。或者联系ISP处理。

DNS解析异常可能由多种因素导致,以下是一些常见的原因:

1. 域名解析配置错误:这包括记录类型(如A记录、CNAME记录)、主机值、记录值配置不正确,或者是配置过程中出现笔误,例如将IP地址1.1.1.1误写为1.1.1.11,以及将IPv6地址错误地配置到A记录类型下等。

2. 未设置默认线路:在使用云解析服务并配置了智能解析线路时,如果没有设置默认线路,那么访客的IP如果不属于已配置的任何线路,解析系统将不会分配IP,导致部分用户无法解析域名。

3. 域名状态异常:域名可能因为未完成实名认证、未备案、到期未续费、处于Pending Delete或Redemption Period状态,或者被注册商设置为暂停解析(Clienthold/Serverhold)等原因而无法被访问。

4. DNS服务器故障:负责域名解析的DNS服务器可能出现故障、过载或遭受DDoS攻击,导致解析请求无法得到响应或响应延迟。

5. 路由问题:网络路由问题,如路由表错误或路由循环,可能导致请求不能到达正确的DNS服务器。

6. 本地DNS缓存污染或过期:用户的计算机或本地网络设备可能存储了错误的DNS记录,或者缓存的记录已过期但未更新。

7. 网络连接问题:包括网络线缆松动、路由器设置错误、硬件故障或ISP(互联网服务提供商)自身的问题。

8. DNS劫持或恶意软件:恶意软件修改了系统的DNS设置,或者DNS请求被第三方非法重定向,导致访问错误的网站或无法访问特定网站。

9. 运营商或地区性问题:某些地区的网络服务商可能出现故障,或者特定的网络环境对某些DNS请求处理不当。解决DNS解析异常通常需要根据具体情况,检查和修正DNS配置、刷新本地DNS缓存、更换DNS服务器、检查网络连接及设备状态,甚至联系域名注册商或网络服务提供商寻求帮助。

判断是否遭受DNS劫持,可以通过以下几个步骤进行检查:

1、查看本地dns地址:ipconfig /all

2、nslookup  www.baidu.com   (这里以百度为例,mac/linux使用dig命令)

3、比对第二步返回的dns跟步骤一查询的dns是否一致(不一致就是劫持)

4、使用 tracert 命令可以帮助你了解数据包的传输路径,以及可能的网络问题所在。如果发现数据包被重定向到了非预期的IP地址,这可能是DNS劫持的迹象。

B类型:跨运营商

如果你遇到一个用户网络网速都正常的,但是无法访问业务接口,那可能是跨运营商导致的

跨运营商访问时,可能会遇到以下几种问题:

1. 丢包和延时增大:不同运营商之间的网络连接可能不如同一运营商内部那样顺畅。数据包在跨运营商网络边界时,可能会遇到更多的路由器和交换机,这增加了数据包丢失的概率以及传输延迟。

2. 访问速度慢:跨运营商访问时,数据可能需要通过网络间的互联点(Peering Point),而这些互联点的带宽和性能可能有限,尤其是在高峰时段,这会导致访问速度明显下降。

3. 时延问题:CDN(内容分发网络)通常会缓存内容并分布至多个地理位置,以减少跨运营商访问的时延问题,但如果CDN节点分布不均或与用户所在运营商连接不佳,仍可能出现高时延。

4. 互联互通质量:不同运营商之间的网络互联互通质量差异可能导致某些特定应用或服务的性能不稳定,如在线游戏、视频流媒体等对网络条件敏感的服务。

5. DNS解析异常:在多出口情况下,跨运营商的DNS请求可能会遇到异常,导致解析缓慢或失败,影响网站访问。

6. 服务质量(QoS)差异:不同运营商的服务质量标准可能不同,这在跨运营商访问时可能会显现出来,影响用户体验。

7. 带宽饱和:在跨运营商的连接点,带宽资源可能有限,容易达到饱和状态,尤其是在网络高峰期,这会进一步加剧访问速度慢和丢包的问题。

下面来讲下如何确认是否属于跨运营商:

使用tracert(window系统)或traceroute(mac或者Linux)

tracert [选项] 目标地址


- **目标地址**:可以是域名(如 `www.example.com`)或IP地址(如 `192.168.1.1`)。

### 选项:
- **-d**:不将地址解析为主机名,只使用IP地址显示路径。
- **-h 最大跃点数**:设置最大跃点数(即数据包可以经过的最大路由器数量)。默认通常是30跳。
- **-j 跃点列表**:指定一系列跃点,用于测试到达目标的不同路径。
- **-w 时间**:设置等待每个回复的时间(以毫秒为单位)。默认通常是4000毫秒。
- **-R**:使用路由跟踪选项,强制数据包通过每个路由器的反向路径。
- **-S 源地址**:指定源IP地址,用于发送数据包。

示例:
   tracert -d www.example.com
   

输出解释:
- **跃点**:每个跃点代表数据包经过的一个路由器或网络设备。
- **地址**:跃点的IP地址。
- **时间**:数据包到达该跃点的时间(毫秒)。
- **丢失/总发送**:数据包丢失的数量和总发送的数量。

traceroute [选项] 目标地址


- **目标地址**:可以是域名(如 `www.example.com`)或IP地址(如 `192.168.1.1`)。

### 选项:
- **-w 时间**:设置等待每个回复的时间(以秒为单位)。默认通常是3秒。
- **-q 数量**:设置发送到每个跃点的探测数据包的数量。默认通常是3个。
- **-n**:不将地址解析为主机名,只使用IP地址显示路径。
- **-I**:使用ICMP协议进行追踪。
- **-P 协议**:指定使用的协议(如TCP、UDP、ICMP等),默认是UDP。
- **-s 源端口**:设置源端口号。
- **-S 源地址**:指定源IP地址。
- **-T 标记**:设置IP数据包的类型字段。

示例:
   traceroute -n www.example.com

这里以七牛上传接口举例:

1、在cmd窗口输入以下命令 会得到trace_result.txt文本,打开txt把里面路由ip复制下来。 (如果不指定txt前面的路径,默认保存在用户目录下)

​
tracert -d upload.qiniu.com > %UserProfile%\Desktop\trace_result.txt 

​

2、打开网址在线IP地址批量查询工具 - UU在线工具在线IP地址批量查询工具,可以单次一键批量查询300个以内IP地址归属地,支持导出到Excel,方便快捷。icon-default.png?t=N7T8https://uutool.cn/ip-batch/,把步骤1复制的路由ip复制黏贴进去,查看是否出现跨运营商的情况。

上面是电脑端的排查方式,比较方便,如果是app端的需要排查是否跨运营商,那就需要安装一些工具了,iOS客户端去Appstore里搜索下载安装best nettools软件即可追踪路由,再把得到的路由ip检测下是否出现跨运营商即可,

Android客户端的话下载安装这个软件得到路由ip

安卓工具:
文件文件大小:8.3 M|icon-default.png?t=N7T8https://hjiale.lanzout.com/iEj2o1k4c6ji
密码:52pj

网站Tracert路由追踪|在线Tracert工具—卡卡网 www.webkaka.comicon-default.png?t=N7T8http://www.webkaka.com/Tracert.aspx

公司端优化,使用DnsPod技术,如果还有用户有解析异常的,就让出现问题的用户那边把dns改为119.29.29.29(这样就直接利用dnspod的dns来解析了)

DnsPod:

介绍:

DNSPod 是一家提供域名解析服务的平台,成立于2006年,主要功能和用途包括:1. 智能域名解析:DNSPod 可以为拥有不同网络环境(如电信、联通、教育网等)服务器的网站提供智能解析服务。这意味着当用户访问网站时,DNSPod会根据用户的网络供应商自动将其导向响应最快的服务器,从而提高访问速度和用户体验,实现互联互通。2. 多线路支持:确保不同网络环境下的用户都能快速访问,避免因网络差异导致的访问延迟问题。3. 免费与付费服务结合:DNSPod 提供免费和付费的DNS服务方案,满足不同用户的需求。免费版通常包含基础的DNS解析功能,而付费版则提供更多高级特性,如更多的DNS记录类型、更高的解析优先级、DDoS防护等。4. API接口与自动化:通过提供的API,开发者可以轻松地集成DNS管理功能到自己的系统中,实现域名解析记录的自动化管理。5. Public DNS服务:基于BGP Anycast技术,DNSPod的Public DNS服务在全球范围内提供快速、稳定的DNS解析,支持谷歌ECS协议,进一步提升解析准确性。6. 安全服务:包括DDoS攻击防御、邮件转发、证书管理等,增强网站的安全性和可靠性。7. 动态域名解析:对于使用动态公网IP的用户,DNSPod支持动态更新IP,确保即使IP变动,域名也能指向正确的服务器地址。综上所述,DNSPod的主要作用在于优化域名解析过程,提升网站可用性、访问速度及安全性,同时也为网站管理者提供了便捷的DNS管理工具。

能解决什么问题?

DNSPod作为一个专业的域名解析服务提供商,能够解决以下几种常见问题:1. 提高解析速度:DNSPod在全球部署了大量的DNS服务器节点,通过智能调度算法,能够快速响应DNS查询请求,缩短解析延迟,提升网站和应用的加载速度。2. 跨网络访问优化:对于存在网络隔阂的地区,如中国大陆的电信、联通、移动等不同ISP之间的互联互通问题,DNSPod的智能解析功能可以识别访问者的网络环境,并将请求定向到最优的服务器,改善跨网访问体验。3. 稳定性与冗余:DNSPod拥有高可用性的架构设计,即使部分节点出现故障,也能通过其他节点继续提供服务,确保解析服务的连续性和稳定性。4. 安全防护:DNSPod提供DDoS防护、域名劫持检测等安全措施,保护域名解析服务免受恶意攻击,增强网站的防护能力。5. 动态IP解析:对于使用动态公网IP的用户,DNSPod支持动态域名解析,即使IP地址发生变化,也能实时更新,保持域名指向正确。6. 高级DNS管理:DNSPod提供丰富的DNS记录类型,包括A、CNAME、MX、TXT、NS、SRV等,以及URL转发、宕机切换等功能,满足复杂场景下的域名管理需求。7. API与自动化:通过API接口,用户可以实现DNS记录的自动化管理,方便与各种自动化运维工具集成,提高工作效率。8. 监控与报告:DNSPod提供详细的解析日志和统计报告,帮助用户监控域名解析状态,及时发现并解决潜在问题。9. 域名转移与注册服务:除了DNS解析,DNSPod还提供域名注册、域名转移等服务,简化域名管理流程。总之,DNSPod通过其专业的技术和服务,旨在为用户提供快速、稳定、安全的域名解析解决方案,提升互联网应用的用户体验和可靠性。

使用方法:

使用DNSPod进行域名解析大致可以分为以下几个步骤:

1. 注册与登录:

• 首先,访问DNSPod官网 (https://www.dnspod.cn/) 并注册一个账号,或者使用腾讯云账号登录。

• 添加域名:

• 登录后,在控制台找到“域名管理”或相应的入口,点击“添加域名”。输入你要管理的域名,确认后即可将域名添加至DNSPod管理。

• 创建解析记录:

• 添加完域名后,进入该域名的管理页面,你可以在此处创建不同的DNS记录,例如A记录、CNAME记录、MX记录等。根据你的需求填写相应的记录类型、主机记录、记录值和TTL时间。

• 配置DNS服务器:

• 在你的域名注册商处,将域名的DNS服务器地址修改为DNSPod提供的DNS服务器地址。DNSPod的公共DNS地址为119.29.29.29,但这通常用于公共查询而非域名托管。对于域名托管,你需要使用控制台提供的专用DNS服务器地址。

• 等待DNS刷新:

• 修改DNS服务器后,全球的DNS服务器需要一段时间来刷新DNS缓存。这个过程可能需要几分钟到几小时不等。

• 监控与管理:

• DNSPod提供了监控服务,你可以设置健康检查,监控域名解析状态。同时,你可以随时在控制台中管理、修改或删除DNS记录。

• 使用高级功能:

• DNSPod还提供了多种高级功能,比如智能解析、负载均衡、宕机切换等,你可以根据需求启用这些功能,进一步优化域名解析服务。

• 维护与支持:

• 如果在使用过程中遇到问题,DNSPod提供了客服和技术支持,你可以在官网查找帮助文档或联系客服寻求帮助。以上是基本的使用流程,具体的步骤可能会根据DNSPod的最新功能和界面布局有所变化。建议参考DNSPod官方的最新指南和文档,以获得最准确的操作步骤。

其他疑问:

1、用户本地没有配置dnspod的dns会有效果吗?

如果用户的本地设备没有设置使用DNSPod的DNS服务器,那么在正常情况下,用户的设备将会使用其默认的DNS解析服务,这通常是互联网服务提供商(ISP)提供的DNS服务器,或者是用户手动配置的其他公共DNS服务(如Google的8.8.8.8、114.114.114.114等)。在这种情况下,用户的域名解析请求不会直接通过DNSPod进行,除非用户的域名已经被设置为由DNSPod的名称服务器(NS记录)负责解析。即使用户的设备没有直接指向DNSPod,当域名的NS记录指定为DNSPod的服务器(例如f1g1ns1.dnspod.net和f1g1ns2.dnspod.net)时,用户的请求最终会递归查询到DNSPod,由DNSPod提供正确的IP地址给用户的DNS服务器,再由用户的DNS服务器返回给用户。因此,即使本地未设置DNSPod的DNS,只要域名本身在DNSPod上进行了托管,DNSPod仍然间接参与到了域名解析的过程中。但这一过程依赖于全局DNS系统的递归解析机制,而非用户直接与DNSPod交互。

2.公司使用了dnspod,用户那边为什么还是dns解析异常?

通常情况下,DNS解析的过程遵循这样的步骤:1. 用户的计算机首先向其配置的本地DNS服务器(通常是ISP提供的,或者用户手动设置的)发送域名解析请求。2. 如果本地DNS服务器无法解析该域名(即本地缓存中没有且自身也无法解析),它会向上级DNS服务器请求,这个过程会一直持续到根DNS服务器。3. 根DNS服务器会指引请求到负责相应顶级域(如.com、.net)的权威DNS服务器。4. 接着请求会被转发到负责该域名的具体DNS服务器,例如DNSPod的DNS服务器,如果该域名正好托管在DNSPod上。如果用户希望直接利用DNSPod的DNS服务器进行解析,需要在本地网络设置中手动将DNS服务器地址改为DNSPod提供的公共DNS地址。这样,用户的设备在进行DNS查询时就会直接跳过本地DNS服务器,向DNSPod发起请求,从而利用其解析服务和可能的加速效果。因此,DNSPod的DNS服务能否发挥作用,取决于用户的DNS设置是否指向了DNSPod的DNS服务器。如果没有特别配置,即使域名在DNSPod上托管,用户的设备仍会依赖其默认或配置的DNS解析路径。

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

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

相关文章

淘宝扭蛋机源码解析:功能实现与技术细节

随着在线购物和娱乐的融合,淘宝扭蛋机作为一种创新的购物娱乐方式,受到了广大用户的喜爱。本文将深入解析淘宝扭蛋机的源码,探讨其功能实现与技术细节,以期为开发者们提供一些有价值的参考。 一、功能实现 1.用户登录与注册 淘宝…

《令狐带你阅读JDK源码之简单集合ArrayList》

文章目录 Java简单集合ArrayList继承体系源码解析 总结 大家好哈,欢迎来到令狐小哥本期专栏,这期专栏主要是带着大家阅读JDK源码,我会分几期篇幅来介绍这个jdk源码、会进行剖析、梳理,欢迎大家指正阅读。后面我会配套自己的视频进…

【C++题解】1090 - 同因查找

问题:1090 - 同因查找 类型:for循环、简单循环 题目描述: 求出 10 至 1000 之内能同时被2、3、7 整除的数,并输出。 每行一个。 输入: 无。 输出: 按要求输出满足条件的数,每行 1 个。 完…

TiDB-从0到1-配置篇

TiDB从0到1系列 TiDB-从0到1-体系结构TiDB-从0到1-分布式存储TiDB-从0到1-分布式事务TiDB-从0到1-MVCCTiDB-从0到1-部署篇TiDB-从0到1-配置篇 一、系统配置 TiDB的配置分为系统配置和集群配置两种。 其中系统配置对应TiDB Server(不包含TiKV和PD的参数&#xff0…

GaussDB技术解读——GaussDB架构介绍(一)

目录 1 GaussDB 关键架构目标 2 GaussDB分布式架构 2.1 GaussDB 分布式关键技术架构 3 数据计算路由层(Coordinator)关键技术方案 3.1 分布式优化器 3.2 分布式执行框架 GaussDB是华为自主创新研发的关系型数据库,基于华为在数据库领域…

vivo手机如何改ip地址

在数字化时代,网络已成为我们日常生活和工作中不可或缺的一部分。而IP地址,作为网络连接的唯一标识,有时出于安全或隐私的需要,我们可能希望对其进行更改。对于使用vivo手机的用户来说,如何轻松修改IP地址可能是一个令…

2024后端服务架构升级

文章目录 背景改造方案新架构图技术选型思考 服务拆分公共组件设计自部署算法服务排期计划 全球多活改造背景架构图分布式ID大表分区处理范围使用用途改造方案排期计划升级预算 背景 1、xx业务经过多轮的业务决策和调整,存在非常多技术包袱,带了不好的用…

Nvidia Jetson/Orin +FPGA+AI大算力边缘计算盒子:轨道交通监控系统

株洲中车时代电气股份有限公司(下称中车时代电气)是中国中车旗下股份制企业,其前身及母公司——中车株洲电力机车研究所有限公司创立于1959年。中车时代电气扎根株洲,走好两条钢轨,走出两条钢轨。中车时代电气秉承“双…

Flink系列三:Flink架构、独立集群搭建及Flink on YARN模式详解

一、Flink架构 Flink 是一个分布式系统,需要有效分配和管理计算资源才能执行流应用程序。它集成了所有常见的集群资源管理器,例如Hadoop yarn,但也可以设置作为独立集群甚至库运行。 Flink 集群剖析 Flink 运行时由两种类型的进程组成&…

【自然语言处理】【Scaling Law】Observational Scaling Laws:跨不同模型构建Scaling Law

相关博客 【自然语言处理】【Scaling Law】Observational Scaling Laws:跨不同模型构建Scaling Law 【自然语言处理】【Scaling Law】语言模型物理学 第3.3部分:知识容量Scaling Laws 【自然语言处理】Transformer中的一种线性特征 【自然语言处理】【大…

Innodb Buffer Pool缓存机制(三)Innodb Buffer Pool内部组成

一、控制块缓存页 Buffer Pool中默认的缓存页大小和在磁盘上默认的页大小是一样的,都是16KB。为了更好的管理这些在Buffer Pool中的缓存页,InnoDB为每一个缓存页都创建了一些所谓的控制信息,这些控制信息包括该页所属的表空间编号、页号、缓存…

自动控制:自治系统与非自治系统的稳定性分析

自动控制:自治系统与非自治系统的稳定性分析 在自动控制领域,理解自治系统和非自治系统的区别对于分析系统稳定性至关重要。自治系统的运动方程只与系统的状态有关,而非自治系统的运动方程则与系统的状态和时间都有关系。本文将探讨非自治系…

SqlServer2016企业版安装

前言 好久没有知识的累积,最近工作上遇到新的SqlServer2016安装,记录一下 参考文章 SQL Server 2016软件安装包和安装教程 - 哔哩哔哩 (bilibili.com) 安装包准备 需要提前准备软件安装包如下 cn_sql_server_2016_enterprise_x64_dvd_8699450&…

3. 使用tcpdump抓取rdma数据包

系列文章 第1章 多机多卡运行nccl-tests 和channel获取第2章 多机多卡nccl-tests 对比分析第3章 使用tcpdump抓取rdma数据包 目录 系列文章一、准备工作1. 源码编译tcpdump2. 安装wireshark 二、Tcpdump抓包三、Wireshark分析 一、准备工作 1. 源码编译tcpdump 使用 tcpdump…

动物收容所

题目链接 动物收容所 题目描述 注意点 若没有可以收养的动物,则返回[-1,-1]收纳所的最大容量为20000编号随着收养动物的增加自增 解答思路 利用队列先进先出的特点将猫和狗分别存进两个队列中,关键是dequeueAny这个方法中如果此时猫和狗的队列中都有…

【算法无用系列】电影推荐——余弦相似度计算用户相似度原理

【算法无用系列】通过余弦相似度计算电影、用户相似度 话不多说,本文通过电影推荐系统中,基于余弦相似度算法计算出用户相似和电影相似原理。希望可以帮助一些代码不懂的同学一些思路。 记录用户电影评分数据 一般情况来说,会根据用户的行为…

安装Ubuntu桌面系统(虚拟机)

VirtualBox创建虚拟机(为安装Ubuntu桌面系统)-CSDN博客 虚拟机的创建方法如上链接。当虚拟机开始引导之后,便正式开始Ubuntu桌面版的安装过程。Ubuntu桌面版界面做得很漂亮,操作起来也方便,很适合作为入门Linux的操作…

探索安全之道 | 企业漏洞管理:从理念到行动

如今,网络安全已经成为了企业管理中不可或缺的一部分,而漏洞管理则是网络安全的重中之重。那么企业应该如何做好漏洞管理呢?不妨从业界标准到企业实践来一探究竟!通过对业界标准的深入了解,企业可以建立起完善的漏洞管…

Java+SVNCloud+Mysql课程设计

文章目录 1、主要内容2、所需准备3、与sql访问的中间类:SqlMessage4、窗口界面5、main方法 1、主要内容 课程设计,主要通过Javas wing创建窗口,jdbc连接云端mysql数据库进行基本操作,支持随机生成数据并用动态展示数据结果。 先…