MoreRSS

site iconmikusa | 初之音修改

生物专业。在粤打工。博客主要内容是开箱 / 推荐 / 动画评鉴 / 教程。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

mikusa | 初之音的 RSS 预览

敬,不美好的明天

2026-01-26 06:00:00

我真是懒到一定地步了,本来想着年末最后一天写完的总结,竟然拖到了今天!让我看看今儿是几号了……唔,看不太清。总之,这篇文章什么时候发布,那就是什么时候写完的!(:з」∠)

下面开始正文!

先来点开场白

好久没写所谓的「年终总结」了,因为总觉得现在的我并没有什么值得拿出来「总结」一番的东西。每当启动 Typora、新建好 总结.md,准备在键盘上敲点什么的时候,就只会想起自己日渐隆起的啤酒肚、爬满额头的皱纹,以及不得不向年龄屈服的身体。再回过神来,原本打算记录的灵感火花,转瞬就变成了「工作依旧一事无成,学习仍然毫无建树」这句我连着用了好几年的废话,在文档上闪烁着光标。

唉,去他妈的。不就是没什么本事嘛,只要接受了自己的无能,那我就是无敌的!

姑且来看看博客近一年的成果吧。

再看博客近况

今年的博文,内容涵盖滥竽充数的服务器运维、含水量极高的日常记录,以及没有人看的新番点评。

由于几近提笔忘字,为了锻炼不曾有过的写作能力,今年我尝试记录了不少追番报告,但最终看来收效甚微。在反复的字句斟酌中,我的文字水平几乎没有任何提升,我仍旧不擅长这类文章。更糟糕的是,我还变得极度依赖起 AI 来。每写一段,就复制给 AI 检查。

  • 帮我看看有没有语病
  • 帮我查查看有没有逻辑问题
  • 怎么继续往下写,给点 idea
  • 你踏喵不要添油加醋啊 kora!
  • ……

不只是议论文,就连记录、技术相关的文章,甚至是日常水文,我也全部一股脑发送给 AI 勘误。就这样一来一回,我完成了今年的 17 篇文章。

虽然 AI 给的建议都很中肯,但修改之后,多少还是感觉有些丧失了属于自己的语言风格,即便那些句子确实有毛病……来年的话,要尽量多看几部文学作品,多刷一些鱼太的视频,以期在文字方面精进一点。

而落实到数据上,来看看今年的 Umami 报表。今年博客累计收获了 174K 的访客,带来 212K 的访问次数以及 331K 的浏览量。由于 2023 年没写总结,2024 年的 Umami 数据因为我瞎折腾把数据库炸了……所以,本年度访客和访问量,均较 2022 年有所增长。即便跳出率增加了 3%,但平均访问时长也增加了 5 秒,可喜可贺!

这倒也理所应当,因为这些成绩并不是今年的新文章造就的,而是去年、前年、乃至更早些时候的文章带来的访问量。

可见今年的内容,受欢迎程度甚至不及 3 年前。

必须承认,以前写的文章在现在看来也很有趣。我可真是个小天才!但身为作者,还是有点无法接受这一现实的。今年的水文怎么可能一点作用都没有!于是,我又非常不服输地让 AI 根据我的发文量和访问量绘制了张毫无相关性的图片,企图在两者之间找到一丝关联性。

AI真是太好用了
AI真是太好用了

图表出来,答案就非常明显了:博客访问量根本不受现在的我控制。

我更新,或者不更新

访问量就在那里

不增不减

这是不是意味着,即便未来我不再更新,也可以获得稳定的访问量?这就开始咕咕!

好吧,这个结果我其实也预见到了。早在我找到除「刷机」之外新的流量密码后,我就意识到,只要我继续讨论与「NAS」有关的话题,博客就能稳定地收获源源不断的点赞和访客。可现实情况是,我的 NAS 运行稳定,相关的需求已然饱和,我的空闲时间更不足以支撑我继续钻研有趣的工具……

所以,今年在 NAS 方面的文章,就较前两年少了很多。

但今年也久违地刷了次机。虽然只是参考我曾经的教程,可至少重温了刷机的乐趣,继而憋出另一篇《备用机的养成方法》来。也算是勉强用上了流量密码?

甚至选头图的时候看上了 Google Pixel 9,可后来连备用机都吃灰了,这个想法也便作罢。

再来看看谷歌这边。根据谷歌统计的数据显示,今年获得了约 130K 的新用户,约 230K 的浏览次数,与去年相比都呈下降趋势。但临近年末有一撮特别明显的高峰,不晓得是从哪儿来的。

而从 Search Console 的搜索曝光度来看,今年的点击量走势不错。也可以进一步确定,即便今年我没怎么更新,过往文章的质量还是获得了广大网友的肯定。

突然有点飘飘然起来是怎么回事,嘿嘿,嘿嘿嘿……

说罢博客,姑且来看看今年我都做了些啥。

我今年在干嘛

杭州三日游

2025年,在春光乍泄的二月初,为了去未曾谋面的网友家中蹭饭,我来到了杭州。我在下午两点左右到达杭州站,艰难地找到朋友、将行囊放在他的住处后,便直奔计划中的第一站:良渚古城遗址公园。我们原打算用相机记录公园的早春,但由于错估了时间,抵达时已临近闭馆(闭馆六点,但五点半就关门了),禁止入内;天公也不太作美,厚重的云层遮蔽了天空,透不出一丝阳光。我们只好顶着冷风在公园门前闲逛,拍了几张照片,就回去吃饭了。

不要问我为什么喜欢拍树杈,我也不知道,你权当那时的我脑壳有坑。

吃过晚饭,我和朋友商议,明天可千万不能像今天这样空手而归,一定要有所准备。简单讨论之后,决定第二天去动物园拍猴子和长颈鹿,并购入了门票。然后,我们碰上了单双号限行…… 这算是身为十八线小村民缺少的知识,极少进城的我并没有预料到会因为这个被警察蜀黍拦下。好在还有个备用方案。

我有着奇怪的执念,来到一座城市,一定要去这座城市的博物馆看看。最后在我的强烈建议下,我们改道去了最近的浙江省博之江馆区。之江馆可能没有主馆那么有名气,可胜在节假日期间免预约参观,展出的藏品也并非等闲之辈。虽然记不太清当时的心情,但就拍下的照片数量来看,也是度过了一段不错的时光。

之江馆边的图书馆
之江馆边的图书馆

第三天,我发誓再不能像前两天那样莽撞了,既然是旅行,那么基本的规划的还是要有的。于是,我把这次旅程的终点定在了西湖。作为杭州的名片之一,西湖的风景向来声名远扬,三潭映月、断桥残雪、苏堤春晓……既然难得来一次杭州,总归要亲眼见识一番。

我们从住所乘坐地铁直达西湖景区,刚出地铁站时还没什么人影,直到隐约望见湖面,才注意到湖畔早已围满了乌泱泱的人群。我顿时无端联想起「烂怂大雁塔」来——或许对本地市民而言早已司空见惯,但外地游客眼中却依旧新鲜得不行的景点,大多都是这副模样。

今天的天气要比前两天好上许多,万里无云,气温也恰到好处。我们扎进人群里,顺着湖岸慢慢走着,一边欣赏沿途的风景,一边随手拍照。清晨的春风拂过湖面,带着些许水汽,湖水在阳光下泛起细碎的光斑,几对鸳鸯正悠闲地戏水;对岸的山峰层层叠叠、远近错落,被薄薄的春雾勾勒出轮廓。看到这样的景象,我们便停下来多按了几次快门。就这样走走停停,拍拍看看,不知不觉间过去了大半天。

我们绕着西湖走了一圈,基本上把能免费逛的景点都走完了。本想着离开前上雷峰塔眺望一下全景,可人实在太多,只是站在远处看了一眼,便作罢了。

苏州漫步走

俗话说「上有天堂,下有苏杭」。于是在国庆前夕,我去了趟苏州。

原本我是打算去上海市区逛逛的,但一时间又想不出上海究竟有什么非去不可的地方。朋友提议,不如干脆去隔壁的苏州看看。我盘算了一下行程:从住处坐地铁到上海西站大约五十分钟,再从上海西站搭动车到苏州站,只要半小时。算下来花费的时间和去一趟上海市区其实也差不了多少——既然如此,似乎也没有不去一次苏州的理由了。

可这算是场说走就走的旅行,我几乎没有作任何规划,毕竟本来就只是想逃离工位、出门喘口气而已。于是,在十一点抵达苏州站的那一刻,我毫不意外地陷入了「我是谁,我在哪,我要做什么」的窘境。可也不能一直在站台上干愣着,踟蹰片刻,便赶忙跟着人流往外走。我是个实打实的路痴,属于跟着导航坐公交都能坐反的那种,当务之急还是先离开火车站,钻进地铁里再说。

许是国庆调休的缘故,苏州站的地铁里竟没什么乘客。难得能这样不慌不忙地坐着地铁,我掏出手机,向场外观众求助。不少当地群友纷纷献计:苏博、拙政园、观前街、平江路、金地广场、金鸡湖……苏博的门票预约已经排到了国庆,没戏;拙政园倒是不限人次,可以进去转转;观前街和平江路二选一的话,群友们一致推荐后者,据说那是条古色古香的老街,兴许能见识到不一样的韵味;金地广场有不少二次元谷子,我对这种周边没什么兴趣,但倒也能去凑凑二次元的热闹;至于金鸡湖,最适合的便是傍晚时分去看一场初秋的日落。

但还没等我进一步规划,肚子开始表态了,定是赶车起得太早的缘故。这下不用纠结了,先从苏博出发,穿过平江路的古巷,去群友力荐的凤游记面馆来一碗地道的苏式面供奉一下五脏庙,再折回来逛拙政园。

苏博门口除了聚集着来自五湖四海的游客,还有不少兜售不知名小白花环的大爷大妈。我对这花很是好奇,本想凑到跟前看个仔细,愣是没有一个人冲我叫卖。我只好悻悻地继续朝平江路走去。

在经历走错方向来回折返、被路人当成本地人问路后,我终于在十二点前找到了平江路北路口。身为南方人,对教科书上的「江南水乡」多少还是有些刻板印象的:白墙黑瓦、临水而居、垂柳拂岸,这些元素拼凑出人们心目中的江南。可即便是保护得再到位的古街,也很难完全抹去现代生活留下的痕迹。平江路同样如此。但仅仅只是江南的一角,也足够游客打卡留念了。街上随处可见穿各色汉服、旗袍的姑娘倚靠在护栏上拍照,我也是直到这时才懂得群友提到的「古风妹妹」是什么意思。

边走边拍、花了半个小时穿过平江路后,我找到了凤游记面馆,点了一份群友推荐的「焖肉面」套餐,滋溜下肚。又稍微歇息了片刻,便折返回去逛拙政园。

稍微点评下这面。饭前小吃是芋头丸子和一小盏茶,偏甜;面分量很足,但焖肉略油。整体不赖,苏沪一代似乎喜爱甜食,我大概是吃不惯……

返程是不怕迷路了。找到最近的地铁站,再看准「拙政园苏博」方向,一站便到。苏博光是围墙设计就让人眼前一亮,虽是立体的屋檐,黑白纵深却好似平面画。可惜没有提前预约,没法进去游览一番。

拙政园在苏博的另一头,成人门票80元。我对园林设计几乎没有概念,也说不出什么门道,但多少还是能从这些空间的具体用途里一窥园主的用意:赏景。无论是四面厅堂、跨溪廊桥,还是假山、荷花池,都是为了引导人的视线,或将目光送向远处的风景,或让亭台建筑本身成为取景框,通过窗户或门框切割画面,只留下其中最耐看的一处。

From未来的me:你懂个屁的园林,明明是看不懂找个地方蹲着刷了会视频才后知后觉的!

在园里又迷了会儿路,大致逛完已经快四点了,接下来该去见识下二次元了。

花了半个小时乘4号线坐到南门,又用了几分钟走到金地广场。我围着广场外边绕了好几圈,一度怀疑自己是不是来错地方了,毕竟我连个通往二次元的大门都没找着。可迎面走来的几个玩 Cosplay 的年轻人,又明示着这里的确有二次元在活动。兴许跟着他们就能找到入口,我急忙尾随了上去。

果不其然。在找到商场正门后,没几步便看到了各式各样的二次元潮玩店、谷子商铺。商场并不是很热闹,但现在应该是放学时间,随便走走就能看到围在墙角打 UNO、玩累了写两道题的学生。真青春啊,想想自己小时候只能玩泥巴,现在的孩子已经能玩 Cosplay 消磨时间了。不过我对吧唧、立牌这类周边兴趣不大,粗略看了看便离去了。

金鸡湖可以乘地铁直达,出站后朝着苏州文化艺术中心的方向走即可。只是等我走出地表,太阳已临近落山。大概是赶不上看日落了。我爬上地铁头上的小坡,坐在石阶上,望着远方泛黄的天空发了会儿呆。

月光码头就在艺术中心边上,但我已经走了大半天,再绕着金鸡湖徒步一圈是万万不可能了,逛逛月光码头便是我今天的极限。可在码头里又迷了路,我只好在湖岸找了块地吹晚风。湖水拍打着岸边,夹杂着一旁车水马龙的声音,甚是喧嚣。可我却觉得,若不是第二天还要赶回去上班,我可以就这么一直坐着,直到这座城市慢慢安静下来。

等到约好的朋友赶来面基,向他抱怨了工作上的烦心事、吃好饭,跟着他往大裤衩底下的商店逛了逛,便回去了。

国庆两开花

2025年,我去看了人生中的第一场交响音乐会,主题是我非常喜欢的动画《摇曳露营△》。早在看《四月是你的谎言》时,我就希望朝一日能去听一场主题音乐会,却始终没能如愿。如今有机会前往《摇曳露营△》十周年的首场海外交响音乐会,自然不想错过。

我第一时间联系了计划国庆来上海旅游的同学。我告诉他,这次音乐会,キミのね和亚咲花都会亲临舞台献声,立山秋航也会在现场亮相。亚咲花是《摇曳露营△》的老朋友了,キミのね虽然是新面孔,知名度也不及亚咲花,但就声线来看,百分百是辻诗音的马甲。同学虽然对亚咲花无感,但听闻有辻诗音,顿时起了兴趣。于是,他非常给力地帮我抢到票,还速刷了两季动画以便陪我一块看音乐会。可惜经验不足,我们并没有提前候在音乐厅门前,只是打算提前十分钟入场检票。结果便是,我们没有充足的时间,和聚集在门口的一众同好畅聊《摇曳露营△》,也没来得及多拍几张爱好者的痛车和露营道具,便匆匆进场了。

音乐会自然是非常地美妙。当各表演者依次落座,清脆的打火机声响起,伴随着木柴燃烧的爆裂声,一曲《ゆるキャン△のテーマ》为音乐会拉开了序幕。现场各声部发出的声音,确实和耳机里听到的音乐有着天壤之别,我几乎想跟着旋律一块吹起口哨来。但周围的人都正襟危坐,静静聆听。碍于音乐会这种特殊场合的严肃性,我也只能在心里手舞足蹈。甚至都不敢掏出手机拍照。

可随着气氛渐入佳境,情绪被不断推高,邻座的哥们已经按捺不住,开始左右摆手,前排角落的朋友也有备而来,跟随节奏挥舞起了绿色的荧光棒。更有后排的哥们在亚咲花登台的时候,大喊了声「お誕生日おめでとう!」,全场随之躁动起来。这等场合此举成何体统!可我实在忍不住,也跟着喊了一句。

原来今天还是亚咲花的生日,这我确实没有提前调查。

音乐会结束后,我们排队领取签名色纸。按主办方规定,是不允许同歌手合影拍照的,所以我以为只是领了色纸便结束了。可没想到,在领取色纸时,亚咲花不仅热情地向我们「ありがとう」,还在我因社恐领完便转身离去时喊住我,朝我挥手道别。没能向她致以同等的感谢,是我此次音乐会最大的遗憾。

第二天,我和同学逛了 B 站和海洋堂联合举办的 Wonder Festival 手办模型展。由于是 WF 的第二天也是最后一天,再加上入馆稍晚了些,我们放弃了做任务捡小垃圾,改为尽情地拍摄精美的塑料小人。

这些还只是场馆的冰山一角。我们从上午逛到临近闭馆,可能连企业馆的一半都没有走完。更要命的是,在最后的一小时里,我花了三十分钟去排了叔叔的残次手办专销的队,买了一个景品泡面压……于是,我们成功错过了个人展馆。

我们去个人馆的时候,大佬们的摊位已经收了个七七八八,剩下的也基本准备收摊了,打的灯都熄了个精光。个人馆虽然只有一个场馆,但胜在大佬们的 XP 千奇百怪,触手、多目怪,还有一些光是看着就让人掉 SAN 的奇特生物……即便我无法理解,但能在这里(公共场合)见识到这类手办,已经算是一件幸事了。

XP 太怪了,我甚至没敢拍(

唐突地结束吧

今年已经是我在上海的第二个年头了,我仍在日复一日、机械式地重复劳作。这份几乎没有休假的工作,既没有充足的时间让我去见识繁华的国际化大都市,也没有足够的工资支撑我在一线城市消费。好在,经历过去年初来乍到时的种种不适,今年的我至少入门了上班的诀窍:少做、少问、多摸鱼。可偶尔还是太过自觉,招揽了不属于自己的活;也时常和无理取闹的老板拌嘴,给自己徒增烦恼。来年的话,希望自己能灵活变通,不该管的事要当作没看见,好让这个班上起来没那么苦闷。

我也利用起短暂的下班时间,去尽可能做一些与众不同的事。我买了把电吉他,尝试学习喜欢的曲子。我开始走出门去,享受这座城市为每一位二次元爱好者提供的便利。而这些,都离不开 Connorjam 的帮助。是他不厌其烦地将我从无趣的生活中打捞起来,拉着我奔赴一场场次元之约;也是他每天盯着我练琴,不然这把电吉他怕是早就在三天打鱼两天晒网的节奏里落满了灰,即便我现在也只是会弹小星星。

我在初冬的晨光中漫过武康路的街衢,也在巡游的卡车间写下如我们所书的寄语。

我在暮色里仰望过萨姆机甲的炽翼,也在特展的光影里触摸翁法罗斯的余温。

我知道,明年的日子大概率还是会同现在一样循环反复。那些没解决的烦恼、没涨起来的工资、没改掉的毛病,或许还会一次次找上门来。可没关系,我已经学会在这样的日子里,为自己留下一点出口。哪怕只是下班后练几遍不成调的曲子,哪怕只是在人群中确认某些熟悉的热爱依然存在,也足以让我把今天过完。

那么就这样吧,我们明天再见。

Debian 13 新机初始化记录

2025-12-25 19:53:00

最近购置了一台 1H1G、20G SSD 的虚拟服务器,为了便于使用,需要配置一下基础环境,例如新建用户、密钥登录、Docker 和 Zsh 等等。

年初参考过《Debian Server 初始化设置 SOP》的流程,也整理了一份《飞牛 fnOS 初始化配置记录》,但都不太适合直接套用到这台机子上。部分命令在 Debian 13 上也不再适用。于是,我决定按照自己的需求重新抄写一份,并用这篇笔记为今年的水文画上句号。

抄过来就是我自己的东西了!

系统

本节命令全部使用 root 用户执行。

更新与升级

官方预装的是 Debian 12,系统相当干净,没有多余的东西,因而无需重装系统。既然是新开通的实例,没有任何业务负担,那么可以放心地进行大版本升级。我决定趁现在就把它更新到最新的 Debian13,满足我积攒已久的升级欲望。

首先,升级系统到最新状态:

apt update
apt upgrade -y
apt full-upgrade -y
apt autoremove -y
apt autoclean

接着,将软件源切换到 Debian 13(trixie),使用以下命令一键修改 /etc/apt/sources.list

sed -i 's/bookworm/trixie/g' /etc/apt/sources.list /etc/apt/sources.list.d/*.{list,sources} 2>/dev/null

然后再次升级系统:

apt update
apt upgrade -y
apt full-upgrade -y
apt autoclean
apt autoremove -y

弹出的选框可以全部按默认选择,待更新完毕后,重启系统:

reboot

重启后,验证系统版本:

lsb_release -a

如果显示类似以下信息,说明已经升级成功:

No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 13 (trixie)
Release:        13
Codename:       trixie

本地化配置

设置时区与 NTP:

timedatectl set-timezone Asia/Hong_Kong
timedatectl set-ntp true
timedatectl status

输出类似:

System clock synchronized: yes
NTP service: active

配置语言环境:

sed -i 's/^# *zh_CN.UTF-8 UTF-8/zh_CN.UTF-8 UTF-8/' /etc/locale.gen
sed -i 's/^# *en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen
locale-gen

输出类似:

Generating locales (this might take a while)...
  en_US.UTF-8... done
  zh_CN.UTF-8... done
  en_US.UTF-8... done
Generation complete.

安装常用工具

安装一些基础工具,涵盖编译环境、系统管理、网络下载、终端增强以及文件处理等我可能用得到但又用不到的功能:

apt install -y build-essential sudo vim curl wget ufw autojump git tmux zsh tree zstd zip unzip lsof fastfetch rsync

新建用户

先设置一个新用户的环境变量,例如 mikusa,用于后续复制粘贴快速执行命令:

USERNAME=mikusa

创建该用户,并将其添加到 sudo 用户组:

useradd -m $USERNAME
usermod -aG sudo $USERNAME

为用户设置本地密码(可选,以防特殊情况需要,密码尽量复杂):

passwd $USERNAME

设置该用户执行 sudo 命令时免密:

echo "$USERNAME ALL=(ALL:ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/$USERNAME-nopasswd > /dev/null
chmod 440 /etc/sudoers.d/$USERNAME-nopasswd

为该用户配置密钥登录,我有现成的公钥,所以这里直接设置一个公钥变量

PUBKEY="ssh-ed25519 AAAABBBBBVVVVVVVVVVVVVVVVVVVV"

创建用户密钥文件夹并授权:

mkdir -p /home/$USERNAME/.ssh
chmod 700 /home/$USERNAME/.ssh

导入现有公钥:

echo "$PUBKEY" | sudo tee /home/$USERNAME/.ssh/authorized_keys > /dev/null

修改权限:

chmod 600 /home/$USERNAME/.ssh/authorized_keys
chown -R $USERNAME:$USERNAME /home/$USERNAME/.ssh

安装 Docker

使用官方命令一键安装:

curl -fsSL https://get.docker.com | bash -s docker

安装完毕后,使用以下命令验证 docker 和 docker compose:

docker info
docker compose version

再将个人用户添加到 docker 用户组:

usermod -aG docker $USERNAME
需用户退出当前终端、重新登录后,docker 组权限才会生效。

用户

切换到 mikusa 用户

su - mikusa

才能继续执行下列个人用户相关的配置。

Zsh 配置

使用脚本一键安装 Oh My Zsh :

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

安装后会询问是否切换 Shell 为 Zsh,按 y 同意。

安装刚需插件:

git clone https://github.com/zsh-users/zsh-autosuggestions.git ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting

修改主题为 ys

sed -i 's/^ZSH_THEME=".*"/ZSH_THEME="ys"/' ~/.zshrc

配置 Zsh,启用插件:

echo ". /usr/share/autojump/autojump.sh" >> ~/.zshrc
sed -i.bak 's/plugins=(\(.*\))/plugins=(\1 autojump zsh-autosuggestions zsh-syntax-highlighting z extract sudo cp aliases docker docker-compose)/' ~/.zshrc

添加一些自用 docker 别名:

cat <<'EOF' >> ~/.zshrc

# Docker aliases
alias dcu="docker compose up -d --remove-orphans"     ## 启动服务并移除多余容器
alias dcd="docker compose down"                        ## 停止并删除服务容器
alias dcp="docker compose pull"                        ## 拉取镜像
alias dps="docker ps"                                   ## 查看运行中的容器
alias dlogs="docker logs --follow -n 15"               ## 查看容器日志,跟随最新 15 条
alias dclean="docker image prune -a"                   ## 清理未使用镜像
alias acme.sh="docker exec acme.sh acme.sh"            ## 在 acme.sh 容器中执行 acme.sh
alias nginx="docker exec nginx nginx"                  ## 在 nginx 容器中执行 nginx 命令
alias caddy-reload="docker exec -w /etc/caddy caddy sh -c 'caddy fmt --overwrite && caddy reload'"  ## 格式化 Caddyfile 并重载 Caddy
alias caddy="docker exec caddy caddy"                  ## 在 Caddy 容器中执行 caddy 命令

EOF

再重载 Zsh:

source ~/.zshrc

其他

可以安装一个 trash-cli 作回收站用:

sudo apt install -y trash-cli

追加别名:

cat <<'EOF' >> ~/.zshrc

# trash-cli aliases
alias rm='trash-put'        ## trash-put 将文件或目录移入回收站
alias rmclean='trash-empty' ## trash-empty 清空回收站
alias rmrest='trash-restore' ## trash-restore 还原回收站中的文件
alias rmlist='trash-list'   ## trash-list 列出回收站中的文件
alias rmrm='trash-rm'       ## trash-rm 删除回收站中的单个文件

EOF

后续使用 rm 命令,便无须担心误操作删除文件了。

最后

使用新用户通过密钥连接上实例,并确认一切正常后,再修改 SSH 配置,避免因误操作而失联

先修改默认的 SSH 端口。设置一个端口变量,例如:

PORT=22033

一键替换当前端口:

sudo sed -i "s/^#\?Port .*/Port $PORT/" /etc/ssh/sshd_config

验证 /etc/ssh/sshd_config 配置是否有误:

sshd -t

没有报错的话,重启 SSH:

systemctl reload sshd

测试是否已成功绑定到新端口:

ss -tlnp | grep ssh

有类似以下输出,即表示修改完毕:

root@Reze:~# ss -tlnp | grep ssh
LISTEN 0      128          0.0.0.0:22033      0.0.0.0:*    users:(("sshd",pid=733,fd=6))
LISTEN 0      128             [::]:22033         [::]:*    users:(("sshd",pid=733,fd=7))

再考虑禁用 root 登录:

sudo sed -i 's/^#\?PermitRootLogin .*/PermitRootLogin no/' /etc/ssh/sshd_config

也可以禁用密码登录:

sudo sed -i 's/^#\?PasswordAuthentication .*/PasswordAuthentication no/' /etc/ssh/sshd_config

使用以下命令查看是否已成功修改:

sudo sshd -T | grep -E 'permitrootlogin|passwordauthentication'

若输出:

permitrootlogin no
passwordauthentication no

即表示禁止 root 登录,也禁止密码登录生效。

随后重载 SSH:

systemctl reload sshd
使用 reload 而非 restart,可避免因配置错误断开当前连接。

最后,在确认新端口和密钥登录都可用后,再断开当前连接。

参考

关于我收集二次元插画这档事

2025-12-08 22:32:00

我喜欢收集插图。

小的时候,我会把卡通图画剪下来贴进本子里,做成小手账;再大些有了零花钱,我便攒着买来一本本畅销的画册;等到有了智能手机、接触到广阔的互联网世界,可收藏的东西一下子变得多了起来:从同人插图到概念设定,从商业插画到独立艺术家作品……我乐此不疲地保存这些图片,一张又一张,一个文件夹接着一个文件夹。

这大概是我坚持最久、也最投入的一个爱好。

年轻时的XP
年轻时的XP

可随着时间的推移,收集的作品越来越多,面对电脑中杂乱无章的图库,我才意识到一个问题:该如何为这些收藏进行分类?

分类

相比影音或图书领域有成熟的管理程序和外部数据库可供整理,电子图片往往只是作者在插画网站上的一次更新,或社交平台上的一条动态,本身并没有过于明确的分类依据。我曾考虑使用标签的方式分类,但这么做大概需要一个形似 Yande.re 的图片程序记录标签,并在收集的时候为每张图片打上标签。新增图片尚可如此处理,存量图片就要麻烦得多——以我的技术能力还无法做到自动为每张图片打上标签。而网上搜索到的图片整理软件大多面向专业设计师,对于个人的插画收集而言,又有些大材小用。

况且,在使用 fnOS 相册、immich 这些带 AI 索引功能的相册程序之后,标签可能就没有存在的必要了。想要什么风格(标签)的图片,只需几个形容词简单描述,就可以快速检索到位。

飞牛相册的AI搜索功能
飞牛相册的AI搜索功能

因此,与其折腾复杂的分类系统,不如把精力放在图片本身的保存上。我决定只做最基本的「来源 + 作者」分类:

  1. 从 Pixiv 上下载的图片可以轻松找到作者,因此按作者细分;
  2. Yande、Konachan、Danbooru 等类 Danbooru 图站的图片均为爱好者上传自互联网,可能源自 Pixiv1,也可能是 Twitter,甚至可能是未在网络上公开过的实体画集扫图。没有具体的作者,直接保存在来源文件夹;
  3. Twitter 上右键另存为的图片寻找作者亦较为繁琐,也同 Yande 一样处理。

可是,在准备整理这些图片时,眼前的问题又让我犯了难。

整理

由于没有电脑,最初的收集工作是在手机上完成的,自然没有、也不可能意识到未来会有分类的需求。所有图片都通过 Pixiv APP 保存在固定的文件夹里,再由相册的云服务功能同步到云端。这样做固然方便,更换手机也不怕图片丢失,但缺点同样明显:一旦保存时的命名格式发生变化,就很容易重复保存同一张图片。

例如,Pixiv 官方 APP 当前保存图片的命名格式是 illust_id_save_data.jpg,会生成诸如 illust_112251893_20251123_202020.jpg 这种带没有必要的 illust 前缀和具体下载日期的又臭又长的非常不 Elegant 的文件名;第三方 APP 则可以自行设置不同的命名格式,比如 112251893_p0.jpg 。当同一作品在不同时间、以不同文件名被保存时,就难以仅凭手机相册的时间轴判断是否重复收藏,当时的相册 APP 也缺乏扫描重复图片的功能。

▼ 不同时期的文件命名格式不同,我也是近些年才有所规范。

此外,早期的 Pixiv 还能下载到作者上传的未经去除 Exif 信息的原始图片,且图片格式可能是 jpgpngbmp 2,导致获取的同一作品甚至连文件体积也可能不一致。

所以,我决定先从「去重」这一步入手。针对完全一致的 MD5、相同的文件名,以及相近的文件大小,可以利用重复文件清理工具「Duplicate Cleaner」快速清理掉这部分特征明显的图片。而内容完全一致、只有文件格式或体积有区别的图片,可以在后续通过 immich 的去重功能筛选出来。

利用工具快速去重
利用工具快速去重

移动」方面,由于几乎所有的 Pixiv 图片都包含一串作品 ID,处理起来相对方便。我的思路是利用 PID 拼接链接访问作品页面、解析作者的 UID 后,按 UID 建立作者文件夹移动图片。我把这份工作交给了 AI,编写了脚本批量移动。

▼ 其实最初我是按 UID(NAME) 的格式命名作者文件夹的,但总有作者爱改昵称,于是我又用 AI 糊了个脚本,把文件夹中昵称的部分统统删除了。

至于 PID 异常或是已被删除无法解析链接的作品,可以通过 SauceNao 溯源,再移动到对应文件夹。

最终,仅是 Pixiv 3就整理出了 12172 张(可能)4不重复的图片,这些图片来自 2750 位(可能)5不同的插画师。

总计约30GB
总计约30GB

至此,对存量图片的处理工作算是告一段落。接下来就可以把整理后的图片上传 NAS,并将其挂载到 immich 作为外部图库以便随时浏览和检索。

备份

我的计划是,既然收图的重心正逐渐从手机转移到电脑,而电脑上又有各种现成的工具可以快速从 Pixiv 下载图片(例如:PixivBatchDownloader),那不妨就直接利用这些工具,按自己喜欢的规则生成文件夹和文件名。这样浏览插图时既可以顺手下载,又能通过工具保存下载记录,有效避免了重复下载。

接着,我只需把插图保存在 OneDrive 的同步目录里,就能自动同步到云端,再配置好群晖 DSM 的「CloudSync」套件,就能定时将插图从 OneDrive 拉取更新到 NAS。这样一来,我不仅可以随时在电脑上下载新的插图,还能通过 immich 集中统一管理,可谓一举多得。

唯一的问题是,CloudSync 偶尔会抽风。有时无法及时从云端拉取文件,有时又把我从 immich 中删除的图片同步回来……这些都还算能接受,直到后来出了点小意外。

意外

2025 年初,闲来无事的我准备清理一下 DSM 中无用的数据,决定卸载一个用不到的第三方社群的 Python 套件,并在卸载时并勾选了「清理数据」。万万没想到,这个套件的数据路径竟指向了 NAS 的磁盘根目录,于是它在清理自身残留文件的同时,也顺便删掉了目录下其他的文件。

等我意识到不对劲紧急关机,满满 14T 硬盘的收藏已经被删得只剩下一半。

好在丢的都是些不算特别重要的影视剧和动画,有空再下回来就是。真正让我恼火的是不知何时还会出岔子的 DSM,尽管责任在我,是我自己安装非官方认证的第三方套件导致的。

我本就不太喜欢 DSM,既然事情已经发展到这一步,索性连同 NAS 系统一并更换,试试近期大火的 fnOS。

只是,此时的 fnOS 尚处在测试阶段,还未开发类似 CloudSync 的同步工具,无法直接从 Onedrive 同步文件,原本依赖 OneDrive 的备份方案就这样中道崩殂,插图收藏也因此停滞。我只得另寻其他既能兼顾下载、又能便于同步收藏的方法。

工具

归根结底,我的需求无非就是先获取插图再保存到 NAS,仅此而已。既然终点是 NAS,为何不跳过这些弯弯绕绕,直接一步到位?在互联网上寻找了一番,我决定使用 Nazurin 实现这一思路。

Nazurin 是一个基于 Telegram 的图片收藏工具,支持从 各种网站 浏览和下载图片。在配置好 Telegram bot 和目标 存储源 后,只需给 TG 机器人发送图片源链接,便可直接将图片保存至目的地。

其实前面的内容都是为了引出 Nazurin 的废话,写着写着写跑题了……

使用

在以往的存图流程中,遇到需要保存的图片后,我必须:

浏览 图片 ➡️ 下载 图片 ➡️ 上传 NAS

中间省略了可能需要执行的分类和去重工作。

而在使用 Nazurin、将存储目的地直接设置为 NAS 本地后、并配置好各图片源的存储规则后,这个流程就被简化成了:

浏览 图片 ➡️ 分享(发送) 源链接至 TG 机器人

只需两步,图片便直接被保存到 NAS 中了,可谓一劳永逸!

而在换用 Nazurin 后,我仍可以在 PC 端保持原有的浏览习惯,像平常一样寻找插图,遇到喜欢的图片一键保存。仅仅只是「更换」了一个「下载」按钮:

不仅自动下载了图片,还为这张图片标记了 ❤
不仅自动下载了图片,还为这张图片标记了 ❤

也可以在移动设备上,将图片的源链接分享给 TG 机器人:

这或许相比直接使用 APP 一键保存略微曲折了些,但至少我不用担心图片的分类问题,也不用再烦恼如何把它们备份到 NAS 了。

按来源分类
按来源分类

按作者细分
按作者细分

另外,通过订阅各图站的 RSS 服务,我还可以在繁忙的时候第一时间在 TG 内获取时下热门图片,再择一收入囊中。代价是插图收集也因此失去了些许个性。

安装

虽然官方演示是搭建在 Fly.io 上,但我有 NAS,所以直接部署在本地就好了!

安装 Nazurin 非常简单,使用 docker compose 即可一键部署:

services:
  nazurin:
    image: yyoung01/nazurin:latest
    container_name: nazurin
    user: 1000:1001 # 实测需指定用户运行
    volumes:
      - ./data:/app/data
      - /vol1/1000/photos/Nazurin:/Nazurin # 替换为你的存储路径
    # ports:
    #   - 8080:8080
    environment:
     # ---------- 必填项 ----------
      - TOKEN=123456 # 替换为你的 Telegram 机器人 Token
      - ENV=development
     # - WEBHOOK_URL=http://127.0.0.1:8080
     # - HOST=0.0.0.0
     # - PORT=8080
      - STORAGE=Local,Telegram
      - DATABASE=Local
      - ADMIN_ID=123456 # 替换为你的 Telegram 用户 ID
      - ALBUM_ID=-10012345 # 替换为你的 Telegram 频道 ID
      - STORAGE_DIR=/Nazurin # 需与挂载的内部存储路径一致
     # ---------- 可选项 ----------
      - TZ=Asia/Shanghai
      - IS_PUBLIC=false
      - RETRIES=8
      - MAX_PARALLEL_DOWNLOAD=6
      - HTTP_PROXY=http://mihomo:7890 # 替换为你的代理地址
      - HTTPS_PROXY=http://mihomo:7890 # 替换为你的代理地址
      - CLEANUP_INTERVAL=7
      - FEEDBACK_TYPE=reply
      - BILIBILI_FILE_PATH=Bilibili/{user[mid]}
      - PIXIV_TOKEN=123456 # 替换为你的 Pixiv Token
      - PIXIV_TRANSLATION=zh-CN
      - PIXIV_FILE_PATH=Pixiv/{user[id]}
      - PIXIV_FILE_NAME={filename}
      - TWITTER_AUTH_TOKEN=123456 # 替换为你的 Bearer Token
      - TWITTER_FILE_PATH=Twitter/{user[id_str]}
    restart: always

这里与官方提供的 docker-compose.yml 不同的是,官方指定了一个 env_file 配置,里面包含了完整的环境变量,即便绝大多数都可以保持默认,但数量仍多得吓人。所以我稍微精简了下,仅保留了部分自定义的内容。

在这个配置的环境变量中,可选项自定义的功能如下:

  • 同时存储于本地和 Telegram
  • 私有 bot
  • 最大并行下载数量为 6
  • 使用代理。官方文档只写了需要 HTTP_PROXY ,但其实 HTTPS_PROXY 也是必须的
  • 反馈方式设置为在原消息上添加表情回应
  • 可下载 Pixiv、Twitter、Bilibili 图片至指定作者文件夹

    • Pixiv 下载路径设置为 Pixiv/{user[id]},会在 Pixiv 文件夹内建立 作者 ID 文件夹;文件名格式设置为纯数字 ID
    • Twitter 下载路径设置为 Twitter/{user[id_str]} ,会在 Twitter 文件夹内建立 作者的 用户id 文件夹,例如 1507705239507329034。你可以使用这个链接 https://x.com/intent/user?user_id={user_id} 一键跳转到对应用户,如:https://x.com/intent/user?user_id=1507705239507329034

      • 如果你更喜欢使用 @用户名 文件夹,例如 https://x.com/xinzoruo 里的 xinzoruo ,那么可以使用 {user[screen_name]} 来设置作者文件夹 6
    • Bilibili 下载路径设置为 Bilibili/{user[mid]} ,会在 Bilibili 文件夹内建立作者的 uid 文件夹
  • 临时目录设置为 7 天后自动清理

可以具体参考下节的配置说明。

配置

这里详细说明几处需要额外注意的配置。

  • user: 实测需指定用户运行,懒得找可以直接使用 1000:1001,否则登录 SSH 后使用 id 获取你自己的 id

    $ id
    uid=1000(mikusa) gid=1001(Users) groups=1001(Users),994(docker),1000(Administrators)
  • TOKEN:机器人的 API 密钥,可从 @BotFather 获取
  • ADMIN_ID:管理员用户的 Telegram 用户 ID,可从 @userinfobot 获取
  • ALBUM_ID:用于存储图片的频道 ID,可通过网页 TG Web 获取,格式为 -100xxxxxx
  • Env:如果你需要在网页端快捷分享图片至 TG,需要将运行环境设置为 production ,即 Webhook 模式,并指定挂载端口,才能搭配官方的 Nazurin 浏览器扩展 一键分享。否则,使用 development 模式,让机器人轮询访问 TG 即可。
  • 关于 Webhook 模式,官方的说明是:

    发送到 Telegram 服务器的 Webhook URL,机器人的服务器应能通过此 URL 访问,应以 / 结尾,例如 https://xxx.fly.dev/

    也就是说,这个 URL 需要被公开,且必须能被 Telegram 服务器访问,才能正常使用

    这也意味着如果 Nazurin 是运行在家里的 NAS 上,为了正常使用官方的 浏览器扩展必须将 Nazurin 反代至公网

  • HTTP_PROXY:代理,需要一并填写 HTTPS_PROXY ,否则无法正常下载 Pixiv 图片
  • FEEDBACK_TYPE:收藏图片成功后的反馈方式,可选值如下:

    • reply:回复原消息
    • reaction: 在原消息上添加表情回应
    • both:回复并添加表情回应
      回复原消息
      回复原消息
  • PIXIV_TOKEN:可以使用第三方 APP 快捷获取,例如 Pixez。登录后在账户信息页可以一键导出 Token

如果你没有太多图站需要收集,那么便无需使用完整的 .env 文件,只需在环境变量中填写基本的 TG 配置,外加一条 Pixiv Token,就足够启动了。

当然,如果你想要更精细些的分类、更多的图站支持,或者是其它配置,例如外部数据库、云端存储、自定义其他图站的保存路径,就需要自行详细阅读官方文档后,再额外添加了。

完整的环境变量配置如下,注释部分已使用 AI 进行翻译:

点击展开完整环境变量
# 这是一个 .env 配置文件示例
# 更多信息请参阅:https://nazurin.readthedocs.io/getting-started/configuration/
# 修改数值并取消相应行的注释后,将文件重命名为 .env

# ---------- 必填项 ----------
# Telegram Bot 的令牌(token)
# TOKEN =

# 运行环境
# production: Webhook 模式;development: 轮询(Polling)模式
ENV = production

# Webhook 地址,例如:https://xxx.fly.dev/,必须以 '/' 结尾
# 使用 Webhook 模式时必填
# WEBHOOK_URL =

# 监听的主机地址,如果使用反向代理请设为 127.0.0.1
# 使用 Webhook 模式时必填
# HOST = 0.0.0.0

# 监听端口,如果部署在 Heroku 或 fly.io 上请注释掉本行
# 使用 Webhook 模式时必填
# PORT =

# 存储类型,用逗号分隔
STORAGE = Local

# 数据库类型
DATABASE = Local

# Telegram 图库频道 ID,可选(官方文档写的是 GALLERY_ID,这是个过时的变量,这里已经更改)
# ALBUM_ID =

# 管理员用户 ID
# ADMIN_ID =

# ---------- 可选项 ----------
# 存储目录路径
# STORAGE_DIR = Pictures

# 是否将此 Bot 设置为公开
# IS_PUBLIC = false

# 如果 IS_PUBLIC 为 True,则以下配置项将被忽略
# 允许的用户 ID(可多个)
# ALLOW_ID =

# 允许的用户名(可多个)
# ALLOW_USERNAME =

# 允许的群组 ID(可多个)
# ALLOW_GROUP =

# 重试次数
# RETRIES = 5

# 请求超时时间
# TIMEOUT = 20

# 下载文件时写入的分块大小(字节)
# DOWNLOAD_CHUNK_SIZE = 4096

# 最大并行下载数量
# MAX_PARALLEL_DOWNLOAD = 5

# 最大并行上传数量
# MAX_PARALLEL_UPLOAD = 5

# 网络请求的代理 URL,默认为系统环境设置
# HTTP_PROXY = http://127.0.0.1:7890

# 在图像说明(caption)中忽略的内容
# CAPTION_IGNORE =

# 临时目录清理间隔(天)
# CLEANUP_INTERVAL = 7

# 日志等级,参考:https://docs.python.org/3/howto/logging.html#logging-levels
# LOG_LEVEL = INFO

# 收藏图片成功后的反馈方式
# FEEDBACK_TYPE = reply

# ----- Google 服务 -----
# Firebase & Google Drive 的 API 凭证
# GOOGLE_APPLICATION_CREDENTIALS =

# ---------- 网站相关 ----------
# ----- Artstation -----
# 文件目录
# ARTSTATION_FILE_PATH = Artstation

# 文件名
# ARTSTATION_FILE_NAME = {title} ({hash_id}) - {filename}

# ----- Bilibili -----
# 文件目录
# BILIBILI_FILE_PATH = Bilibili

# 文件名
# BILIBILI_FILE_NAME = {id_str}_{index} - {user[name]}({user[mid]})

# ----- Bluesky -----
# 文件目录
# BLUESKY_FILE_PATH = Bluesky

# 文件名
# BLUESKY_FILE_NAME = {rkey}_{index} - {user[display_name]}({user[handle]})

# ----- Danbooru -----
# 文件目录
# DANBOORU_FILE_PATH = Danbooru

# 文件名
# DANBOORU_FILE_NAME = {id} - {filename}

# ----- DeviantArt -----
# 文件目录
# DEVIANT_ART_FILE_PATH = DeviantArt

# 文件名
# DEVIANT_ART_FILE_NAME = {title} - {deviationId}

# 下载文件的命名
# DEVIANT_ART_DOWNLOAD_NAME = {title} - {deviationId} - {prettyName}

# ----- Gelbooru -----
# 文件目录
# GELBOORU_FILE_PATH = Gelbooru

# 文件名
# GELBOORU_FILE_NAME = {id}

# ----- Kemono -----
# 文件目录
# KEMONO_FILE_PATH = Kemono

# 文件名
# KEMONO_FILE_NAME = {pretty_name}

# ----- Lofter -----
# 文件目录
# LOFTER_FILE_PATH = Lofter

# 文件名
# LOFTER_FILE_NAME = {id}_{index} - {nickName}({blogName})

# ----- Moebooru -----
# 文件目录
# {site_name} -> Yandere,{site_url} -> 'yande.re'
# MOEBOORU_FILE_PATH = {site_name}

# 文件名
# MOEBOORU_FILE_NAME = {filename}

# ----- Pixiv -----
# Refresh Token
# PIXIV_TOKEN =

# 图片镜像,可选
# PIXIV_MIRROR = i.pximg.net

# 标签翻译,可选
# PIXIV_TRANSLATION =

# 收藏隐私(public/private),可选
# PIXIV_BOOKMARK_PRIVACY = public

# 文件目录
# PIXIV_FILE_PATH = Pixiv

# 文件名
# PIXIV_FILE_NAME = {filename} - {title} - {user[name]}({user[id]})

# ----- Twitter -----
# API 选择,可选
# TWITTER_API = web

# Web API 的 Auth Token,可选
# TWITTER_AUTH_TOKEN =

# 文件目录
# TWITTER_FILE_PATH = Twitter

# 文件名
# TWITTER_FILE_NAME = {id_str}_{index} - {user[name]}({user[id_str]})

# ----- Wallhaven -----
# API Key,可选
# WALLHAVEN_API_KEY =

# 文件目录
# WALLHAVEN_FILE_PATH = Wallhaven

# 文件名
# WALLHAVEN_FILE_NAME = {id}

# ----- Weibo -----
# 文件目录
# WEIBO_FILE_PATH = Weibo

# 文件名
# WEIBO_FILE_NAME = {mid}_{index} - {user[screen_name]}({user[id]})

# ----- Zerochan -----
# 文件目录
# ZEROCHAN_FILE_PATH = Zerochan

# 文件名
# ZEROCHAN_FILE_NAME = {id} - {name}

# ---------- 数据库 ----------
# ----- MongoDB -----
# MONGO_URI = mongodb://localhost:27017/nazurin

# ----- Cloudant -----
# CLOUDANT_USER =
# CLOUDANT_APIKEY =
# CLOUDANT_DB = nazurin

# ---------- 存储 ----------
# ----- Telegram -----
# 图库频道 ID
# ALBUM_ID =

# ----- MEGA -----
# MEGA_USER =
# MEGA_PASS =

# ----- Google Drive -----
# 文件夹 ID
# GD_FOLDER =

# ----- OneDrive -----
# 应用(客户端)ID
# OD_CLIENT =

# Refresh Token
# OD_RF_TOKEN =

# 客户端密钥
# OD_SECRET =

# ----- S3 -----
# 终端节点(Endpoint)
# S3_ENDPOINT = s3.amazonaws.com

# Access Key
# S3_ACCESS_KEY =

# Secret Key
# S3_SECRET_KEY =

# 是否使用 SSL
# S3_SECURE = True

# 区域
# S3_REGION =

# Bucket 名称
# S3_BUCKET = nazurin

其他

到这里,这篇文章就算彻底结束了。本来只是想简单写写 Nazurin 的用法,结果在开头卡了很久……于是就写成这样了。

总之,如果你同我一样有收集插图的爱好,且拥有一台 NAS,或是一台小服务器,希望能随时随地地保存那些美好的图片,那么 Nazurin 会是个很不错的小助手。

参考


  1. 如果是源自 Pixiv 的图片,我也会优先从 Pixiv 下载,除非这些图片已经被作者从 Pixiv 上删除。所以 Yande 上下载的图片一般不会出现与 Pixiv 重复的情况。
  2. bmp 格式不确定是不是 Pixiv 自带的,只是我整理时发现有保存这个格式的图片。
  3. Pixiv 以外的图片,由于下载时有注意区分,几乎不用处理。
  4. 毕竟数量巨大,难免会有漏网之鱼,还需未来进一步整理。
  5. 存在有些画师账号被封另起炉灶、或是起了个小号偷偷画涩图的情况。
  6. 理论上,将 Twitter 的作者文件夹设置为 id_str 最为稳妥,这串数字是固定不变且唯一的,但 screen_name 又更加便于搜索,只需与 https://x.com/ 拼接即可。你可以按需求选择设置。赌的就是作者不会轻易更换这个 id

2025年7月新番食用报告

2025-12-05 22:33:00

对于今年七月新番的阵容与质量,我的心中充满感恩,只有两个字可以形容我的心情:至福(しふく)

上个季度我只看了4部动画。周二晚上追一集《末日后酒店》,周日一觉睡醒看《PA饭》和《mono》,其余的夜晚就……不记得在做什么了。确实是想不起来,应该不会是被路过的JK吸血鬼相中而带着满城市夜游。但七月就不一样了!这个七月无敌豪华的续作阵容,加上厨力爆棚的漫改、轻改新作,长草期?不存在的,从周一到周日,我一口气追了十二部(除了周二实在无从下手)

首先是热门续作。潜水搞笑番《碧蓝之海》第二季回归,依然是那个熟悉的「酒精与大海」配方;王道热血番《胆大党》第二季继续高能,《彻夜之歌》第二季和《更衣人偶坠入爱河》第二季也如约而至;就连扳机社十年前的无节操作品《吊带袜天使》也出了新系列。

新作同样精彩纷呈。《琉璃的宝石》刷新了大家对这类偏科普作品的认知,京阿尼出品的《小城日常》延续了其一贯的高质量风格。甜到发齁的《薰香花朵凛然绽放》和百合后宫番《我怎么可能成为你的恋人,不行不行!(※不是不可能!?)》则极大程度地满足了不同口味的恋爱党需求,屑粉毛 suki!

不过在这些新作中,有两部漫改作品略有争议。虽然它们制作精良,称得上是业界顶尖水平,却在剧情上败絮其中。一部是《章鱼噼的原罪》,另一部是《光死去的夏天》。这次的新番吐槽,就先讲讲这两部。

章鱼噼的原罪

「原罪」是源自基督教神学的宗教术语,指的是「人类自出生起便带有的罪性」。据《圣经》记载,上帝创造了亚当和夏娃,并将他们安置在伊甸园中。园中有一棵「分辨善恶树」,上帝命令他们不可吃其果实,而二人却在蛇的引诱下违背了命令,吃下了禁果。这被视为人类第一次悖逆上帝的行为。于是,二人受到惩罚:必须承受生老病死、劳作痛苦等诅咒。从此,「原罪」进入了人类世界。

在《章鱼噼》的设定中,「Happy 星球」便是伊甸园,「妈妈」则是上帝,「章鱼星人」是上帝创世后未尝禁果的亚当与夏娃,它们纯洁、透明,不带一丝罪意。显然,《章鱼噼》标题所指的「原罪」并不能同上述宗教定义的「原罪」画上等号。来自 Happy 星球的章鱼噼善良、乐于助人、不求回报,只为博得他人的笑容,他并不存在这种与生俱来的罪。

「分辨善恶树」上的果实象征着道德认知、自我意识与自由意志的觉醒,章鱼噼并不拥有这些能力,而这才是章鱼噼的原罪。章鱼噼「无罪」的前提,是必须身处 Happy 星球,只有这样,他才能不因无知而伤人。一旦章鱼噼来到一个与 Happy 星截然不同的社会时,他的行为本身就构成了他的原罪。

因此,他无法理解静香身上的淤青,将真理奈的暴力当作是朋友之间的争吵,面对落在脸上的拳头也不会下意识躲避,甚至是亲临死亡也不会感到恐惧。


他无意中将自己那套简洁纯粹的逻辑强加于这个复杂多变的世界,以为这些问题只需一个 Happy 道具就能轻松解决,而一切烦恼只需要双方最终是 Happy 的就已足够。章鱼噼的一次次尝试,非但没能解决双方的矛盾,还将自己推向了罪恶的深渊。他没有意识到他人痛苦的根源,也没有发现他的善意对别人来说是一种暴力。哪怕经历无数轮回,他仍未能真正理解事件的本质。他落下的眼泪,也不过是因未能完成妈妈赋予的使命,仅此而已。

可这能全怪章鱼噼吗?不能。因为他面对的是连人类自己都可能无法根治的难题——校园霸凌。动画中的霸凌更是出于剧情的需要,被安置在了一个将现实放大了的极端残酷荒诞的世界,一个家长、学校乃至社会都对此无动于衷的环境。如果说东直树和真理奈受到的是源自家庭的暴力而难以被发现还情有可原,但是对静香在课堂上遭受到的最直接的暴力都视而不见,这种没有任何外部力量干预的霸凌,如此不切实际的背景,在现实生活中几乎不可能存在。

也就是说,作者根本就没打算往一个能彻底解决三个家庭矛盾的方向叙事,自然也就无法指望一个不谙世事的外星章鱼能在处理这些事上起到多大的作用。

所以故事的最后,章鱼噼付出了自己的生命,最后使用了一次 Happy 道具,让时间回到照相的前一刻,创造出了一条继「真理奈线」和「静香线」外,章鱼噼不存在的世界线。这条世界线的真理奈和静香依旧没能摆脱双方既有的命运,却因章鱼噼曾在另外两条线出现过,不经意间影响到了这条线的二人,从而团结在一起互相对抗命运的不公……即便我确实心有不甘,也只能默默接受这个结果。

我编不下去了,越想越气。太烂了这个结局,不会写就不要写

光死去的夏天

《光死去的夏天》初看有很重的 BL 元素,这劝退了很多路人观众。其实随着剧情的发展,两位主角之间的情感实际上更接近兄弟情,中后期则像是父子关系。但动画在二人情感的刻画上、尤其是非人的「光」对佳纪谜一般的感情的深度描写,在故事前期有大量篇幅都着墨于此,导致这部动画实际上看起来就是很……BL。

不过,BL 并不影响我观看,这充其量算是引人注目的噱头,真正吸引我的是 CygamesPictures 高规格的制作水准。光是极其华丽且诡异的片头曲画面就已经值得我驻步,更不用说全片精心构筑的演出与光影,在贴合故事氛围时带来的视觉冲击。这让我得以将更多注意力集中在动画对「光」的由来、神秘的「取脑大人」以及乡村灵异怪谈这一系列故事主线的铺陈。

可真正开始往主线的方向叙事,已经是第 7 话的事了。渐渐地,那些原本用于营造恐怖氛围的光影和镜头设计,还没来得及给我带来预期的惊悚感,就随着第一季的结束被我遗忘了。反倒是动画对小镇夏日的描绘更让我印象深刻——聒噪的蝉鸣、蔚蓝的天空和远处绿色的山峰……我一定是牛马牛出问题了才会怀念这个。这或许暴露了动画本身可能存在的问题:悬疑与情感两条主线太过割裂。

这种割裂感,很大程度源自动画与原作连载方式的差异。漫画自 2021 年 8 月连载至今不过 31 话,更新周期缓慢,「光」身上的悬念与过去被当作长期伏笔埋在叙事深处,在月更节奏下反而不显得突兀。但改成动画后,这条悬疑线被前置为阶段性矛盾,却没有迎来匹配的阶段性解法,在短短 12 集的体量中,它既未推动剧情,又压住了情感线的自然生长,于是观感上的断层就格外明显。如果是 24 集的半年番,节奏会更从容,情感与悬疑能在相对合理的节点上交替发力,高潮也能在合适的时机爆发。但当故事在 12 集刚展开便戛然而止,原本应逐步累积的张力来不及释放,体验自然大打折扣。

等到我看过漫画再回过头看动画,这一问题更为突出。因为即便抽离那些悬疑背景,主角二人的心理变化与关系推进依然成立——动画真正的核心始终在于探讨类似「沼泽人」的身份同一性问题:

若一个在外貌、记忆、行为上皆与你熟悉之人无异的存在出现在面前,那你所认定的那个人仍然成立吗?当认知依附于记忆,情感依附于回忆,而记忆与回忆都已被复制、再现、模拟,那自我究竟指向肉体、意识,还是他者眼中被构造的形象?

以至于「光」究竟是谁,似乎并没有那么重要。

好在官方已经宣布制作第二季,届时将两季连起来看,体验应该会有所改善。只是对于愿意追番的观众来说,这漫长的等待未免有些煎熬。

2025年4月春季新番吐槽

2025-10-18 08:00:00

一月看得有些杂了,我决定静下心来,快快乐乐地看些日常番。

今年四月对我来说算是近几年比较差的,因为在这个多达 66 部番剧的春季档里,我只看完了两部原创动画、一部漫改动画和一部泡面,总计4部新番。《末日后酒店》、《时光流逝,饭菜依旧美味》均属本赛季十分亮眼的黑马,《mono女孩》稍显逊色但也不容小觑,《莉可丽丝:友谊是时间的窃贼》则是专属于粉丝的福利番外,短小精悍。

若是把两部看了一半的半年番《魔女与使魔》、《Summer Pockets》,也算上的话,四月总共是看了6部新番。

你可能会有疑问,「那不是还有《Re:从零开始的异世界生活 第三季 反击篇》这部强势续作吗?」诚然如此,这个四月还有口碑好转的《小市民系列 第二季》、庵野秀明的老朋友鹤卷和哉整的新活《机动战士高达 GQuuuuuuX》以及赛马娘新作《赛马娘 芦毛灰姑娘》,都是不可忽视的存在。可惜我连前作都没看过/完,新/续作肯定无法一拍脑门就囫囵吞枣看下去的。因此,这些已经是我所能选择的极限了。

没片看也没其他办法,说不定七月就有一堆新番等着我呢?

末日后酒店

丛生的树枝从写字楼顶层钻出,枝叶顺着破碎的玻璃幕墙垂挂而下,藤蔓悄无声息地蔓延开来,把街道织成了一座绿色的迷宫。曾经人头攒动的商业街,如今只剩下塌陷的人行道、倒伏的广告牌和被锈蚀封死的店铺大门。阳光洒在褪色的招牌上,不知何处传来几声清脆的鸟鸣,显得格外寂静。

不知名病毒肆虐全球,人类相继逃往外太空,地球文明在顷刻间停止了运转。然而,街口尽头的银河楼酒店仿佛与这一切无关。门前的地面干净如常,墙面光滑整洁,楼顶的钟塔正有条不紊地向前迈进着每一格,仿佛末日未曾来临。酒店沉重的金属门缓缓开启,礼宾机器人如往昔般迎接崭新的一天。只是下一秒,它的机体便猛地一震,随即轰然倒地。蒸汽从关节缝隙中喷出,白色的烟雾在空气中弥散。伴随着低回的爵士乐,《末日后酒店》的故事就此拉开了序幕。

初见「末日后酒店」这个片名,我以为会是个类似《少女终末旅行》那样「苦中作乐」的悲剧故事,或如《末日列车去哪里?》般满载充满脑洞的异想天开。当一群机器人只是为了等候人类回归,而苦苦维护着一栋没有客人的酒店长达数百年,这怎么看都不会是一件快乐的事。谁料,这部作品却走上了《太空丹迪》式的荒诞之路。

既然酒店的存在是为了服务顾客,老板也未曾指定顾客必须得是地球人,那么在这个没有人类存在的世界,为了遵守向老板许下的承诺,服务外星人自然也是理所当然。我们因此得以见到形形色色的外星生物,以及落户地球、陪伴孤独的八千代度过漫长年月的狸猫星人家族。在他们的帮助下,酒店渐渐恢复了往日的生机。不仅修缮了基础设施,开创了特色料理,还陆续增设了温泉、酿酒工坊,顾客越来越多。在星际间打出名声后,甚至建立起面向全地球的防御系统——这些都在不经意间同酒店的运营宗旨相契合。

很难说《末日后酒店》是否正是从这「十律」出发,才延展出如此多姿的故事线的。

与「十律」环环相扣的标题
与「十律」环环相扣的标题

而作为一台依据程序设定运行的机器人,八千代理应按部就班地执行命令,履行代经理的代理的义务,向每位顾客致以最诚挚的笑容。但当她因不可抗力向狸猫星人一家施以正义的铁拳,触发了老板留在她体内的第一个彩蛋之后,她的轨迹便开始偏离原定的路线。从喝酒体验「大人的感觉」而获得性感身材、到被不可名状的心情影响得热水盈口;从意外迷失在外太空,到重返地球发现自己派不上用场,迎来青春期和叛逆期……酒店在成长,八千代亦在进化,她逐渐获得了那些原本只属于人类的「七情六欲」。

于是,当被迫休假的八千代第一次以一位普通的旅客的身份漫步在这座无人的城市,将目光从酒店从转移到这个荒芜的世界,时间的痕迹开始显现。散发着热气的温泉澡堂、金黄色的麦田、高耸的火箭发射场、郁郁葱葱的沙漠绿洲、爬满藤蔓的残垣断壁……看着眼前的这一切,她发出来自内心深处的感慨:「体验到了活着的感觉」。

这一刻,八千代俨然成了这个星球上全新的「人类」。

只可惜,偏向单元剧的结构让人几乎忘记《末日后酒店》终有落幕的一天。可它还是如钟塔那样准时,在第 12 集画下句点——伴随着人类的归来与离去。好在经历了这一切风风雨雨,八千代早已不再是那台只会机械微笑的机器人。她学会了思考和犹豫,理解了愤怒与感动,也懂得了「等待」并不只是程序设定的循环,而是一种源于心底的期盼。或许人类终究不会再回来,但她依然会在这栋酒店中等待着下一位旅客的到来。

时光流逝,饭菜依旧美味

P.A.WORKS 这些年一直在制作一些以少女为主的原创动画,但都收效甚微。例如 2017 年的《樱花任务》、2021年的《白沙的水族馆》,评价都较为一般。可能是因为把握不住半年番的时间跨度(这俩我都没看过,这段话是我瞎说的)。去年的《亦叶亦花》在 Bangumi 上只有凄惨的 4.95分,不过同期的《深夜重拳》还算说得过去,拿下了 7.34 分,可题材特殊,受众面太窄,只能沦为冷门佳作。本季的《PA 饭》1不仅讨论热度高,在日常氛围的营造上更是力压隔壁《mono 女孩》一筹,评分高达惊人的 7.7 分,仅次于《末日后酒店》。

这个成绩倒并不让人惊讶。PA 本来就是日常系动画的好手,只是最近做得烂了些,并不代表人家做不出来好看的动画。《PA 饭》和《mono 女孩》比,也就是制作精度差了点,人物崩坏现象频发了些。在高完成度的故事面前,这些都是瑕不掩瑜的小问题。毕竟《PA 饭》对「吃饭」与「生活」的结合与协调处理得恰到好处,故事节奏和剧情推动也十分舒适,加之各色的角色形象以及丰富的日常互动,构建出的一系列平淡却充满惊喜的放学后生活。这些都是大家有目共睹的。

以上图片来自 维基萌 。各位若有兴趣,不妨前往大佬博客阅览关于本作的圣地巡礼:《圣地巡礼之高尾与西八王子》、《吃动画中的巨无霸汉堡》、《联动女仆咖啡》。

更重要的是,《PA 饭》并非将重心全部都放在做饭、吃饭或是日常唠嗑上,而是借由「饭菜」这一载体,将五位角色紧密地联系在一起。例如第二集,面对空有名头的「饮食文化研究部」感到心灰意冷的真子,在和大活一块打扫活动室、指导员突袭检查活动状况后,萌生出想要做饭的念头,在同伴们的协作下完成一餐,继而收获以往独自一人所没有的喜悦;第三集相约爬山,与相识不久的美虹相遇聊天变得熟络,与大家一起登上梦寐以求的山顶,饱餐后欣赏与所不同的风景;第四集星奈奈的加入虽然充满尴尬的空气,但只一顿饭后,真子与她渐渐成为了无话不谈的好伙伴……

就这样,《PA 饭》每一集都在上演着值得回忆的美妙场景。正如同标题写的那样,重要的从来都不是饭菜,而是大家互相陪伴下缓缓流逝的时光。

mono女孩

《mono 女孩》是《摇曳露营》作者 あfろ 的另一力作,与《摇曳露营》属同一世界观。

只是,在因《摇曳露营》第三季大换血导致原本的空气感消失得不能说是一干二净也得是所剩无几的这个大前提下,接过「神之动画」接力棒的重担就落在了师出同门的《mono》身上。可谁知一季播毕,《摇曳露营》一转身,背后压根没人!再定睛一看,原来《mono》气喘吁吁地跑在另一条赛道。诶不是,你怎么跑得比《PA 饭》还慢?

说笑归说笑,但《mono》确实是远不及《摇曳露营》,甚至还有些落后《PA 饭》的。虽然动画在制作规格上诚意满满,但是对于「日常系动画」十分重要的氛围把控与立意表达上,制作组还是略显青涩。以至于观众看不明白《mono》想要讲述的究竟是一个怎样的故事,是美少女JK聚在一起玩摄影,还是春乃老师 2 和漫画家同伴们借取材之名公费旅游,还是大家闲暇时一起满地图闲逛打卡,还是三者皆有之的日常大杂烩。

摄影也好旅游也罢,亦或是网红景点打卡,我对《mono》的这一套连招并不反感。身经百战的我已经可以主动从夹角和缝隙中摄取美少女养分,再配合少女们纯真的笑容抚慰我疲惫的心灵。我无法忍受的是故事后半段频频出现的乡村灵异怪谈,即便它确实有趣。这段故事和先前轻松的日常相比,主角直接从三小只变成了漫画家社畜不说,原本溢出屏幕的青春还变得只剩下工作饭后的杂谈,有着非常明显的割裂感,实在是让人难以接受。

《mono》最终呈现的效果更像是 あfろ 老师在画《摇曳露营》时四处取材而积攒的素材库,并不只有摄影,而是镜头下包揽世间的万物(もの),这可能才是作品真正的立意。如果大家更倾向《mono》会和《摇曳露营》一样,单纯地借「摄影」为由铺展开来一段段充满趣味与烟火气息的故事,那为何不直接再看一遍《摇曳露营》呢?

莉可丽丝:友谊是时间的窃贼

石蒜今年推出的三分钟的日常番外篇泡面——完全不够看啊!求求你再让我看一集吧,我什么都愿意做的!

要我说第二季干脆别惦记你那烂怂电波塔了,多写点美少女贴贴千束和泷奈的打情骂俏日常,然后在欢声笑语中再次迎来《花之塔》的吉他声响起。你开心,我开心,大家都开心,多么美妙的一件事!

最后

OK,以上就是今年份的4月新番吐槽。虽然只有三部,还磕磕绊绊憋到了10月才写完,但写出来了总归是好的!这三部动画都是本季新番中的精品,如果你有时间亦有兴趣,不妨将这几部动画全部看完,说不定会收获和我完全不一样的体验。

还请期待下次的新番吐槽~


  1. 既然是和做饭有关的动画,又是由 P.A.WORKS 制作,联想到去年的《迷宫饭》,这部《时光流逝,饭菜依旧美味》就被简称为「PA 饭」。
  2. あfろ在剧中的化身

《东岛丹三郎想成为假面骑士》End Card 及作者介绍

2025-10-15 09:59:00

《东岛丹三郎想成为假面骑士》是由 柴田ヨクサル 原作、池添隆博 导演、ライデンフィルム(LIDENFILMS) 制作的 TV 动画,于今年10月播出。故事讲述从小到大一直仰慕假面骑士的男主东岛丹三郎,因无法成为真正的假面骑士而郁郁不得志。在年过40准备放弃这一梦想时,却遇到了梦寐以求的敌人,借「修卡」名义打砸祭典摊贩的小混混。挺身而出的他,人生轨迹就此发生转变……

这个十月实在是没什么看头,续作不够看,异世界烂片又满天飞,无奈只能试试这部特摄题材的漫改。不过,本作不一定能继续维持现阶段的评价(截止2025年10月14日,BGM 上的评分为 7.39),原因有三。其一,原作漫画画风、画工均一言难尽,故事编排也非常糟糕;其二,制作公司 LIDENFILMS 的制作水平忽高忽低,动画质量完全看监督人脉及其导演水平;其三,本作导演池添隆博的履历看起来比较一般,因此,对接下来的走势需持保守态度。

但监督深耕机甲类番剧数十载,就前两集的观感来看,第一集燃得莫名其妙,第二集也还不错。说不定子供向动画的制作经验,用在这部面向青少年乃至成人的动画上,能因此发生其妙的化学反应,继而让原作改头换面,也不无可能。

第一话 池添隆博

本作监督。池添隆博 为原画师出身,后来也绘制分镜,曾在《钢之炼金术师 FULLMETAL ALCHEMIST》中担任OP・ED 的演出和分镜。于 2009 年任监督工作,导演第一部作品《 阿拉德战记 Slap-up Party》,近些年涉猎的题材则主要集中在子供向机甲类动画上。

第二话 マスクド

マスクド 是位专攻假面骑士、奥特曼等特摄题材的插画师,可以前往他的 Pixiv 主页 欣赏他的画作。我本以为没有关注过他,却意外发现以前点赞过一张平成年间历代假面骑士的插图

他本人也有在 X 上发布这张插画的动态。

本话主要以电波人塔克尔为主,具体角色介绍可以参见B站:https://www.bilibili.com/video/BV1m84y1L777/

第三话 沢 真

沢 真的个人信息在中文网络上基本为零,著有漫画《镜像杀手HITS》,但是目前暂停连载;正在连载的漫画《となりのダイダイ》,能搜索到的中文信息很少……

本话结束卡推特动态:https://x.com/sawa_makoto/status/1979595943805935634

第四话 安國一将

安國一将 是位插画师,绘画风格偏美漫,为宝可梦、数码宝贝、奥特曼、高达等卡牌游戏绘制插图。

本话结束卡推特动态:https://x.com/Kazumasa_yskn/status/1982114428511240413

第五话 K-SuKe

K-SuKe 是一名插画师,为一些特摄作品设计角色和怪物。

本话结束卡推特动态:https://x.com/KSuKe37957985/status/1984651490603254069

第六话 横井孝二

横井孝二闻名于《SD 高达》的角色设计。

本话结束卡推特动态:https://x.com/nisegundam/status/1987194676374610335