The Mirages

樱桃沟夹事

昨天那个strace的结果,以前解读起来就是一个个去查对应的系统方法是干嘛的,各种不同flag参数到底是什么含义。

于是我把这段内容输给kimi试试

1
2
3
4
5
6
7
8
9
10
21:51:46.643879 socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 5 <0.000017>
21:51:46.643914 setsockopt(5, SOL_IP, IP_RECVERR, [1], 4) = 0 <0.000006>
21:51:46.643947 connect(5, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("0.250.250.200")}, 16) = 0 <0.000042>
21:51:46.644065 ppoll([{fd=5, events=POLLOUT}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 1 ([{fd=5, revents=POLLOUT}], left {tv_sec=0, tv_nsec=0}) <0.000007>
21:51:46.644125 sendto(5, "_N\1\0\0\1\0\0\0\0\0\1\00223\0011\003168\003192\7in-addr\4arpa\0\0\f\0\1\0\0)\4\260\0\0\0\0\0\0", 55, MSG_NOSIGNAL, NULL, 0) = 55 <0.000095>
21:51:46.644278 ppoll([{fd=5, events=POLLIN}], 1, {tv_sec=5, tv_nsec=0}, NULL, 0) = 0 (Timeout) <5.009569>
21:51:51.653958 ppoll([{fd=5, events=POLLOUT}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 1 ([{fd=5, revents=POLLOUT}], left {tv_sec=0, tv_nsec=0}) <0.000010>
21:51:51.654105 sendto(5, "_N\1\0\0\1\0\0\0\0\0\1\00223\0011\003168\003192\7in-addr\4arpa\0\0\f\0\1\0\0)\4\260\0\0\0\0\0\0", 55, MSG_NOSIGNAL, NULL, 0) = 55 <0.000114>
21:51:51.654310 ppoll([{fd=5, events=POLLIN}], 1, {tv_sec=5, tv_nsec=0}, NULL, 0) = 0 (Timeout) <5.010178>
21:51:56.664628 close(5) = 0 <0.000068>

kimi给我一个个反馈了

21:51:46.643879 socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 5 <0.000017>

创建一个新的UDP套接字,设置为非阻塞模式,并指定SOCK_CLOEXEC以确保在执行exec系列函数时套接字会被关闭。

阅读全文 »

最近搞个openvpn的问题,然后突然发现其实openvpn是已经拨通了的,但是我ping一个只有内网使用的域名时候居然会有10秒的延迟,我一般也等不了10秒就中断了,后面偶然等了会,发现第一个包回过来之后,后面的包都正常回了,就是第一个包要等待十秒。

一开始还以为是openvpn server的问题,可自己抓包一看,发现就是自己请求慢了,而且就是第一个包请求的时候。

自己是mac上的orbstack的镜像,一度还以为是ubuntu的问题,然后试了一下rocky,发现居然也是第一个包延迟十秒。但是同样ping 内网ip却没有任何问题。本着刨根问底的精神,那就先用strace看看系统调用的情况。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
root@personal-ubuntu:/Users/timo# strace -tt -T -v -s 1024 ping docs.timoq.com
21:51:46.590522 sendto(3, "\10\0\310n\2 !\"#$%&'()*+,-./01234567", 64, 0, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("192.168.1.23")}, 16) = 64 <0.000086>
21:51:46.590640 recvmsg(3, {msg_name={sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("192.168.1.23")}, msg_namelen=128 => 16, msg_iov=[{iov_base="E\0\0Tz\267\0\0d\1 !\"#$%&'()*+,-./01234567", iov_len=192}], msg_iovlen=1, msg_control=[{cmsg_len=32, cmsg_level=SOL_SOCKET, cmsg_type=SO_TIMESTAMP_OLD, cmsg_data={tv_sec=1734004306, tv_usec=642790}}], msg_controllen=32, msg_flags=0}, 0) = 84 <0.052232>
21:51:46.643123 newfstatat(AT_FDCWD, "/etc/resolv.conf", {st_dev=makedev(0, 0x15), st_ino=5014356, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=242, st_atime=1733731514 /* 2024-12-09T16:05:14.000848465+0800 */, st_atime_nsec=848465, st_mtime=1733731514 /* 2024-12-09T16:05:14.000848465+0800 */, st_mtime_nsec=848465, st_ctime=1733731514 /* 2024-12-09T16:05:14.000848465+0800 */, st_ctime_nsec=848465}, 0) = 0 <0.000029>
21:51:46.643305 newfstatat(AT_FDCWD, "/etc/nsswitch.conf", {st_dev=makedev(0, 0x26), st_ino=47456, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=526, st_atime=1731225143 /* 2024-11-10T15:52:23+0800 */, st_atime_nsec=0, st_mtime=1731225143 /* 2024-11-10T15:52:23+0800 */, st_mtime_nsec=0, st_ctime=1731403213 /* 2024-11-12T17:20:13.204275122+0800 */, st_ctime_nsec=204275122}, 0) = 0 <0.000008>
21:51:46.643415 openat(AT_FDCWD, "/etc/hosts", O_RDONLY|O_CLOEXEC) = 5 <0.000018>
21:51:46.643665 fstat(5, {st_dev=makedev(0, 0x26), st_ino=47389, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=135, st_atime=1731225151 /* 2024-11-10T15:52:31+0800 */, st_atime_nsec=0, st_mtime=1731463506 /* 2024-11-13T10:05:06.277574562+0800 */, st_mtime_nsec=277574562, st_ctime=1731463506 /* 2024-11-13T10:05:06.277574562+0800 */, st_ctime_nsec=277574562}) = 0 <0.000008>
21:51:46.643771 lseek(5, 0, SEEK_SET) = 0 <0.000003>
21:51:46.643796 read(5, "127.0.1.1\tpersonal-ubuntu\n127.0.0.1\tlocalhost\n::1\t\tlocalhost ip6-localhost ip6-loopback\nff02::1\t\tip6-allnodes\nff02::2\t\tip6-allrouters\n\n", 4096) = 135 <0.000006>
21:51:46.643832 read(5, "", 4096) = 0 <0.000002>
21:51:46.643855 close(5) = 0 <0.000004>
21:51:46.643879 socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 5 <0.000017>
21:51:46.643914 setsockopt(5, SOL_IP, IP_RECVERR, [1], 4) = 0 <0.000006>
21:51:46.643947 connect(5, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("0.250.250.200")}, 16) = 0 <0.000042>
21:51:46.644065 ppoll([{fd=5, events=POLLOUT}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 1 ([{fd=5, revents=POLLOUT}], left {tv_sec=0, tv_nsec=0}) <0.000007>
21:51:46.644125 sendto(5, "_N\1\0\0\1\0\0\0\0\0\1\00270\003108\00218\003172\7in-addr\4arpa\0\0\f\0\1\0\0)\4\260\0\0\0\0\0\0", 55, MSG_NOSIGNAL, NULL, 0) = 55 <0.000095>
21:51:46.644278 ppoll([{fd=5, events=POLLIN}], 1, {tv_sec=5, tv_nsec=0}, NULL, 0) = 0 (Timeout) <5.009569>
21:51:51.653958 ppoll([{fd=5, events=POLLOUT}], 1, {tv_sec=0, tv_nsec=0}, NULL, 0) = 1 ([{fd=5, revents=POLLOUT}], left {tv_sec=0, tv_nsec=0}) <0.000010>
21:51:51.654105 sendto(5, "_N\1\0\0\1\0\0\0\0\0\1\00270\003108\00218\003172\7in-addr\4arpa\0\0\f\0\1\0\0)\4\260\0\0\0\0\0\0", 55, MSG_NOSIGNAL, NULL, 0) = 55 <0.000114>
21:51:51.654310 ppoll([{fd=5, events=POLLIN}], 1, {tv_sec=5, tv_nsec=0}, NULL, 0) = 0 (Timeout) <5.010178>
21:51:56.664628 close(5) = 0 <0.000068>
21:51:56.664876 write(1, "64 bytes from 192.168.1.23: icmp_seq=1 ttl=100 time=52.3 ms\n", 6164 bytes from 192.168.1.23: icmp_seq=1 ttl=100 time=52.3 ms
) = 61 <0.000011>

再来看一个直接ping ip的。

1
2
3
4
root@personal-ubuntu:/Users/timo# strace -tt -T -v -s 1024 ping 192.168.1.23
21:57:55.828938 sendto(3, "\10\0\30\301\2\216\0\1 !\"#$%&'()*+,-./01234567", 64, 0, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("192.168.1.23")}, 16) = 64 <0.000092>
21:57:55.829098 recvmsg(3, {msg_name={sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("192.168.1.23")}, msg_namelen=128 => 16, msg_iov=[{iov_base="E\0\0Tz\267\0\0d\1\ !\"#$%&'()*+,-./01234567", iov_len=192}], msg_iovlen=1, msg_control=[{cmsg_len=32, cmsg_level=SOL_SOCKET, cmsg_type=SO_TIMESTAMP_OLD, cmsg_data={tv_sec=1734004675, tv_usec=871853}}], msg_controllen=32, msg_flags=0}, 0) = 84 <0.042814>
21:57:55.872109 write(1, "64 bytes from 192.168.1.23: icmp_seq=1 ttl=100 time=42.9 ms\n", 6164 bytes from 192.168.1.23: icmp_seq=1 ttl=100 time=42.9 ms) = 61 <0.000014>
阅读全文 »

昨晚想把icbc里的理财弄出来,结果说我交易密码错误,3次还被锁住了,无奈,今天中午拿着卡和良民证去icbc办理。

然后大堂经理说你这个卡比较奇怪,从来没有设置过交易密码,于是就当场设置了交易密码。 你这个破系统难道不能当时就提醒一下我交易密码没有设置吗?

然后想手机转账提额,结果发现最多就单日20万,再提怎么办呢? 办理U盾,收费15元,那算了,我就一点钱,为了这个也不值当的。

我这个卡去年就到期了,也懒的续了,这次既然来了那就续一下吧。然后问我是否要保留卡号,我说保留怎么做,不保留做。

保留就手机银行里操作,结果发现所有卡的封面都要收费,便宜的10块,贵的20块,我说这个就没免费的吗?

免费? 要不你去柜台问问。 于是就排了个号。

阅读全文 »

《你想活出怎样的人生》 这本书是隔壁日本人写的,出版时间是1937年,大家想想1937年的日本应该是什么样子的。

可见这本书是出晚了,早出20年是不是就没有当年那些破事了。

主人公是一个叫本田润一的小学生和他舅舅之间的对话。

故事的开头是两人在东京的大楼往下看,路上的人熙熙攘攘,有很多人在看不见的地方生活着,人们就像大海中的水分子一样。因为他没从自己的角度的思考问题,所以被叫做“小哥白尼”。

其实很多东西刨根问底的话,那都会涉及到社会生产关系的方方面面。比如简单的一根木头铅笔,它来自于树木,负责砍树的工人,负责种树的工人,砍树工人用的斧子和电锯又是谁造的,运输树木的汽车,汽油这些。铅笔当中的铅芯又为什么是用石墨和粘土造的呢?石墨是怎么来的。

法拉第有本书叫《蜡烛的故事》,其实就是探讨这种方法和态度。

阅读全文 »

刚开始读《两晋悲歌》,现在还只是看了上,还有中和下。先记录一下。

两晋开端是曹魏,但是因为司马懿阴谋篡位,所以才有了西晋。

按作者说法,这种历史上通过阴谋篡位得来的皇位都不太稳,就算司马一家那么能生,好像所有核心岗位都是自己家的人,但是最终不也被很快反噬,最终因为八王之乱把整个中原全部掏空,开启了长达300年的五胡乱华和十六国时代。

从这点上来说司马家欠中国太多了。

为什么会有八王之乱,核心原因是传位制度不合理,导致当年只能那个傻子得到皇位,结果兄弟,叔叔,侄子这些人互相争斗,最终产生了八王之乱。这个bug在后面朝代就明显是修复了的。但是又产生了站队的问题。

第二个原因是你是政变起家的,结果底下人有样学样也搞起政变。而且青出于蓝胜于蓝了。

阅读全文 »

DoH互联网上能够查到的就是2017年 https://www.theregister.com/2017/12/14/protecting_dns_privacy/

然后到了2018年就出来rfc了,这个效率还是非常不错的。

https://datatracker.ietf.org/doc/html/rfc8484

那DoH是为了解决什么问题呢,就是因为dns协议是udp的,很容易被抓取。所以大家就想用https来作为dns查询的隧道,这样就可以有效避免被人恶意截取流量了。当然DoH的前提也是dns解析支持了subnet才可以的。

但是不是所有服务都是支持DoH的,所以最好还是自己本地起一个服务来运行这个。本地监听127.0.0.1:53端口,让本地所有服务都请求本地的dns服务,这个以前污染没有那么严重的情况下,我自己本地会起一个unbound,然后来做各种代理,不过现在污染太严重了,这种方式又各种问题了。

现在主要的方案就如下这3种:

阅读全文 »

上周球球他们班级迎来区领导视察,然后班主任还演示了一节课,演示完成后就随着校领导一起去交流了。

接着就是副班主任来上课了,但是因为第一节小朋友们都紧张,然后都累了,出操的时候据说排队什么都不整齐,结果副班主任生气了。 我觉得以上这些都没问题,老师也是正常人,也有生气的时候。但是下面的我觉得不大对。

一个是花了一整节课说纪律的事情,这个浪费的不是一个人的时间,是整个班级的时间,纪律的事情你完全可以课后单独说,实在影响课堂秩序的那就请那个小朋友出去就行。

另外一个是听说有小朋友要去校长那边举报他,然后他就把几个小朋友从不同班级叫出来,然后又训一顿,看来这个老师是喜欢训人,麻烦每次训人前先问问自己是否真的对,能否听听别人的说法。

有个小朋友家长说的特别好:“让想学习的学生没法学习,这是渣校的典型特征。”

至于其他说副班主任老师骂人,说孩子们是班主任老师的狗,这些你也不知道真假,那就很难评论了,回来问球球,球球说没有说过,但是有些家长说有这种事情,这点我们就从相信自己孩子的角度来看问题。

阅读全文 »

缘起

新东家只能新购的笔记本才能100%,本着不浪费的原则,那就买一个吧。那原先的小新14air plus 2022锐龙版就下岗了。

不过那个机器配置也不错的,6800HS,16G内存,镁光的512G 硬盘。想升级一下可以干点别的,不过最近ssd怎么价格涨那么多,去年618的时候2TB就500多,今年看的上普遍都要800多了,这摩尔定律在硬盘上看来不生效。能便宜了买一个,然后划1TB空间给xubuntu玩。现在家里的itx机器上的windows都1年没用过了,都在xubuntu下干活。

选机

本着跟手机一样,买旧不买新的原则,当然是刚降价的m3更有性价比。性能释放对于我来说一直问题不大,那就直接macbook air 13 24G 512G的顶配就行了,本来想选1TB的,但是狗东居然没有。要么就2TB版本,但是又不享受政府补贴,到手价8999,这个还是不错的。想当年15款macbook出来的时候就8G 256G的丐版都要9788元。

而那时候intel core M那残弱的性能跟现在的m3根本不能比。

阅读全文 »

上一个手机是iPhone se2, 我记得是在疫情开始后在家买的。查了下是在pdd上买的,花了3399元, 购买时间是2020年4月25日。

这年头操作系统都在跟微软靠拢了。iPhone se2那3G内存确实也不大够,128G空间也不大够,拍的照片,微信信息,网易云音乐的本地存储,小宇宙的本地存储都特别大,一直在来来回回的各种空间清理。

于是给自己立了个目标,换完工作后立马换。

刚好10月底,11月初各家都开始发布新手机了,什么小米15, 荣耀magic7, iqoo13,一加13这些,看了下基本都是cpu更新为骁龙8至尊版,看测试又是比原先提升多少多少,耗电量又降低多少多少。而且各家都跟说好的一样都是从4499开始的,内存最低都是12G了,也是原先我那3G的4倍,4年多时间,这个数值都已经4倍了,不过iPhone一直宣传自己内存控制的好。

而且我内心一直感觉联发科的芯片表面参数不错,但是调教的不好。不过这些新型号除了cpu加了,电池容量提升,屏幕提升了,其他地方好像并没有。

那就买旧的,刚好看到狗东上小米14 pro TI卫星通信(16G+1TB)版降价到4769元,那就果断买了。

阅读全文 »

今天下午上着班,突然班级家长群炸了,说三小门口有人砍人了,伤了3个小孩和2个大人,然后行凶者被制服了。这图就不放了,还是非常血腥的,会让人不适。

大家有没有感觉最近这种事情越来越多了呢?

2023年5月14日至15日,北京通州发生一起恶性伤人事件。人大附中通州校区16岁男生在两日内,先后杀害2名邻居,打伤母亲、同学及老师共4人。

https://new.qq.com/rain/a/20230518A00FCA00

2023年6月12日7时许,一男子驾车强行进入人大附中挟持学生

http://www.news.cn/2023-06/12/c_1129687278.htm

阅读全文 »
0%