因为在pfsense里可以使用acme自动续期证书,所以开启了https访问,不过后来觉得不太方便,又把https关掉了。
关掉之后,出现一个奇怪的问题,http页面可以打开,但是无法登陆,切换到https又能登陆,于是我感觉这是pfsense的bug,于是就继续开着https,不了了之。

今年把pfsense升级后,发现http还是不能登陆,感觉不应该有这种bug,检查了一下,发现是http的cookie无法覆盖https的同域名的cookie,但是https的cookie在http里面看不到,要先打开https,然后删除cookie,再重新用http登陆就可以了。

有些先入为主的念头确实太容易影响人的判断了,如果自己意识不到这是自己意识下的判断,而不是事情本身告诉的事实,那么很容易把自己困在其中。

又比如,上周解决的客户的一个问题,本来问题是需要让某个服务不受mysql卡住的影响,开始的做法是优化mysql的查询,增加全文索引,甚至尝试引入sqlite作为前级缓存。后来思考了一番,发现其实问题的根源在于受到mysql设置超时不生效的影响,所以最终的解决办法是启动新的线程,在线程中执行查询,一旦超时就把线程丢在那里,不管它查询是不是返回,当然结果也丢弃,虽然可能服务会降级,但是至少不会卡死了。

很多人对于性能优化都有不小的执念,但是能实际解决问题才是最根本的,至少用一个能够接受的问题或者容易有边界进行规避的问题来替换一个会影响服务的问题也是一种解决办法。

以前经常看到别人说鬼压床,但是自己从来没有经历过,也许有?但是自己忘记了。
上周在村里睡午觉,大概是到点了,迷迷糊糊中感觉自己醒了,于是想抬手拿起手机看看。结果发现左手完全抬不起来,我确认了一遍大脑发送了抬手的指令。但是眼里左手还放在身边。
我觉得可能是左手睡麻了,于是决定用右手抬一下左手,结果右手好像也没反应。再细细一体会,发现完全没有任何细节,看来还是在做梦,于是又沉沉睡去,大概过了一会会就醒了,却依然记得这部分内容,非常清楚。
但是除此之外没什么特别的,和其他的梦好像没区别,可能是因为自己没有惧怕的感觉吧,躺在床上动不了完全不会比在梦里把下午要上班的班上完了结果醒来发现还要上班的感觉更糟。

前几个月还有一次,睡觉的时候感觉完全喘不上气,感觉什么东西压到胸口了,在梦里好像快濒死了,可是一直又醒不过来,在梦里想了一会感觉自己起来大概被什么压到了,就开始疯狂扭动自己的身体,结果就清醒了。等醒来才发现老婆把大腿压我胸口上了,怪不得喘不上气,她还笑我一直扭动。

这个月一直用手环跟踪自己的睡眠数据,发现心率和呼吸速率几乎不怎么变动,所以如果呼吸有变化的话身体肯定会非常敏感,因为梦会把自己的感觉放大很多倍。

今天老婆给我说wireguard用不了了,测试一下才发现是域名过期了,这个十年前注册的域名昨天就已经过期了。
没有续期的原因就是这个域名没承载什么业务,唯一用到的地方就是ddns,因为我用dnspod解析,现在不实名已经无法用dnspod的任何业务了。
等过一阵子把手里的域名都转移到dynadot,续费便宜多了。

Name: chkjxcn.org
Internationalized Domain Name: chkjxcn.org
Registry Domain ID: The RDAP server redacted the value
Domain Status:
clientTransferProhibited

autoRenewPeriod

Nameservers:
ns1cnb.name.com

ns2qvz.name.com

ns3cna.name.com

ns4bty.name.com

Dates
Registry Expiration: 2027-01-18 17:01:39 UTC
Registrar Expiration: 2026-01-19 00:01:39 UTC
Updated: 2026-01-20 03:19:48 UTC
Created: 2016-01-18 17:01:39 UTC

ipfw是freebsd默认的防火墙,我利用它来进行流量分流,以及做user defined路由,在利用ipfw分流的文章中有描述。

平时用这一套东西的时候没什么问题,诡异的是只要一重启,ipfw就失效了。但是重启一下ipfw,有可以了。这个问题很久以前就出现了,只是因为系统重启次数比较少,所以不太影响业务。

今天南方电网又因为欠费拉闸了,同样的问题再次出现,我远程登陆进去看,以前我一直以为是接口重启导致ipfw转发错误,这次进去看,才发现ipfw没有处理任何报文,所有的ipfw packet counter都为0,问了deepseek后,他建议我检查net.inet.ip.fw.enable是否为0,检查后确实发现是0。

问题的关键在于这个值为什么是0,在初始化ipfw规则的脚本里有service ipfw restart,添加调试代码后,发现确实在这句执行后sysctl里的值变成0,可是内核没有任何错误信息打印。

因为这个enable其实是一个hookcall,所以很有可能在服务重启的过程中,函数执行出错,因此就把它设置成0了。不过我还是很好奇到底为什么会这样,等过两天回家再调试一下。

总结就是,ai总是能以旁人的眼光看到自己没看到的东西,我一直相信ipfw绝对是启用了,问题可能是rule没有完全生效或者因为keep-state。

============
找到原因了,因为是在/etc/rc.local中调用脚本,并且在脚本中service ipfw restart,但是sh的echo会返回2,如果stdout无法输出。这就导致ipfw_start返回2,而后面的ipfw_poststart便不会执行,而sysctl值就是在这里设置的。

stdout无法输出的原因是在rc.local中使用了后台执行,导致rc.local退出后,stdout被关闭,但是后台还在执行,此时echo失败,在运行命令前把stdout重定向到/dev/console就没有这个问题了。

由此可见,软件工程的安全边界,令人难以想象的小,甚至某些测试没有任何问题的东西,稍换一个环境,就会出莫名其妙的问题,让人百思不得其解。日志和debug消息,才是你的傍身利器,即使当下看起来没什么用。

2025年过去了,总结一下2025年做了什么。

今年上半年好像没有什么变动,也许是过太久不太记得了,主要是出去玩,五一的时候去赶海好几次,也去万泉河漂流,还有去潭门吃海鲜。
七月的时候去新加坡,没什么感悟,也就是到处逛逛,除了靠左不太适应,去超市和吃饭的店里大部分都能讲中文。
今年下半年改变了作息,现在工作日都是七点多就起床了,晚上就算睡的晚按时起来白天也不是很困,不再熬夜之后感觉身体变得更健康了,而且有更多的时间工作学习了。
当然最大的改变也是阅读了德宝法师写的禅修三部曲,也许我不会进行禅修,但是随时随地我都能练习我之所为我,专注于自己做的事情,以前经常抗拒的事情,也没那么讨厌了。
希望自己在新的一年能变得更好。