💥昨天掘金 Web 端突然登不上了,一次网络异常的排查记录

故事背景

昨天上午,我像往常一样打开电脑,准备刷会掘金,结果网页一直卡在登录界面,疯狂转圈圈就是不加载

我还以为是我自己电脑网络出了问题,但上百度、知乎啥的都没问题。

用手机一打开掘金,秒进!问了下同事,他们也都能正常登录。

一开始还以为是 DNS 出了点幺蛾子,我立刻祭出经典网络排障大招:

bash 复制代码
ipconfig /flushdns

刷新 DNS 配置后重启浏览器,一点用都没有,还是转圈转圈转圈...

🤔 是不是掘金在精准打击我?

我开始怀疑是不是掘金搞了什么 AB 测试,或者我成了某种「灰度用户」?

于是我在手机端打开掘金,发了个沸点,问问是不是有人也遇到这个问题。

结果还真有几个网友评论说上不去,但大部分人都没啥问题。

这时候我感觉自己可能是那万分之一被眷顾的倒霉蛋

🔍 开始排查:ping 一下 juejin.cn

等到下午4点钟都还没修复,我等不急了,看看能不能自己修复一下这个问题。先ping一下juejin.cn看看咋回事。

我再让同事帮忙ping一下,他是可以ping通的。我才意识到我们访问的是不同的节点,我ping他的地址也能ping通,我脑海里突然有一个绝妙的想法。

tips: 过一段时间ping掘金都是不同的ip,但是他的ip都能ping通,我的ip都ping不通,估计是某个集群的节点都挂了。

💡 灵机一动:改 hosts 文件!

既然我同事的 IP 能正常访问,那我可以:

  1. 拿到他 ping 通的 IP;
  2. 修改本地 hosts 文件,把 juejin.cn 指向这个 IP。

Windows 下 hosts 文件路径:

makefile 复制代码
C:\Windows\System32\drivers\etc\hosts

我加了一行:

bash 复制代码
x.x.x.222 juejin.cn

保存之后清缓存,重启浏览器,奇迹出现了

✨ 掘金网页终于可以正常访问了!

🔄 继续深挖:负载均衡的问题?

掘金 Web 后端肯定是有用负载均衡的,常见的几种策略有:

  • round-robin:轮询分发
  • ip_hash:按 IP 分发
  • weight:加权分发

我和同事的公网 IP 是一样的,那就不应该被分到不同节点。

我开始怀疑是不是用了 源端口 来参与 Hash 了。

查了下资料,像 LVS 或某些 Nginx 配置,确实可能用五元组(源 IP、目标 IP、源端口、目标端口、协议) 来决定访问哪个节点。但是每次访问HTTP请求,端口应该都是会变的,所以也不应该是端口的问题。最后怀疑大概率是用的MAC地址做HASH,因为MAC地址是不变的,所以我试了很多次都登录不了

🧠 小结:可能是某个网关节点挂了

综合判断,很可能是:

  • 掘金某个后端节点挂了;
  • 但 DNS 解析或者负载策略还会把小部分用户分发到这个挂掉的节点;
  • 所以只有"极少部分人"打不开掘金;
  • 修改 hosts 指向健康 IP 是临时绕过方法。

📢 想对掘金说几句话

如果掘金的朋友看到这篇文章:

👉 你们后端某个节点可能挂了,可以检查下是不是健康检查没生效;

👉 顺便问问,要不要给我来个内推?我都给你们排完错了😂


📌 最后

这次经历虽然只是一次小问题,但也提醒了我们:

  • 平常多学一点网络知识真的能救命;
  • 多一些动手排查的勇气;
  • 最后别忘了写成文章分享出来,也许就能帮到别人啦。

如果你也遇到类似情况,欢迎评论区一起交流!

相关推荐
ttwuai1 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
用户8356290780511 小时前
Python 实现 Excel 页面布局与打印设置自动化
后端·python
用户9931441579841 小时前
微服务框架中获取用户信息
后端
xuanWb1 小时前
手写一个 LLM API 网关:Anthropic 与 OpenAI 协议转换的完整实现
后端
苍何2 小时前
给 Codex 换皮肤这门生意,被我开源了
后端
用户8356290780512 小时前
Python 实现 Excel 命名范围(Named Range)的创建与管理
后端·python
程序员David2 小时前
我让 Claude 从架构文档一路干到代码,踩了三个坑才摸清边界
后端
Zane19942 小时前
并发 vs 并行:别再傻傻分不清了,一文讲透 Java 并发编程的第一课
java·后端
神奇小汤圆2 小时前
线程池拒绝策略CallerRunsPolicy反而卡死了主线程
后端