MoreRSS

site iconXiaoZongLin | 肖宗林修改

网名:林林。学生,初二开始写博客,在维护(或曾经维护过)“开往-友链接力”和“中文博客列表导航”项目。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

XiaoZongLin | 肖宗林的 RSS 预览

博客访问体验量化评估方法的失败探索尝试

2026-01-26 23:32:12

1. 前言

在浏览博客的过程当中,有一些博客以其花里胡哨的设计掩盖其贫瘠的内容。今天在友情链接串门的时候发现博友发了一篇《老派博主的博客体验笔记》,将访问体验这个东西又搬到台面上讨论。文章评论区多是吐槽文中提及的这种花里胡哨的设计。若是吐槽,我没办法发出什么有新意的评论。如何建立一套量化评估博客访问体验的方法,给出一个能够代表博客访问体验的数值,这让我感兴趣。

本文预期达成以下目标:

  • 给出一个量化博客访问体验的公式
  • 给出公式中一些权重值的支撑实例
  • 建立一个测试博客访问体验的网站,给出得分和改进建议

你可以直接跳到本文的后言

2. 影响因素

网页设计的过程中应当有效管理视觉配色、规范设计排版样式和精简 Tab 标签信息等事项1。结合各位大佬发的文章(《谈谈不受欢迎的博客技术特征》《关于无后端 web 服务的优化方案和思路》《中文博客倡议》等),容我粗略总结博客访问体验的影响因素,也就是评估应该纳入考量的东西。

  • 访问所需时间(域名解析耗时、TTFB、FCP、LCP等)
  • 不必要的特效(鼠标移动、评论区打字时的特效)
  • 与博客功能没有关联的设计(华丽的背景大图、看板娘、弹窗、切换标签页改标题、悬浮音乐播放组件、广告过滤程序检测器)
  • 影响阅读的设计(难以阅读的艺术字体、颜色对比度、文字大小、无订阅源)
  • 烦人的限制(禁止复制、右键、F12)
  • 没什么内容的文章还弄 AI 摘要
  • 移动端的适配

访问所需时间以及与浏览器有关的指标基本都可以用代码来测。下面由我对影响因素进行逐一分析。

2.1 访问所需时间

为了探究访问所需时间的几个指标的影响,我对 100 个博客进行了测试,由于网络条件,我只测试成功了 36 个,拉了一张表出来。

序号 博客名称 URL 总耗时(s) TTFB(s) LCP(ms) DOM加载(ms)
1 TomyJan 的博客 https://blog.tomys.top 29.044 0.040 19951 2232
2 不淡定的实验室 https://xd.sh.cn 27.441 0.366 18673 2303
15 御坂の地下室 https://misakamoe.com 9.494 2.110 4320 4876
18 花开陌上 https://moshanghua.net 9.160 1.590 4050 4108
35 夏日鱼塘 https://www.summerpond.cn 6.176 0.089 1676 1550
36 MBRjun-Blog https://www.libmbr.com 5.879 0.044 1257 1313
表一 36 个博客的访问耗时、TTFB、LCP 和 DOM 加载耗时

上表中的第 1 个博客虽然测出来的总耗时较长,但是实际访问似乎在 1500ms 前就将主体内容(网站名称、简介、背景图片)加载出来了,后面不知道在加载什么东西。自动播放音乐 + 弹窗广告 + 切换标签页改标题 + 看板娘,后面可以用这个网站做测试(也是 buff 叠满了)。第 2 个网站也是,前 1500ms 就把文章列表这些内容加载好了,后面请求 gravatar 头像的时候拖了 14 秒……感觉是这些没用的资源把 LCP 抬高到原本不属于它的高度。虽然无语,但是这两个例子说明页面加载的总耗时没办法代表我们访问博客时的实际体验。TTFB 能稍微体现访问网站刚开始空白加载的时间,但代表性不大。DOM 加载时间的差别我访问时是感受不到的。

啊,感觉找的这几个指标都挺废的(虽然指标优秀的博客访问体验的确挺好)。于是,我问 Deepseek:

你知道有什么指标可以用来描述页面加载的流畅程度吗?有些网页 1500ms 前就把主体内容加载出来了,但是后面在加载一些无关紧要的东西,拉长了加载时间,LCP 也不低。

它向我推荐 Speed Index 和 TTI 这两个指标,「页面内容视觉填充的速度」和「页面完全可交互的时间」,感觉是我想要的指标。拿这两个指标再测一下,拉一个表。

排名 博客名称 URL Speed Index(ms) TTI(ms)
1 Foxhole https://blog.southfox.me 15903 10541
2 异国迷宫的十字路口 https://blog.fivezha.cn 14955 3264
3 ADD-SP‘s Blog https://www.addesp.com 14402 11609
56 杜老师说 https://dusays.com 2137 1519
57 夏日鱼塘 https://www.summerpond.cn 1731 1591
58 MBRjun-Blog https://www.libmbr.com 1429 1317
59 Declan’s Blog https://blog.haojin.li 1092 1092
表二 部分博客的 Speed Index 和 TTI

不得不说,这两个指标还真「有点东西」。Speed Index 高的博客相比于 Speed Index 低的博客页面加载感觉会慢一点。TTI 在一些 Speed Index 比较高的博客反而比较低,例如表一的第 1 个博客,Speed Index 为 13580ms,而 TTI 却为 2144ms,有一些资源加载很慢,但页面主体加载比较快,访客访问很快就可以与页面交互了。因此,TTI 比 Speed Index 更能够描述页面主体的加载速度。

故,我们可以粗略定义一个基于访问速度的因子:

Factor=100×2.52.5+ln(1+TTI1200+Speed Index1800+TTFB×1000350)\text{Factor} = 100 \times \frac{2.5}{2.5 + \ln\left(1 + \frac{\text{TTI}}{1200} + \frac{\text{Speed Index}}{1800} + \frac{\text{TTFB} \times 1000}{350}\right)}

我们可将 Factor 视作 TTI(ms)、Speed Index(ms) 和 TTFB(ms) 的函数,函数具有以下性质:

  • 单调递减:随着性能指标变差(TTI↑、SI↑、TTFB↑),因子↓
  • 值域:(0, 100],理论上不可能达到100,易于理解
  • 对数让 Factor 更贴近人眼的感受

我又双叒给这个 Factor 拉了一张表。

排名 博客名称 URL Factor
1 MBRjun-Blog https://www.libmbr.com 69.84
2 ncc 的个人网站 https://www.zqcnc.cn 69.49
3 杜老师说 https://dusays.com 67.77
4 夏日鱼塘 https://www.summerpond.cn 67.76
5 SkYe’s Blog https://www.mrskye.cn 64.98
23 F 君的博客 https://blog.fkun.tech 50.95
24 静静的小窝 https://wznmickey.com 49.95
25 HandSonic‘s Blog https://handsonic.top 47.67
26 提莫酱的博客 https://www.timochan.cn 46.75
27 人家故里 https://fx7.top 46.45
表三 Factor解析式方案一实测数据

原本还有另外一个解析式来增大不同博客 Factor 的区分度,但是测了一遍「属实」是太有区分度了,没用这个。既然做了,公式和数据贴在这里。

Factor=max(0,100(TTI50+Speed Index100+TTFB×200)0.7)\text{Factor} = \max\left(0, 100 – \left(\frac{\text{TTI}}{50} + \frac{\text{Speed Index}}{100} + \text{TTFB} \times 200\right)^{0.7}\right)
排名 博客名称 URL Factor
1 f2h2h1’s blog https://f2h2h1.github.io 89.97
2 飞刀博客 https://www.feidaoboke.com 86.93
3 爱吃肉的猫 https://meuicat.com 85.81
4 晓雨杂记 https://www.lihaoyu.cn 85.78
5 MBRjun-Blog https://www.libmbr.com 85.72
100 BOB’S BLOG https://www.itbob.cn 76.54
101 Revincx 的小破站 https://blog.revincx.icu 76.31
102 a.d博客 https://blog.aiheadn.cn/ 76.16
103 刘郎阁 https://vjo.cc 76.12
104 树洞笔记 https://www.x8xx.cn 76.05
105 无用笔记 https://www.xhily.com/ 76.00
251 希望的博客 https://www.xiwangly.com 56.69
252 空鸣深语 https://blog.deepchirp.com 56.56
253 陌子夕生活记 https://mozixi.com 56.28
254 异国迷宫的十字路口 https://blog.fivezha.cn 55.99
255 夜庭記 https://musenxi.com 55.95
304 F 君的博客 https://blog.fkun.tech 30.51
305 阿云的宝库 https://www.yunxge.cn 28.91
306 imba久期的博客 https://imba97.com 28.76
307 Sakitami 的集装箱 https://blog.skihome.xyz 19.38
308 海蓝岛 https://hailandao.com/ 9.80
表四 Factor解析式方案二实测数据

2.2 不必要的特效和设计

原本以为这一块的检测做起来会比较容易,没想到 Deepseek 给出的几版代码误报都很严重,比如误报禁止 F12,误报对比度不足,报告标题文字过大等等……(已晕厥)

程序在检测看板娘、弹窗的时候采用的方式有限,只是通过检测 live2d、waifu、kanban、看板娘、pio 等关键词来实现。

图一 检测结果

FactordesignFactor_{\text{design}}初始化为 100 分,然后按照不同类型的问题扣减不同的分数。

图二 分数生成代码

由两个因子组成总分数。

Scoretotal=Factorperf×Factordesign100Score_{\text{total}} = \frac{Factor_{\text{perf}} \times Factor_{\text{design}}}{100}

3. 搭建测试网站

使用 Flask 弄了一个小网站,可以输入一个博客,会给出博客的分数。然后我拿我自己的博客进去测了一下:不合格。(事已至此,已成艺术)

图三 拿我自己的博客进去测试一下

4. 后言

对比前言提出的预期目标,本文既没能给出一个令人信服的公式,也没能搭建一个可以对访问体验进行测量的框架。本文所做实验是相当失败的。

本文没能正确评估这项工程的复杂性。打开一个网页给人的主观感受不是一两个指标所能反应的,总有博客与实验预期格格不入。探测悬浮组件、鼠标特效也缺乏有效的方案。指标只能反映出过程的某个侧面。我在对比数据的过程中,有时感觉不到数值差异巨大的博客给我感受上的差别。

若有人能够对博客的访问速度、内容质量、页面设计进行量化,并用作对博客进行筛选的指标,那量化的东西就不再是好的了。“当一项指标成为目标时,它就不再是一个好指标了。”古德哈特就像这些指标的诅咒。我失败了,就没脸说量化这个东西是个徒劳。愿意尝试这个东西的人也不会把这篇文章当回事。模拟不出来是我菜,不是不行。

本文的用处可能远没有谈论博客体验的博文用处大。

抱歉,各位读者。

附录与参考文献

Xiaozonglin/webpage-visit-feeling-score: 博客访问体验量化评估方法的失败探索尝试

  1. 孙聪妮.视觉元素在网页设计中的应用与研究[J].卫星电视与宽带多媒体,2019,(19):56-57 ↩

博客访问体验量化评估方法的失败探索尝试最先出现在林林杂语

整活:基于对等原则的流量交换系统

2026-01-16 17:18:10

起因是我在“开往-友链接力”项目审核的时候,偶尔遇到一些博客站长非常在意自己的流量,在审核通过之前不把链接挂上去,觉得提前挂是开往占了便宜。被恶心到了,于是我想着做一套基于对等原则的流量交换系统(也就是一个链接跳转),这样链接双方给彼此的流量就是接近的,谁也不占谁的便宜。

这个系统的功能非常简单,只需要给一个跳转的路由传从哪里来和到哪里去,加一些判断逻辑就可以了。下午四处查文档花了一点时间。

系统具有以下特性:

  • 静默跳转:跳转时没有提示页面,非常丝滑
  • 非对等阻拦:当流量不对等时对跳转进行阻拦,将访客送回原地址,决不让另一方占任何便宜,做到真正的对等

流量在交换的过程中可以有20%的透支,也就是一个方向的流量大于另一个方向流量的1.2倍才会阻拦,避免频繁出现阻拦的情况,优化访客体验。

代码实现得比较简单,计数机制没有区分是不是同一个访客,没有针对访客滥用刷次数建立防护机制。

跳转过程非常丝滑,访客感受不到有中间页面
当流量出现不对等时,中间页面会将访客送回原页面

“开往-友链接力”项目本来就是一个流量交换项目。且不论流量对不想靠博客赚钱的博主有什么意义,如果吝惜自己那可怜的流量又想要别人链接给自己流量,这跟贫穷的守财奴有什么区别?

项目地址:Xiaozonglin/swap-system-based-on-equality-principle: 基于对等原则的流量交换系统

整活:基于对等原则的流量交换系统最先出现在林林杂语

生日(贰)

2025-12-26 00:18:16

但在此时此刻,你的出生是值得被庆祝的。

在之前的 《生日》一文中我写到过这样一句话。

一年中平平凡凡的日子那么多,可“生日”对每个人来说似乎都是特别的。记住别人的生日,常被视为拉近关系的一种方式——可我连父母的生日都记不牢。有一个例外:我清晰地记得“他”的生日,就在我生日的后一天,也就是第一个月的第五天。

如今我与他,大概已是“形同陌路的朋友”。为他写一篇文章很难,也写不真实。我曾为高中班里一位同学写过博客,那好歹是两年间的见闻与经历拼凑而成;而对他,我手头只有一部分残缺的聊天记录,以及他在社交频道里的零碎推文。我看的动画不多,但听说“朋友”是个很重要的概念。朋友究竟是什么呢?我曾把他当朋友吗?他又是否曾把我当朋友?

我已不记得我们是如何相识的了。翻看他博客里的截图,才确定是三年前的一月。我们在微信上热聊了好几个夜晚,交流福建与山西的习俗,我吐槽这里一下雨就能下一个月,问他那里下雪吗,考他为什么福建沿海降雨反而不如内陆多……对当时的我而言,北方的一切都新鲜而遥远;他也耐心地与我聊着,无话不谈。他喜欢打“舞萌”,那大约是一种音游。他曾喜欢过“散兵”——而散兵的生日,恰巧是第一个月的第三天。

他有一位很优秀的女朋友,据说从小学习信息学竞赛。

我和他曾互相写过一次信。我寄给他一张与他女朋友相关的厦门大学明信片,那是特地从出租屋抽屉里翻出,塞进书包的。今年三月,他从太原回寄了一封,信里提到他们高二做果酒果醋的实验,也向我流露他对成绩的焦虑。那时我已无法在周末去邮局寄信,便用活页纸写了回信,拍照发他。“转到文科已经不现实,焦虑没用,重要的是行动,行动啊!”我这样写道。他或许是听进去了。

那封信里,他还问我关于双相情感障碍的看法。今年二月时,他曾突然问我:“抗抑郁药推荐药店还是就诊医院买?”我一时错愕。“真的要到吃药的地步吗?”我问他能不能尝试心理咨询,他说不行;能不能请假调整,也不行。我便不知再说什么——他仿佛被困在一扇门里,没有钥匙。

“你看搞笑吗?一对恋人,男的是边缘型人格障碍,女的是双相情感障碍。”后来,他在群聊里发出一长串聊天记录,里面全是他与她、他与她父母、她与她父母之间错综复杂的对话。我默默看着,望而生畏。

他在频道里发诊断报告,发朋友圈,还有那只带着划痕的手。

大概我们之间已无话可聊。他开始对我已读不回。“感觉你最近经历了很多混乱的事。希望你能找到自己的‘轨迹’,或者至少收获一份稳定平和的心情。”他没回。“新头像是自己画的吗?”他没回。“如果物理或生物有问题,随时可以问我,我这阵子都在的。”他依然没回。

高考后的暑假,我曾写信给另一位笔友倾诉:“他们不会抛弃我了吧?我向两位即将升入高三的网友表明了答疑的意愿,他们从此再不回复……”那时我不理解。笔友却宽慰我:“他们可能不想在网友面前谈学习,又不好直接拒绝,只好暂时搁置你的提议。”

今年九月,我又提笔给他写了一封信,回忆之前热聊的夜晚,也表达对他已读不回的嗔怨。信从西安飞往南京,再转至太原。“信收到了吗?”“看到了。”回答依然寥寥。

至于他生活的全貌,他从未向我展开太多。近来,他又开始在朋友圈发“舞萌”的截图。我看到他与高中朋友、老师的合影——不知何时,他好像已从门里走了出来。

圣诞节,圣诞老人会把礼物悄悄放进孩子的袜子里。多美的故事。生日,生日——诞生之日。

我依然记得他的生日,在第一个月的第五天。虽然我们已走散在各自的生活里,但那个曾经无话不说的冬天,那些交换过的气候与习俗、明信片与信纸,依旧在记忆中落着细雪。也许某些人出现,就是为了陪你走一段路,看一段风景;路尽之时,不必追,也不必忘。只要记得,我们曾真诚地相遇过——而你的诞生,至少在某个平凡的夜晚,曾被另一颗心郑重地庆祝过。

我们见过。我,记得你生日。

生日(贰)最先出现在林林杂语

2025年终总结

2025-12-12 23:11:51

来北方上学的一项期待就是看雪,西安的雪泡汤了几次,今天终于把雪下下来了。雪很细,原本以为雪是白的,像冰淇淋一样,结果雪落到衣服上是小冰晶。

又来到每年本博客的固定节目:年终总结。

时间会冲淡很多事情。几个月前我遇到了我愧对的那个人,当我向他为了三年前的事情道歉时,「这有什么大不了的,都过去了」。啊,原来他并没有像我这样对我之前的无耻行径耿耿于怀。

今年的春节是最短的春节,今年的暑假是最长的暑假。在这之间,是我的高三。那里有到现在还保持联系的很好的同学,很好的老师,还有难评的学校。在那,我几次想「要不结束生命吧」,后面又坚持了下来。福建好像是这样的:我们老师跟我们说「奇怪,感觉不单单是你们没卷,其他学校也还在摆」。我们班主任非常贴心,并没有把我们的体育课砍掉。在看物理或者英语题目糟心的时候,就把作业放到一边,自己或者跟一个同学绕着操场走圈,边走边聊一点内容:比如彦卿能怎么配队,匹诺康尼新剧情是什么样的,每个属性都有什么角色等等。

暑假买了一个国际版的《我的世界》,但因为太菜了没玩下去。考了一个驾照,学了学Python Flask(至今仍然是我唯一会的技术栈),做了一段兼职,领到了自己的第一份工资。来大学是我第一次坐飞机,头一回来到九千米的高空,头一回出福建省。

上了大学之后,生活类文章的数量肉眼可见地变少了,有的也只是我在频道的只言片语。抖音占据了我的空闲时间,让我没有空闲时间用来思考没用的东西。我曾经想着写一个对话体的文章,但刚开头就没坚持下去。技术类文章也很少,毕竟也没有什么时间在研究技术,文章草稿箱里还有一篇SQL注入的半成品躺着。

到了大学,抽到了银狼,选了彦卿,不知道什么时候就淡游崩铁,回坑原神了,连着把须弥、枫丹、纳塔和诺德卡莱目前出的剧情过了一遍,又没有什么好玩的了。玩《都市天际线2》,游戏大体不错,但刁民很多,设计鸡肋,在有一个存档达成所有进度之后就很久没再玩了。「赛博阳痿」,是这么说的吗?

参加了院辩论队的面试,一面跟学长聊辩题,二面打一场比赛。参加了宏辞新生赛的其中一场。参加了辩论队的一次团建,一起玩狼人杀,这是到了大学唯二跟别的同学一起笑。

参加了院团委和两社团的联合招新,加入了赛博阳光志愿者队。参加了几个志愿服务活动,帮院团委完成一些任务。

参加了信安协会的两轮招新,给协会的周报系统提交了一两次代码(不是自己写的)。

看了《疯狂动物城2》和《罗小黑战记》两部电影。

2025年终总结最先出现在林林杂语

针对博客网站友链的随机网络研究

2025-11-08 22:34:20

关键词:博客友链网络;随机网络;小世界现象;数据爬取

一、前言

“六度分离”理论已在社交网络、互联网等领域被研究1。博客网站作为Web2.0的代表,其形成的友链网络是否可视为随机网络?小世界现象在博客网络中是否存在?这是本文想要研究的问题。

笔者依照浏览博客的经历做出假设:博客友链在一定程度上参杂了博主的个人喜好,可能在一定程度上表现出规律性,更偏向于小世界网络,无法视为随机网络,小世界现象在博客网络中存在。

本文期望对较大体量的博客网络进行研究,明晰以下问题:访客从一个博客到另一个博客平均需要经过多少个博客?每个博客平均有多少个友链?

博客是一种杂志形式的私人网络日记。博客软件自动将新条目(帖子)放在网页的顶端,每过一定的时间,或每当帖子太多不便于翻阅时,博客软件就会把旧条目放进博客档案。2友链,即友情链接,指两个网站之间架起一座桥梁,实现流量的互通。3友情链接在门户、电商网站常被用作搜索引擎优化的一种手法,也被学界认为是引入流量、提高权重的工具。但笔者认为,在博客中,友情链接在搜索引擎优化方面的作用减弱,交流、互访等社交方面的作用得到增强。“从20年前建站伊始,我的友情链接页面就不是以SEO或其他什么乱七八糟的目的而存在。”4笔者通过丑搜(一款中文博客搜索引擎)以“友情链接”为关键词搜索博客网站的友链页面,绝大部分博客5没有在友情链接页面要求网站权重。博客友链具有相互性(友链应当是两个博客之间的互链),为研究方便起见,笔者将友链规定为博客在首页和友链页面对其他博客的外链,无论其是单向的还是双向的。

爬取博客网站首先需要获取一个数据量比较大的博客列表,笔者查阅了一位博主自发收集的博客列表[4],并对列表的数据量进行统计,结果如表 1。

名称 数据量
BlogFinder 1699个博客6
BlogWe 282个博客7
Blogroll Network Map 约7900个博客8
BlogsClub 368个博客9
十年之约 1818个博客10
集博栈 4115个博客11
表1 部分博客列表的数据信息

二、研究过程

按照博客列表收录数据的体量,笔者使用了Blogroll Network Map、BlogFinder、十年之约和集博栈的数据。对上述几个博客列表的数据进行爬取,将去重后的数据中的博客名称和博客地址存入数据库,如图1。

接着对博客网站的首页和友链页面进行爬取。在此过程中,程序通过两条途径得到友链页面的URI:在首页搜索是否有链接文本包含“友情链接”等字样的链接;尝试一些常见的友链页面的URI是否存在。

若博客有链接到另一个博客的外链,则将其视为友链,将这个关系存储到数据库;若博客的外链地址不在此前存储的博客数据库中,则将链接地址存入外链数据库,方便后续步骤发现此前没有发现的博客。

在爬取博客首页和友链页面的程序运行之后,数据库中存储的外链数量快速增长。在程序进行到一半时,数据库中存储的外链已经达到了4485条(过程中已经按照外链的域名进行去重)。这已经超过了笔者能够人工处理的范围。

笔者将外链的网页标题、描述、URL、关键词、订阅链接、文章链接数量、导航结构等信息交给AI,由AI判定外链是否为博客。

但这种方法伴随着大量的token消耗。在判断出40余个博客网站后,腾讯混元赠送的100万个token就耗尽了。面对这一问题,设置了博客网站的一些特征,例如“文章”“评论”等,程序将对外链的特征进行评分,判断外链是否为博客网站。

为了缩短程序运行的时间,程序采用多线程运行。

在程序完成博客网站的判断之后,笔者对数据库存储的博客网站进行人工抽检,如图4。人工抽检的355个网站中,有48个不是博客网站,其中大部分为域名过期。

通过程序可以绘制出博客之间的平均距离图像。

三、研究结果

由上图,我们可以看到:

  • 博客友链网络中绝大多数博客对的最短距离集中在4-6之间,小世界现象在博客友链中存在。
  • 几乎所有博客对的最短距离不超过6。
  • 最短距离的标准差较小,博客之间距离的分布波动性较弱。
  • 网络的聚类度较低,博客的友链不集中,友链“抱团”现象不明显。

由图7的度分布图可知,小度节点(博客)数量极多,大度节点数量稀少,满足幂律分布,与随机网络满足的泊松分布不同。故,博客友链网络不是随机网络。

本文的缺陷

在本篇文章发布之后,一些博主对本文展开比较激烈的讨论。我认为有必要针对本文的缺陷和漏洞进行说明,供读者批评,后来者改进。

在我将此文作为课程论文提交之后,老师指出了一些问题:

  • 个人感觉论文的第二部分(研究过程)存在瑕疵。友链的发现所采用的两种方式,似乎本身就将结论导向了你的假设,且并未对占比等数据有效性进行检查(如,是否漏掉了大量不在常见URI列表中的友链)。
  • 对博客友链的介绍不足(也可能就是现实,我并不了解;或者是你专门藏起来准备作为结论的?),博客友链设定是否有什么规则或传统?

我不得不承认,本文通过友链发现博客的方式本身就有把结论导向假设的倾向,因为本文几乎排除了没有友链也鲜为人知的博客(孤岛)。本文探讨的友链网络也就不能代表全体博客。

此外,本文在数据清洗方面做得还不够。当时从早上生成代码,下午爬取友链直到晚上,后面只是随机抽取了两百多个博客进行检查。如您所见,本文提供的数据后面有不少需要剔除的站点,本文也没有成功抓取 Blogroll Network Map 的数据,这导致本文的样本量较少,代表性较弱。

附录与参考文献

本文的代码和原始数据均公开于GitHub仓库https://github.com/Xiaozonglin/blog-friendlink-network-research
供复现和检验。

  1. 庞景安.Web 小世界特征的网络计量学研究[J].情报科学,2007 (08):1171-1175. ↩
  2. J.奎根,张斌. 博客、维基和创造性革新[J]. 国外社会科学,2008,(03):98-104. ↩
  3. 张潮. 如何做好友情链接交换[J]. 计算机与网络,2016,42(23):42-43. ↩
  4. eallion’s Blog. 友情链接. https://www.eallion.com/links/ ↩
  5. 笔者按搜索结果的顺序查看了15个友链页面,仅有的提及权重的网站也只是借权重排除恶意友链https://geektutu.com/post/blog-experience-5.html ↩
  6. 数据来自其应用程序接口 https://bf.zzxworld.com/api/sites.数于2025年11月8日收集 ↩
  7. 数据来自其收录页面 https://blogwe.com/allblogs.html. 数据于2025年11月8日收集 ↩
  8. 数据来自首页 https://alexsci.com/rss-blogroll-network/显示其收了7952个订阅地址. 假设一个订阅地址对应一个博客可粗略估计收录了7900个博客.数据于2025年11月8日收集 ↩
  9. 数据来自其收录页面https://www.blogsclub.org/members.html. 数据于2025年11月8日收集 ↩
  10. 数据来自首页https://www.foreverblog.cn/底部的履约数据.数据于2025年11月8日收集 ↩
  11. 数据来自首页https://www.zhblogs.net/底部的收录博客数量.数据于2025年11月8日收集 ↩

针对博客网站友链的随机网络研究最先出现在林林杂语

使用 Acrylic 复现百团大战 WiFi 钓鱼攻击:关于 Klutton 学长记录的补充

2025-10-07 22:58:21

起因

参见:Klutton《使用 Hostapd + dnsmasq + flask web 服务器的 WiFi 钓鱼攻击研究》

故事还要从上个月的百团大战说起,当时我看到信安协会的 Klutton 学长正对着大屏幕敲命令,我就在旁边驻足凑热闹,得知他们正在搭建钓鱼 WiFi。这个钓鱼 WiFi 的技术方案大致是用Hostapd创建热点,用 dnsmasq 实现 DNS 劫持,用 Python Flask 来 mock 学校校园网的登陆页面。

当时钓鱼 WiFi 的 SSID 被精心设置成 stu-xdwlan,登陆页面的域名也被设置为 w.xidian.edu.cn。要不是我在现场看他们配置,不然根本分辨不出来,在场地的大屏幕上我看到有挺多人上当。

因为此前略微用过 Python Flask,也粗略懂一点点(根本不懂)网页开发,所以我跟 Klutton 学长提出负责完善展示页面(其实只是显示一个 UA)。学长欣然同意了,我被拉进了代码仓库,得到了学长 mock 的校园网登陆页面。

国庆使用 Windows Acrylic 成功复现百团大战 WiFi 钓鱼攻击后,学长邀请我写一篇。(其实我这篇没什么技术含量,只作本次尝试的记录)

照抄作业

国庆之前,我就想照抄学长的作业,跟着学长的方案复现一遍。我在 Deepseek 的指导下安装了 VisualBox,安装了 Kali Linux,配置了 Hostapd 和 dnsmasq。最后在如何发射网络这个问题上犯了难。

在某宝上买了一个网卡,发现不能用,退了。又买了一个网卡,发现还是不能用,懒得退。

我的笔记本自带“移动热点”功能,但 VisualBox 配置虚拟机的时候没有网络桥接选项,让虚拟机里的 Hostapd 用上我笔记本的热点功能对我这种小菜鸡来说基本无法实现。

故,Linux 这条路是走不通了。

另寻出路

Linux 这条路给了我很大的折磨,我跟 Deepseek 说:

有没有什么在windows上就可以实现的dhcp、dns和wifi热点的程序,我不太想配置虚拟环境了

它向我推荐了 mHotspot 和 Acrylic DNS Proxy。我便用这两款软件进行尝试。mHotspot 我不知道哪里出问题了,可能是程序太老了,在我的电脑上跑不起来。

我最终用 Acrylic DNS Proxy 取得了成功。虽然过程中有一点点小波折,但这里不赘述。

如果需要用 Windows 笔记本自带的热点功能的话,需要先将热点开起来,修改热点的网络适配器设置,如图:

192.168.137.1为移动热点默认的网关IP

然后在 Acrylic 的 hosts 文件中添加这样一条,将所有的域名都解析到自己的电脑,如图:

最后,运行 Python Flask 代码,就可以了。

更进一步

关于 Acrylic 的尝试并不是一次就成功的,也是失败到让我怀疑人生。就在我怀疑人生的时候,我突然想到:能不能把热点这个身份“外包”出去呢?买一个路由器,让电脑通过网线连接路由器,并在路由器设置中将 DNS 服务器指向电脑,从而一劳永逸地解决网络发射问题,还可以增强网络的发射功率,使其更好与校园网的正版 WiFi 竞争。某宝物流显示路由器明天到货,到货了会用路由器再做一次尝试。

在上面的步骤中,我让所有的域名都解析到我的电脑上,我是否可以构造一个透明代理实现流量的中间人攻击?我向 Deepseek 分享了这个想法,它向我推荐了 mitmproxy。貌似代理加密流量需要安装并信任根证书。这个东西有待日后尝试。

是否可以对仍然支持 SSL 3.0 协议的网站进行 https 降级攻击?是否可以对不支持 HSTS 的网站进行中间人攻击?有待日后尝试。

文毕。

使用 Acrylic 复现百团大战 WiFi 钓鱼攻击:关于 Klutton 学长记录的补充最先出现在林林杂语