debug问题参考:https://olimi.icu/article/53f13921-9ab3-45c2-89f1-cb9ae6d83a60#b02100068a3946a8be489f85546b54af
这个问题debug了三天。从一开始暴露好公网IPV6成功访问到服务的欣喜,到后面以为是熟练的DDNS+Caddy反代的一步之遥,真是痛苦之旅(虽然也找到了乐趣)。
这里主要混杂了IPV6、公网、新域名等多个变量。一开始一直以为是caddy对ipv6适配的问题,因为同一个地址,直接使用域名+端口的方式能够访问,那ipv6地址和服务本身肯定没有问题。唯一对我而言是黑盒的就是caddy本身。
然后对caddy进行大量了研究,各种研究其针对ipv6的配置,一无所获。因为上面caddy文档对前几个域名都是可以的,新加了一个一模一样的选项,唯一区别只在于这个域名是对应了ipv6地址(其实不只是)。钻到了牛角尖里。在这死胡同里最终放过自己是到论坛发了一个求救贴,承认自己解决不了。
但在这里反而出现转机,因为在死胡同里死心了。其实在死胡同过程中已经有一点意识。因为caddy对这个行不通的请求完全没有一点日志,所以已经非常怀疑根本这个请求没进入过caddy服务,但是真的只抓住当时一条路走到黑了。而且当时抓包软件抓到了这个请求包,所以我当时认为这个请求肯定进入了我的电脑,没有被屏蔽。而我的电脑防火墙全部关闭,还有什么其他可能呢。
死心之后,思考一下目标。方向代理主要目标是方便设置HTTPS。那就搞到HTTPS就行,不拘泥在通过域名访问上。然后就加上了域名:端口的方式,直接ok了。
但非常神奇的是,搞好之后,再去抓包,443的包也抓不到了晕。
主要的启示:
- 保持耐心和斗志。这是通往成功最重要的底线。
- 践行经验和方法论的思考。上面回顾其实有点懊恼,被卡在了自己以为的唯一可能上,没有想到其他可能性。但这其实就是从冰菓里学到的东西,有时候天才就是天才,自己不是天才就不是天才。也许曾经幻想过自己是天才、自己很特别,很期待成为这样的人。但随着年龄增长,应该不再天真,有些东西不行就是不行,但这根本没什么。自己应该找到支撑自己的东西,而不需要靠成为一个特殊的人。自己应该做的就是践行自己的路。而对于普通人而言,通过自己实践经验磨砺出来的经验法则、以及学习别人经典的范式模型,就是自己能够依赖的。对于debug而言,就是那么简单:找不同。曾经我就觉得这个非常低级,但越是这么觉得,就越会被它绊倒。这就是一条我应该走的路,是没有别人灵光一现直接想到解决方案的潇洒,但这就是我走向胜利能够抓住的钥匙。而且这也是有方法论的,比如就算是找不同,那也可以有化繁为简的方法。换个说法就是控制变量。将环境的变量因素消除,简化模型。这不就是科学研究的思路吗。
- 当然也要在踏实排查过程中掌握节奏。比如一个事情我觉得不可能,那基本就真的是不可能的。那可以大胆去排除它。而不是一条路走到黑。需要执拗的是走向胜利的决心,但不是执拗在某一条路上。我太喜欢“熬”自己了。
- 不要熬自己,就是因为记住了,我这样做就是为了解决问题。而且也没有人逼我要这么做。我就是为了自己想要达成这个目的。那就要殚精竭虑地调动脑子去想排查的下一个点,而不是“一直在努力,从未改变”。
- 作者:Olimi
- 链接:https://olimi.icu/article/dab355b1-0bd6-4033-b31f-c46a36e744bc
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。