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

问题场景:

最近公司的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解析路径。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

纷享销客BI智能分析平台常见问题QA

Q1在驾驶舱中查看图表时,图表间有什么动态交互吗? A:驾驶舱支持图表本身下钻,图表间联动,并且支持图表下钻的同时联动,可以基于驾驶舱的这个功能,实现图表间的动态交互。 Q2基于客户主题创建的统计图&…

PSO-LSSVM-Adaboost分类模型,粒子群算法优化基于最小二乘支持向量机结合Adaboost的数据分类-附代码

PSO-LSSVM-Adaboost是一种结合PSO-LSSVM和AdaBoost两种机器学习技术的方法,旨在提升模型的性能和鲁棒性。具体来说,AdaBoost是一种集成学习方法,通过组合多个弱分类器来形成一个强分类器,每个分类器针对不同的数据集和特征进行训练…

人脸识别——OpenCV

人脸识别 创建窗口创建按钮设置字体定义标签用于显示图片选择并显示图片检测图片中的人脸退出程序返回主界面 创建窗口 导入tkinter库,创建窗口,设置窗口标题和窗口大小。 import tkinter as tkwin tk.Tk() win.title("人脸识别") win.geom…

大模型时代的具身智能系列专题(十)

Sergey Levine团队 Sergey Levine目前是UC Berkeley电气工程与计算机科学系的副教授,同时是RAIL(Robotic AI&Learning LabBAIR)实验室主任。除了在Berkeley的教职,Levine也是Google Brain的研究员,他也参与了Google知名的机器人大模型PA…

VMD-PSO-LSTM单维时序预测模型(单输入单输出)-附代码

VMD-PSO-LSTM单维时序预测模型(单输入单输出) 1)首先对原始单维数据进行VMD分解,分解为K个模态分量和1个残差分量 2)将各个模态分量输入模型,建立模型进行预测 3)将各个预测结果相加得到最终…

MCU 的最佳存储方案 CS 创世 SD NAND

MCU 的最佳存储方案 CS 创世 SD NAND 【SD NAND】大家都知道 MCU 是一种 “麻雀” 虽小,却 “五脏俱全” 的主控。 大家都知道 MCU 是一种 “麻雀” 虽小,却 “五脏俱全” 的主控。它的应用领域非常广泛,小到手机手表,大到航空航…

【堡垒机小知识】堡垒机审计日志的定义以及作用概述

随着数字化进程的加速,企业对于IT信息系统的依赖程度不断加深,而保障IT系统的网络安全至关重要,因此不少企业纷纷购买了堡垒机。今天我们就来简单概述一下堡垒机审计日志的定义以及作用。 堡垒机审计日志定义 堡垒机审计日志是记录堡垒机上所…

xml 取值错误 #{} boolean 一直为 false

取值时 #{param.msgStatus} 一直是false&#xff0c;java代码里面显示true。 <select id"findPageOaReading" resultType"com.focusin.data.office.func.dto.ProcessMessageInfoDTO">select i.*, t.template_name procdefNamefrom process_message_…

VBA excel 表格将多行拆分成多个表格或 文件 或者合并 多个表格

excel 表格 拆分 合并 拆分工作表按行拆分为工作表工作表按行拆分为工作薄 合并操作步骤 拆分 为了将Excel中的数万行数据拆分成多个个每个固定行数的独立工作表&#xff0c;并且保留每个工作表的表头&#xff0c;你可以使用以下VBA脚本。这个脚本会复制表头到每个新的工作表&…

练习实践-linux启动耗时分析

练习实践-启动耗时整体概览&#xff0c;具体服务的启动细节 参考来源&#xff1a; B站up主林哥讲运维&#xff1a;一分钟学会&#xff1a;可视化查看系统启动时的性能 如何使用Linux命令查看系统的启动进程&#xff08;linux查看启动进程&#xff09; 解决ubuntu开机变慢&…

BitMart 宣布将销毁 264万枚 BMX,为何平台币掀起销毁热潮?

根据 BitMart 2024年4月18日发布的官方公告&#xff0c;BitMart 将于 5 个工作日内销毁 2,637,063 枚 BMX&#xff0c;价值约 94.9 万美元。根据 BitMart 白皮书中关于「回购机制」的规定&#xff0c;BitMart 2024 年第一季度平台手续费收入的 20% 将用于 BMX 的月度回购和销毁…

碳化硅MOSFET短路保护方法

碳化硅MOSFET短路保护方法 1.概述2.IGBT和碳化硅MOSFET器件特性3.短路保护方法比较4.总结 1.概述 碳化硅 (SiC) MOSFET 已成为硅 (Si) IGBT 的潜在替代产品&#xff0c;适用于光伏逆变器、车载和非车载电池充电器、牵引逆变器等各种应用。与 Si IGBT 相比&#xff0c;SiC MOSFE…

C语言基础:字符串函数使用和剖析(2)

strcmp&#xff08;字符串比较,比较两个字符串是否相等&#xff09; int strcmp ( const char * str1, const char * str2 ); int main() {const char* p1 "abcdef";const char* p2 "sqwer";if ("abcdef" "sqwer")//千万不能这么比…

nginx中配置ssl证书(宝塔面板)

首先申请一个SSL证书&#xff0c;这里我申请的joyssl的免费证书。提交订单申请后&#xff0c;按照页面提示在域名解析中将CNAME和记录值配置好。 比如我用的阿里云&#xff0c; 这是好后&#xff0c;需要等几分钟&#xff0c;然后域名检验成功。 然后点击joyssl的左侧菜单的“证…

grep、sed、awk

grep&#xff1a;文本过滤工具 sed: 文本编辑工具 awk: 格式化文本 grep -n 显示行号 -i 忽略大小写 -v 取反 -o 只保留关键消息 # 找出文件的空行 grep ^$ test.txt -n # 找出文件非空行内容 grep ^$ test.txt -n -v # 找出文件非空行内容&#xff0c;并且排除注释&#xff…

大创报名步骤

目录 一、注册 二、创建项目 三、报名 一、注册 进入注册/登录 点击 点击 填写个人信息 二、创建项目 找到解压的文件 随便选一个 项目简介在你选择的文件中截取一段 询问自己寝室的人 被邀请者需要在微信公众号上搜索 “全国大学生创业服务网” 选择我的消息中同意 三、报名…

Facebook商城号怎么做?思路与操作分析

2016 年&#xff0c;Facebook打造了同名平台 Facebook Marketplace。通过利用 Facebook 现有的庞大客户群&#xff0c;该平台取得了立竿见影的成功&#xff0c;每月访问量将超过 10 亿。对于个人卖家和小企业来说&#xff0c;Facebook Marketplace是一个不错的销货渠道&#xf…

金士顿U盘被写保护的解决方法

1.适用的U盘芯片信息 USB设备ID: VID 0951 PID 1666 设备供应商: Kingston 设备名称: DataTraveler 3.0 设备修订版: 0110 产品制造商: Kingston 产品型号: DataTraveler 3.0 产品修订版: PMAP 主控厂商: Phison(群联) 主控型号: PS2251-07(PS2307) - F/W 08.03.50 [2018-…

使用python绘制日历热力图

使用python绘制日历热力图 日历热力图效果代码 日历热力图 日历热力图&#xff08;Calendar Heatmap&#xff09;是一种数据可视化图表&#xff0c;用于展示时间数据的分布和趋势。它将数据按天映射到一个日历中&#xff0c;通过颜色的变化表示每天的数据值大小。这种图表常用…

nginx平滑升级

#平滑升级 kill -USR2 <PID号> //查看nginx版本 [rootl1 logs]# nginx -v //查看nginx版本 nginx version: nginx/1.26.0 [rootl1 logs]# 安装一个1.25版本实验一下 [rootl2 ~]# cd /opt/ [rootl2 opt]# [rootl2 opt]# lsnginx-1.25.5.tar.gz nginx-1.26.0.tar.…