ICP 备案实测:五段审核,实际怎么走的
2026-08
网上说备案「1~3 周」,官方流程图写「4~5 周」。我这次个人主体、非经营性网站,从提交到拿号实际用了 10 天。但过程里有两个点值得单独记下来。
第一,审核是五段不是三段。中间多一环「待提交管局」——阿里云初审通过后才往通信管理局递。容易让人以为还要点什么,其实不用:它和初审通过盖的是同一个时间戳,系统自动递交,中间没有任何人工动作。
第二,唯一一个「你必须在窗口期内动手」的步骤,窗口极短。工信部短信核验的规矩是「收到起 24 小时内不完成,整单作废」。而从时间戳看,初审通过和短信下发几乎同时发生——你没有提前预警。递交管局那天手机千万别静音。
另外两个反直觉的观察:
- 初审比页面承诺的时间慢,但没被打回。页面承诺「次日 20:00 前」,实际隔了个周末才出结果。别因为过了承诺时间就以为出问题了——那个「1~2 个工作日」是按工作日算的。
- 填单时通信地址和证件住所要逐字一致。我第一次因为街道名写得不完整被打回,改的时候才发现问题出在这种地方。
管局审核那一段,页面明写这期间既不能催审、也不能撤回,没有任何能加速的操作。承认这一点反而轻松:这段时间该干别的就干别的。
dig 说域名解析到 198.18.x.x?那是你本机在骗你
2026-08
排查一台服务器为什么访问不了,我先在本机跑了两条命令:
dig +short example.com A # → 198.18.1.19
nc -z -G 5 <server-ip> 22 80 443 # → 三个端口全部 succeeded
结论看起来很清楚:域名解析正常、端口全开。但两条都是假的。
198.18.0.0/15 是 RFC 保留给网络设备测试的地址段,正常公网域名不可能解析到这里。这是本机代理软件 fake-ip 模式的特征:它接管了 DNS,对任何域名都先返回一个假 IP 占位,等你真去连的时候再按域名转发。换 @8.8.8.8 也没用——请求根本没出本机。
更阴的是第二条。fake-ip 模式下,代理会先接受 TCP 连接再决定怎么转发,所以 nc 探什么端口都「succeeded」。我后来去云控制台看安全组,入方向只放行了 ICMP —— 22/80/443 一个都没开。
教训:本机装了代理之后,dig / nc / curl 这类「从我这儿测一下」的验证全部失去意义。要么去控制台看配置,要么用外部检测服务,要么换一条没走代理的网络(比如手机流量)。
三条会「假绿」的命令
2026-08
都是自己踩过的。共同点是:它们会给你一个「通过了」的信号,而实际上什么都没检查。
1. 用了 project references 的 TypeScript 项目,裸跑 tsc --noEmit 一个文件都不检查。如果根 tsconfig.json 是 "files": [] 加 references 的形式,裸跑它永远「通过」。要用 tsc -b,或者显式指定子配置。所以「build 成功」是可信的,「tsc --noEmit 通过」不是。
2. gofmt -l 列出了未格式化的文件,退出码仍然是 0。于是 gofmt -l . && echo 干净 恒为真。判断依据是有没有输出,不是退出码。
3. Go 的 go vet ./... 和 golangci-lint run 都不看带 build tag 的文件。如果集成测试带 //go:build integration,改完函数签名跑一遍 vet,普通包全绿,集成测试里漏改的调用点一个都抓不出来——因为它们压根没被编译。要加 -tags=integration / --build-tags=integration 再跑一遍。
第三条里 lint 那半条更容易漏,因为「0 issues」看起来比 vet 更像「全都查过了」。
测试绿 ≠ 它守住了你以为的东西
2026-08
一条测试通过,不代表它在守你以为它在守的那道防线。它可能是因为别的原因绿的。
唯一可靠的判据是做对照:把那道防护拿掉,这条测试必须变红。但这个对照实验本身也会骗人,我遇到过四种形态:
- 实验自身的同步把竞态抹平了。测试里那句「等它被推送出去」恰好给两条 goroutine 排了先后,
-race 全绿。
- 红在别的原因上。验「INSERT 少一列会怎样」时只删了列名没动占位符,结果红在 SQL 语法错误——什么都没证明。
- 编译期就被挡下了,根本跑不到测试。
- 抹平并发的东西藏在库里,测试代码里看不见任何同步。一条「8 个 goroutine 并发认领,同一行只该被认到 1 次」的测试,代码里没有锁、没有 channel。但连接池是惰性建连的:8 个 goroutine 各自要现建一条连接,第一个早把活干完了,后面的才刚连上。看着并发,实际接近串行。同一个坏实现,只改「有没有先热身连接池」这一个变量:带热身 10 次逮到 10 次,不热身 10 次只逮到 1 次。
还有一条不对称的经验:「我验证过、没问题」比「我验证时发现了问题」可信度低。后者是撞上来的,前者可能只是实验设计得刚好会成功——因为你当时想证明的是「它有效」,于是构造出的是一个能产生期望结果的实验,而不是一个严格的对照。
所以报告「一切正常」之前,先问自己一句:如果它是坏的,我这个实验会失败吗?