[{"content":"第一章 灵根被夺 天元大陆，苍云山脉。\n玄天宗坐落于此，是赵国境内最大的修仙宗门。宗门依山而建，殿宇层叠，灵气浓郁得几乎化为实质。宗主修为深不可测，据说已触摸到化神境的门槛，单是释放出的灵压就能让金丹期修士跪伏在地。\n宗门大殿名为\u0026quot;天衡殿\u0026quot;，取\u0026quot;天道平衡\u0026quot;之意。\n此刻，天衡殿的大门紧闭。殿内没有点灯，只有从窗棂缝隙中透进来的几缕天光，在青石地面上投下细长的光影。\n李峰跪在大殿中央，浑身是血。\n他的衣衫早已被鲜血浸透，干涸的血迹和新鲜的血痕交织在一起，散发出一股铁锈般的腥气。他的双手撑在地面上，十指的指甲已经断裂了三根，每动一下都疼得他倒吸凉气。但他不敢倒下——不是因为骨气，而是因为他知道，一旦倒下，就再也站不起来了。\n他的面前站着一个人。\n周子衡。\n玄天宗宗主的亲传弟子，金丹后期修为，永远穿着一身月白长袍，衣角连一丝褶皱都没有。他长得很好看——剑眉星目，面如冠玉，嘴角永远挂着一丝若有若无的笑意，像是对世间一切都了然于胸的模样。\n但李峰知道，那副好看的皮囊下面藏着什么。\n\u0026ldquo;李峰。\u0026ldquo;周子衡的声音很轻，像在说一件微不足道的小事，\u0026ldquo;你的天灵根我已经取走了。从今天起，你就是一个废人。\u0026rdquo;\n李峰没有说话，只是死死地盯着地面。他盯着一块青石砖上的纹路，那纹路像一条蜿蜒的小溪，让他想起了老家村口的那条河。\n三个月前，他还是玄天宗最耀眼的弟子。\n天灵根。\n这三个字在修仙界的分量，就像\u0026quot;状元\u0026quot;在凡人世界的分量一样。整个赵国十年才出一个天灵根，而上一个天灵根的拥有者，正是玄天宗的宗主本人。\n李峰入门三年便筑基成功，修炼速度惊人。长老们争相收他为徒，师兄弟们看他的眼神里满是羡慕和嫉妒。宗主亲口说了一句\u0026quot;百年难遇\u0026rdquo;，这句话像风一样传遍了整个苍云山脉。\n那时候的李峰，走路都带着风。\n可天才这种东西，在某些人眼里不是宝贝，而是威胁。\n周子衡是宗主的亲传弟子，入门二十年，修为金丹后期。在外人看来，他是玄天宗下一任宗主的不二人选。但只有他自己知道，他的灵根只是双灵根——火土双灵根，算不上顶尖。\n而李峰的天灵根，就像一面镜子，照出了他的平庸。\n这面镜子必须被毁掉。\n于是周子衡花了三个月布局。他以\u0026quot;共探秘境\u0026quot;为名将李峰引入宗门禁地，又以\u0026quot;上古传承\u0026quot;为诱饵让李峰放下了戒心。然后在李峰毫无防备的时候，他激活了预先布置好的\u0026quot;夺灵阵\u0026rdquo;。\n那是一种上古禁阵，可以将活体灵根生生剥离。\n过程持续了整整一个时辰。\n李峰到现在还记得那种感觉——像是有一只无形的手伸进了他的身体，抓住了他灵魂深处的某样东西，然后一点一点地往外拽。那种疼不是皮肉之痛，而是灵魂被撕裂的痛。他喊得嗓子都哑了，但禁地外面布了隔音阵，没有人听得见。\n一个时辰后，周子衡拿着一颗散发着柔和绿光的灵石走了。那绿光，就是李峰的天灵根。\n没有审判，没有公道。\n因为周子衡是宗主的人，而李峰不过是从一个偏远山村走出来的穷小子。他的父亲是农民，母亲是农妇，家里最值钱的东西是一头老黄牛。在玄天宗这个弱肉强食的世界里，天赋从来不是护身符，背景才是。\n\u0026ldquo;李峰，你恨我吗？\u0026ldquo;周子衡忽然问。\n李峰抬起头，用一双布满血丝的眼睛看着他。\n\u0026ldquo;恨。\u0026ldquo;李峰说。这是他在整个过程中说的第一个字。\n周子衡笑了。那种笑容让李峰想起了小时候在山里遇到的一条蛇——那条蛇也是这样笑着的，然后一口咬死了他养的那只鸡。\n\u0026ldquo;恨就对了。\u0026ldquo;周子衡说，\u0026ldquo;但恨没有用。在这个世界上，弱者的恨一文不值。\u0026rdquo;\n他转过身，月白长袍的衣角在地面上扫过，没有沾上一丝尘土。\n\u0026ldquo;滚出玄天宗。\u0026ldquo;他说，\u0026ldquo;这里不养废物。\u0026rdquo;\n李峰被人扔出了山门。\n两个外门弟子架着他的胳膊，像扔一袋垃圾一样把他扔在了山门外的石阶上。他的身体顺着石阶滚了下去，每一级台阶都磕在他的肋骨上，疼得他眼前发黑。\n最后他趴在山脚下的泥地里。\n下雨了。\n雨水打在他的脸上，和血水混在一起，流进嘴角。又咸又腥。\n他想起了父亲。\n三年前的秋天，父亲卖了家里仅有的一头老黄牛。那头牛跟了父亲十五年，是家里最重要的劳力。卖牛那天，父亲蹲在牛棚里抽了半宿的旱烟，一句话都没说。第二天早上，他把卖牛的钱塞进李峰手里，手掌粗糙得像树皮。\n\u0026ldquo;峰儿，咱家就指望你了。\u0026rdquo;\n他想起了母亲。\n母亲连夜缝了一件棉衣给他带走。棉衣的针脚歪歪扭扭的，有的地方线头都没藏好，扎人。因为母亲的眼睛已经花了，穿针引线要对着油灯眯半天。但那件棉衣很厚实，穿在身上暖烘烘的，一直暖到了骨头里。\n他想起了村口那棵老槐树，想起了儿时玩伴二狗子的笑脸，想起了所有人看他的眼神——那种\u0026quot;老李家祖坟冒青烟了\u0026quot;的眼神。\n现在，什么都没了。\n灵根没了，修为废了，前途断了。\n他连爬起来的力气都没有。\n第二章 碎玉中的声音 李峰在山脚下躺了三天。\n不是因为绝望到不想动，而是身体真的动不了。灵根被剥离的后遗症远比他想象的严重——经脉寸断，气血两亏，浑身上下没有一处不疼的。他试过翻身，结果刚动了一下，眼前就一阵发黑，差点直接晕过去。\n第一天，他淋了一整天的雨。\n第二天，雨停了，太阳出来了。阳光晒在他湿透的衣服上，蒸出一股酸臭味。有几只苍蝇围着他转，大概是把他当成了死人。\n第三天，他终于能动了。\n不是因为伤好了，而是因为饿。那种饿不是普通的饥饿感，而是从胃里蔓延到全身的虚脱感，像是身体在一点一点地消耗自己。他知道，如果再不吃东西，他就会成为第一个因为灵根被夺而饿死的修仙者——那才是真正的笑话。\n他咬着牙，用胳膊肘撑着地面，一点一点地爬了起来。\n站起来的那一刻，他的膝盖抖得像筛糠。但他还是站住了。\n他踉踉跄跄地走上了通往最近镇子的路。\n望仙镇。\n这是依附玄天宗而建的镇子，来来往往都是修仙者。街道两旁是各种店铺——卖丹药的、卖法器的、卖灵材的。空气中弥漫着一股混合了灵气和凡人烟火气的味道。\n李峰一身血污，蓬头垢面，走路都走不稳，像一个刚从战场上爬出来的伤兵。他走在街上，引来不少目光。\n\u0026ldquo;那不是玄天宗的李峰吗？\u0026ldquo;有人认出了他。\n\u0026ldquo;听说灵根被周师兄取了，废了。\u0026rdquo;\n\u0026ldquo;啧啧，可惜了。多好的天赋，白瞎了。\u0026rdquo;\n\u0026ldquo;活该。谁让他当初那么狂？\u0026rdquo;\n议论声像苍蝇一样围着李峰转。他充耳不闻，只是低着头往前走。\n他找了个墙角坐下。那墙角在一个杂货铺的侧面，勉强能遮点风。他从怀里摸出最后半块干粮——那是他上山前母亲塞给他的，已经硬得像石头了。\n他慢慢啃着。干粮磨得牙龈生疼，但他舍不得浪费一点渣子。\n就在这时，他的脑海里突然响起一个沙哑的声音：\n\u0026ldquo;小子，你就这么认了？\u0026rdquo;\n李峰吓了一跳，四下张望。街上人来人往，没有人注意到他。\n\u0026ldquo;别找了，在你脑子里。\u0026ldquo;那声音又说，语气里带着一丝不耐烦，像是等了很久终于等不及了。\n\u0026ldquo;你是谁？\u0026ldquo;李峰压低声音，眼睛还在四处看。\n\u0026ldquo;老夫姓墨，单名一个渊字。\u0026ldquo;那声音顿了顿，\u0026ldquo;三千年前，有人叫我\u0026rsquo;墨圣\u0026rsquo;。也有人叫我\u0026rsquo;疯子\u0026rsquo;。看你怎么理解。\u0026rdquo;\n李峰没听过这个名字。他试着在脑海里搜索，但什么也没找到。\n他不知道的是，三千年前，这个名字曾让整片天元大陆为之震动。\n墨渊，上古时期最接近飞升的大能。他一生痴迷于肉身成圣之道，认为修仙者过度依赖灵力是歧途——灵力再强，也不过是借天地之力；真正的极致，是让肉身本身成为天地间最强大的法器。\n他几乎成功了。\n在渡劫的那一天，他以肉身硬抗九重天劫，撑过了八重。整个天元大陆都在颤抖，无数修仙者抬头望天，看到了一个凡人之躯对抗天道的壮举。\n可惜第九重天劫太强了。他的肉身化为飞灰，一缕残魂不知怎么被封进了一块不起眼的碎玉里。\n那块碎玉辗转流落了三千年，最后被一个乡下妇人捡到，觉得好看，就缝进了给儿子的棉衣夹层里。\n那个妇人，就是李峰的母亲。\n\u0026ldquo;你的灵根确实没了。\u0026ldquo;墨渊说，\u0026ldquo;但你知道吗？灵根只是修仙的一条路，不是唯一的路。\u0026rdquo;\n李峰的眼睛亮了。\n第三章 另一条路 墨渊告诉李峰，在上古时代，灵根并不是修仙的必需品。\n\u0026ldquo;灵根的作用是汇聚天地灵气，转化为修士可以使用的灵力。\u0026ldquo;墨渊说，\u0026ldquo;但这只是\u0026rsquo;借力\u0026rsquo;——借天地之力为己用。就像一个人用杠杆撬石头，杠杆越长，撬得越轻松。但杠杆终归是外物，断了就什么都没了。\u0026rdquo;\n\u0026ldquo;上古时代有一群人走了另一条路。\u0026ldquo;墨渊的声音变得低沉，像是在回忆很久以前的事，\u0026ldquo;他们不借天地之力，而是把天地之力直接炼入自己的血肉筋骨。让身体本身成为最强大的法器。不需要杠杆，因为他们自己就是那块石头——一块比任何石头都硬的石头。\u0026rdquo;\n\u0026ldquo;这条路叫什么？\u0026ldquo;李峰问。\n\u0026ldquo;锻体。\u0026ldquo;墨渊说，\u0026ldquo;老夫穷尽一生，创了一套《铸圣诀》。这套功法不需要灵根，只需要一样东西。\u0026rdquo;\n\u0026ldquo;什么？\u0026rdquo;\n\u0026ldquo;血。\u0026ldquo;墨渊的声音变得低沉，\u0026quot;《铸圣诀》共分九重，每一重都要以精血为引，用天地灵气反复淬炼肉身。第一重裂肤，第二重碎骨，第三重塑脉……每一重都比上一重痛苦十倍。练到第九重，肉身可比上古凶兽，一拳碎山，一脚裂地，天地之间再无可以伤害你的东西。\u0026rdquo;\n李峰听得心头一热，但随即冷静下来：\u0026ldquo;有多少人练成过？\u0026rdquo;\n墨渊沉默了很久。\n\u0026ldquo;两个。\u0026ldquo;他终于说，\u0026ldquo;老夫和老夫的师父。但我师父只练到第七重就放弃了，改走灵修之路。他说这条路太苦了，苦到不值得。真正走到最后一步的，只有老夫自己。\u0026rdquo;\n\u0026ldquo;可你也失败了。\u0026rdquo;\n\u0026ldquo;是。\u0026ldquo;墨渊没有否认，声音里带着一丝苦涩，\u0026ldquo;但老夫的失败不是功法的问题，是老夫自己的问题。当时老夫心中有执念——一定要飞升，一定要证道，一定要让天下人都知道肉身成圣才是正途。这份执念在渡劫时化为心魔，从内部击溃了我。\u0026rdquo;\n他顿了顿，又说：\u0026ldquo;你不一样。你有牵挂——父母、仇恨、不甘。这些东西会让你痛苦，但也会让你保持清醒。心魔最怕的就是清醒。\u0026rdquo;\n李峰低头看着自己伤痕累累的双手。\n那双手曾经握过剑，曾经施展过法术，曾经被长老们夸赞\u0026quot;天生就是修仙的料\u0026rdquo;。\n现在那双手满是血痂，指甲断了三根，连握拳都握不紧。\n但他还是握了。\n\u0026ldquo;我练。\u0026ldquo;李峰说。\n墨渊笑了，笑声苍老而畅快，像是憋了三千年终于找到了一个可以说话的人。\n\u0026ldquo;好。从今天起，你的命就不只是你自己的了。你得替老夫活着，替老夫看看这三千年后的天地，到底变成了什么模样。\u0026rdquo;\n望仙镇外有一座破庙，不知道供的是什么神，神像的脸已经看不清了。庙顶漏了几个洞，墙壁也裂了缝，但勉强能遮风挡雨。\n李峰把破庙收拾了一下，找了些干草铺在地上，算是有了一个落脚的地方。\n然后他开始了第一次修炼。\n《铸圣诀》第一重——裂肤。\n顾名思义，就是用灵气将全身的皮肤硬生生撕裂，再让它重新生长。旧皮脱落，新皮再生，新皮比旧皮坚韧数倍。\n过程很简单，也很残忍。\n\u0026ldquo;你准备好了吗？\u0026ldquo;墨渊问。\n\u0026ldquo;没有。\u0026ldquo;李峰老实说，\u0026ldquo;但我没有别的选择。\u0026rdquo;\n\u0026ldquo;那倒是实话。\u0026ldquo;墨渊说，\u0026ldquo;开始吧。按照我教你的法门，引导天地灵气进入皮肤表层。注意，不是进入经脉——你没有灵根，灵气不会自动走经脉。你要用意念强行把灵气压进皮肤里。\u0026rdquo;\n李峰盘膝坐下，闭上眼睛。\n他试着感受天地灵气。以前有灵根的时候，灵气就像水一样自然地流进他的身体。但现在，他什么都感受不到——灵根被夺后，他的身体对灵气几乎是\u0026quot;绝缘\u0026quot;的。\n\u0026ldquo;别急。\u0026ldquo;墨渊说，\u0026ldquo;灵根没了，但你的身体还记得灵气的感觉。用心去感受，不是用灵根，是用你的血肉。\u0026rdquo;\n李峰静下心来，一点一点地感受。\n过了大约半个时辰，他终于感觉到了一丝微弱的灵气波动——不是从外界来的，而是从他自己的血肉深处传来的。那是他曾经修炼时残留在体内的灵气痕迹，微弱得像风中的蛛丝，但确实存在。\n\u0026ldquo;抓住它。\u0026ldquo;墨渊说，\u0026ldquo;用意念抓住它，然后引导它走向皮肤表层。\u0026rdquo;\n李峰照做了。\n那丝灵气在他的意念引导下，缓缓地向皮肤表层移动。每移动一寸，都像是在用针扎他的肉。\n当灵气到达皮肤表层的那一刻——\n疼。\n那种疼不是刀割火烧能形容的。那是从每一个毛孔里渗出来的撕裂感，像是有无数把细小的刀片在皮肤下面同时切割。他的皮肤开始鼓起一个个小泡，然后小泡破裂，露出下面鲜红的嫩肉。\n李峰差点晕过去。\n\u0026ldquo;不许晕！\u0026ldquo;墨渊厉声道，\u0026ldquo;晕了灵气失控，你的皮肤会彻底坏死。到时候你就真完了！坚持住，第一重最难的就是开头，等旧皮全部脱落，新皮开始生长，痛苦就会减轻。\u0026rdquo;\n李峰咬碎了嘴里的木棍，又找了一根新的咬上。\n他的身体在剧烈地颤抖，汗水和血水混在一起，浸透了身下的干草。他想喊，但不敢——破庙虽然偏僻，万一被人听见就麻烦了。\n他就这样咬着木棍，一声不吭地扛了一整夜。\n当清晨的阳光从庙顶的破洞照进来时，李峰的身上覆盖着一层黑色的硬壳——那是他的旧皮，已经完全干枯脱落，像蝉蜕一样裹在他身上。\n他颤抖着伸出手，硬壳裂开，露出里面新生的皮肤。\n白皙，光滑，却蕴含着一种说不出的力量感。他试着用指甲掐了一下，竟然掐不动——新皮的韧性已经远超常人。\n\u0026ldquo;第一重，成了。\u0026ldquo;墨渊的声音里带着一丝欣慰，\u0026ldquo;小子，你的忍耐力比老夫想象的要强。当年老夫第一次裂肤的时候，叫得整个山谷都听见了。\u0026rdquo;\n李峰没有笑。他只是慢慢地站起身，走到破庙门口，看着外面的天空。\n天很蓝，云很白。\n三天前，他看这片天空的时候，觉得天都要塌了。\n现在，他觉得天从来没有这么高过。\n他的眼神变了。三天前那是一个绝望者的眼睛——空洞、麻木、死气沉沉。\n现在那是一个复仇者的眼睛——冰冷、锋利，像一把刚开了刃的刀。\n（第一篇完，第二篇《望仙镇》敬请期待）\n","permalink":"https://skyrk.xyz/posts/novel/part1/","summary":"\u003ch2 id=\"第一章-灵根被夺\"\u003e第一章 灵根被夺\u003c/h2\u003e\n\u003cp\u003e天元大陆，苍云山脉。\u003c/p\u003e\n\u003cp\u003e玄天宗坐落于此，是赵国境内最大的修仙宗门。宗门依山而建，殿宇层叠，灵气浓郁得几乎化为实质。宗主修为深不可测，据说已触摸到化神境的门槛，单是释放出的灵压就能让金丹期修士跪伏在地。\u003c/p\u003e\n\u003cp\u003e宗门大殿名为\u0026quot;天衡殿\u0026quot;，取\u0026quot;天道平衡\u0026quot;之意。\u003c/p\u003e\n\u003cp\u003e此刻，天衡殿的大门紧闭。殿内没有点灯，只有从窗棂缝隙中透进来的几缕天光，在青石地面上投下细长的光影。\u003c/p\u003e\n\u003cp\u003e李峰跪在大殿中央，浑身是血。\u003c/p\u003e\n\u003cp\u003e他的衣衫早已被鲜血浸透，干涸的血迹和新鲜的血痕交织在一起，散发出一股铁锈般的腥气。他的双手撑在地面上，十指的指甲已经断裂了三根，每动一下都疼得他倒吸凉气。但他不敢倒下——不是因为骨气，而是因为他知道，一旦倒下，就再也站不起来了。\u003c/p\u003e\n\u003cp\u003e他的面前站着一个人。\u003c/p\u003e\n\u003cp\u003e周子衡。\u003c/p\u003e\n\u003cp\u003e玄天宗宗主的亲传弟子，金丹后期修为，永远穿着一身月白长袍，衣角连一丝褶皱都没有。他长得很好看——剑眉星目，面如冠玉，嘴角永远挂着一丝若有若无的笑意，像是对世间一切都了然于胸的模样。\u003c/p\u003e\n\u003cp\u003e但李峰知道，那副好看的皮囊下面藏着什么。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;李峰。\u0026ldquo;周子衡的声音很轻，像在说一件微不足道的小事，\u0026ldquo;你的天灵根我已经取走了。从今天起，你就是一个废人。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e李峰没有说话，只是死死地盯着地面。他盯着一块青石砖上的纹路，那纹路像一条蜿蜒的小溪，让他想起了老家村口的那条河。\u003c/p\u003e\n\u003cp\u003e三个月前，他还是玄天宗最耀眼的弟子。\u003c/p\u003e\n\u003cp\u003e天灵根。\u003c/p\u003e\n\u003cp\u003e这三个字在修仙界的分量，就像\u0026quot;状元\u0026quot;在凡人世界的分量一样。整个赵国十年才出一个天灵根，而上一个天灵根的拥有者，正是玄天宗的宗主本人。\u003c/p\u003e\n\u003cp\u003e李峰入门三年便筑基成功，修炼速度惊人。长老们争相收他为徒，师兄弟们看他的眼神里满是羡慕和嫉妒。宗主亲口说了一句\u0026quot;百年难遇\u0026rdquo;，这句话像风一样传遍了整个苍云山脉。\u003c/p\u003e\n\u003cp\u003e那时候的李峰，走路都带着风。\u003c/p\u003e\n\u003cp\u003e可天才这种东西，在某些人眼里不是宝贝，而是威胁。\u003c/p\u003e\n\u003cp\u003e周子衡是宗主的亲传弟子，入门二十年，修为金丹后期。在外人看来，他是玄天宗下一任宗主的不二人选。但只有他自己知道，他的灵根只是双灵根——火土双灵根，算不上顶尖。\u003c/p\u003e\n\u003cp\u003e而李峰的天灵根，就像一面镜子，照出了他的平庸。\u003c/p\u003e\n\u003cp\u003e这面镜子必须被毁掉。\u003c/p\u003e\n\u003cp\u003e于是周子衡花了三个月布局。他以\u0026quot;共探秘境\u0026quot;为名将李峰引入宗门禁地，又以\u0026quot;上古传承\u0026quot;为诱饵让李峰放下了戒心。然后在李峰毫无防备的时候，他激活了预先布置好的\u0026quot;夺灵阵\u0026rdquo;。\u003c/p\u003e\n\u003cp\u003e那是一种上古禁阵，可以将活体灵根生生剥离。\u003c/p\u003e\n\u003cp\u003e过程持续了整整一个时辰。\u003c/p\u003e\n\u003cp\u003e李峰到现在还记得那种感觉——像是有一只无形的手伸进了他的身体，抓住了他灵魂深处的某样东西，然后一点一点地往外拽。那种疼不是皮肉之痛，而是灵魂被撕裂的痛。他喊得嗓子都哑了，但禁地外面布了隔音阵，没有人听得见。\u003c/p\u003e\n\u003cp\u003e一个时辰后，周子衡拿着一颗散发着柔和绿光的灵石走了。那绿光，就是李峰的天灵根。\u003c/p\u003e\n\u003cp\u003e没有审判，没有公道。\u003c/p\u003e\n\u003cp\u003e因为周子衡是宗主的人，而李峰不过是从一个偏远山村走出来的穷小子。他的父亲是农民，母亲是农妇，家里最值钱的东西是一头老黄牛。在玄天宗这个弱肉强食的世界里，天赋从来不是护身符，背景才是。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;李峰，你恨我吗？\u0026ldquo;周子衡忽然问。\u003c/p\u003e\n\u003cp\u003e李峰抬起头，用一双布满血丝的眼睛看着他。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;恨。\u0026ldquo;李峰说。这是他在整个过程中说的第一个字。\u003c/p\u003e\n\u003cp\u003e周子衡笑了。那种笑容让李峰想起了小时候在山里遇到的一条蛇——那条蛇也是这样笑着的，然后一口咬死了他养的那只鸡。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;恨就对了。\u0026ldquo;周子衡说，\u0026ldquo;但恨没有用。在这个世界上，弱者的恨一文不值。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e他转过身，月白长袍的衣角在地面上扫过，没有沾上一丝尘土。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;滚出玄天宗。\u0026ldquo;他说，\u0026ldquo;这里不养废物。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e李峰被人扔出了山门。\u003c/p\u003e\n\u003cp\u003e两个外门弟子架着他的胳膊，像扔一袋垃圾一样把他扔在了山门外的石阶上。他的身体顺着石阶滚了下去，每一级台阶都磕在他的肋骨上，疼得他眼前发黑。\u003c/p\u003e\n\u003cp\u003e最后他趴在山脚下的泥地里。\u003c/p\u003e\n\u003cp\u003e下雨了。\u003c/p\u003e\n\u003cp\u003e雨水打在他的脸上，和血水混在一起，流进嘴角。又咸又腥。\u003c/p\u003e\n\u003cp\u003e他想起了父亲。\u003c/p\u003e\n\u003cp\u003e三年前的秋天，父亲卖了家里仅有的一头老黄牛。那头牛跟了父亲十五年，是家里最重要的劳力。卖牛那天，父亲蹲在牛棚里抽了半宿的旱烟，一句话都没说。第二天早上，他把卖牛的钱塞进李峰手里，手掌粗糙得像树皮。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;峰儿，咱家就指望你了。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e他想起了母亲。\u003c/p\u003e\n\u003cp\u003e母亲连夜缝了一件棉衣给他带走。棉衣的针脚歪歪扭扭的，有的地方线头都没藏好，扎人。因为母亲的眼睛已经花了，穿针引线要对着油灯眯半天。但那件棉衣很厚实，穿在身上暖烘烘的，一直暖到了骨头里。\u003c/p\u003e\n\u003cp\u003e他想起了村口那棵老槐树，想起了儿时玩伴二狗子的笑脸，想起了所有人看他的眼神——那种\u0026quot;老李家祖坟冒青烟了\u0026quot;的眼神。\u003c/p\u003e\n\u003cp\u003e现在，什么都没了。\u003c/p\u003e\n\u003cp\u003e灵根没了，修为废了，前途断了。\u003c/p\u003e\n\u003cp\u003e他连爬起来的力气都没有。\u003c/p\u003e","title":"李峰修仙传 · 第一篇：废柴觉醒"},{"content":"第四章 以血炼丹 第一重成功后，李峰并没有急着离开望仙镇。\n\u0026ldquo;你现在出去就是送死。\u0026ldquo;墨渊说，语气很直接，没有半点安慰的意思，\u0026ldquo;一个刚裂肤的体修，肉身强度大概相当于炼气中期。望仙镇随便一个摆摊的散修都能把你按在地上摩擦。你需要另一样东西——丹药。\u0026rdquo;\n\u0026ldquo;可我没有灵根，怎么炼丹？\u0026ldquo;李峰问出了一个他一直想问的问题。\n\u0026ldquo;谁说炼丹一定要用灵力催生的丹火？\u0026ldquo;墨渊嗤笑一声，语气里带着明显的不屑，\u0026ldquo;那是后世修士的误解。真正的炼丹之火来自天地——地火、雷火、风火，这些才是上古丹师所用的火源。丹火不过是灵力催生的劣质替代品，就像用蜡烛代替太阳，能用，但差远了。\u0026rdquo;\n\u0026ldquo;可我上哪找天地之火？\u0026rdquo;\n\u0026ldquo;望仙镇地下二十丈，有一条地火脉。\u0026ldquo;墨渊说，\u0026ldquo;老夫虽然只剩残魂，但感知还在。这条地火脉品质不高，属于最低等的\u0026rsquo;黄阶\u0026rsquo;地火，但对你现在的水平来说足够了。就像你刚学写字，不需要用名贵的笔墨，能写就行。\u0026rdquo;\n于是李峰开始了双线作战——白天在镇上做苦力赚灵石，晚上偷偷挖地道。\n做苦力的活是搬货。望仙镇有一条商街，专门做修仙者的生意，每天都有大量的货物需要搬运。李峰没有灵力，只能靠蛮力。好在裂肤之后他的体力远超常人，一个人能顶三个壮汉。\n工头是个矮胖的中年人，叫老赵，是个炼气三层的散修。他看李峰干活利索，人也老实，就多给了他几个铜板。\n\u0026ldquo;小伙子，你叫什么？\u0026ldquo;老赵问。\n\u0026ldquo;李峰。\u0026rdquo;\n\u0026ldquo;以前是玄天宗的？\u0026rdquo;\n李峰没有回答。\n老赵看了看他身上的旧伤，大概猜到了什么，没有再问。在这个世界上，从宗门里被赶出来的散修多得是，各有各的伤心事。\n挖地道的活比做苦力更累。\n李峰每天晚上等镇子安静下来，就偷偷溜到破庙后面的一处废弃井里开始挖。他用的是一把从杂货铺买来的铁锹，花了他整整五块下品灵石——对他来说是一笔巨款。\n泥土坚硬，越往下挖越难。有时候会碰到石头，铁锹根本挖不动，他就用手抠。十天下来，他的手指甲全裂了，手掌磨出了厚厚的茧子，茧子又磨破，破了又长，反复几次之后，手掌变得像树皮一样粗糙。\n第七天晚上，他终于挖到了地火脉。\n那是一条暗红色的岩浆流，在地下缓缓流淌，散发出灼热的温度。靠近五丈之内，皮肤就会被烤得发红发烫。\n\u0026ldquo;就在这儿建丹房。\u0026ldquo;墨渊说。\n李峰又花了三天，用从镇上买来的耐火石砌了一个简陋的丹炉。说是丹炉，其实就是石头坑上盖了一块凹槽石板，旁边挖了一条通风槽用来控制火候。\n\u0026ldquo;寒酸。\u0026ldquo;墨渊评价道，\u0026ldquo;但凑合能用。当年老夫的丹房，光是丹炉就用了九九八十一块万年寒铁，炼了七七四十九天才成。你这个……算了，不说了。\u0026rdquo;\n李峰没有在意墨渊的嫌弃。他蹲在丹炉旁边，伸手感受了一下地火的温度，心里默默盘算着接下来的计划。\n第五章 第一炉丹 炼丹是一门精密的学问。\n药性、火候、时机、手法——差之毫厘，谬以千里。一株药材投入的早晚差了一个呼吸的时间，出来的丹药品质可能就是一个天上一个地下。\n但墨渊教李峰的第一课不是炼丹，而是识药。\n\u0026ldquo;你连药材都不认识，炼什么丹？\u0026ldquo;墨渊说，\u0026ldquo;这就像你连字都不认识，却想写文章一样可笑。从今天起，每天去镇上的药铺看药材。不用买，就看。用你的感知去体会每一株药材的药性走向、灵气浓度、生长年份。\u0026rdquo;\n\u0026ldquo;我没有灵根，怎么感知？\u0026rdquo;\n\u0026ldquo;你裂肤之后，新皮对灵气的感知比常人敏锐数倍。\u0026ldquo;墨渊说，\u0026ldquo;你不需要用灵根去\u0026rsquo;读\u0026rsquo;灵气，你可以用皮肤去\u0026rsquo;感受\u0026rsquo;灵气。就像瞎子的听觉比常人灵敏一样，你失去了灵根，但你的身体会发展出新的感知方式。\u0026rdquo;\n李峰将信将疑地去了药铺。\n望仙镇最大的药铺叫\u0026quot;百草堂\u0026rdquo;，老板姓孙，是个五十多岁的老头，修为炼气巅峰，一辈子没能筑基，就在镇上开了药铺糊口。他人不错，对修仙者和凡人都一视同仁，唯一的毛病就是话多。\n李峰在药铺门口蹲了第一天。\n百草堂的门口摆着一排药材架，上面放着一些低阶药材——灵草、灵芝、黄芪、当归之类的。这些都是炼气期修士常用的药材，价格不高，但种类繁多。\n李峰蹲在架子前面，一株一株地看。\n他试着用墨渊教他的方法——不是用灵根去感知，而是用皮肤。他伸出手，轻轻触碰每一株药材的叶片，感受它们表面散发出的灵气波动。\n一开始什么都感受不到。\n但到了第三天，他开始能模糊地分辨出不同药材的灵气走向——有的药材灵气是向上的，像火焰；有的是向下的，像水流；有的是向外扩散的，有的是向内收敛的。\n\u0026ldquo;这就是药性。\u0026ldquo;墨渊说，\u0026ldquo;每一种药材都有自己的\u0026rsquo;脾气\u0026rsquo;。你把它们的脾气摸透了，炼丹就成功了一半。\u0026rdquo;\n李峰在药铺门口蹲了半个月。\n孙老板一开始以为他是来蹭灵气的散修，差点把他赶走。后来发现这小子每天就安安静静蹲在门口看药材，不吵不闹，偶尔还帮着搬搬货、扫扫地，就随他去了。\n\u0026ldquo;小伙子，你是想学炼丹？\u0026ldquo;有一天孙老板问他。\n李峰点了点头。\n\u0026ldquo;没有灵根？\u0026rdquo;\n李峰犹豫了一下，又点了点头。\n孙老板叹了口气：\u0026ldquo;没有灵根想学炼丹，难啊。不过你要是不嫌弃，我可以教你认认药材。我虽然不会炼丹，但药材这东西，我还是懂一些的。\u0026rdquo;\n从那以后，孙老板每天都会抽空给李峰讲解各种药材的特性。哪些药材相生，哪些相克，哪些可以搭配使用，哪些绝对不能放在一起。\n李峰把这些知识一字不漏地记在了脑子里。\n半个月后，墨渊开始教他炼制最基础的丹药——聚元丹。\n这是一种低阶丹药，服用后可以加速灵气汇聚，对炼气期修士很有用。炼制难度不高，但对新手来说依然是一座大山。\n\u0026ldquo;药材投入顺序不能错。\u0026ldquo;墨渊说，\u0026ldquo;先放灵草，灵草的药性最温和，可以打底。等灵草的药性完全释放出来之后，再放黄芪，黄芪可以巩固药性。最后放灵芝，灵芝是主药，它的作用是凝聚——把前面两种药材的药性凝聚到一起。\u0026rdquo;\n\u0026ldquo;火候呢？\u0026rdquo;\n\u0026ldquo;全程用中火。聚元丹是低阶丹药，不需要太高的温度。但你必须保持火候稳定——忽高忽低都不行。就像煮粥一样，火太大会糊，火太小会生。\u0026rdquo;\n\u0026ldquo;搅拌呢？\u0026rdquo;\n\u0026ldquo;匀速，不能停。从投入第一味药材开始，到收丹之前，搅拌不能断。频率大约是呼吸之间一圈，不能快也不能慢。\u0026rdquo;\n李峰把这些要点默默记下，然后开始了第一次炼丹。\n药材依次投入。灵草先放，等了大约三十个呼吸的时间，灵草的药性开始释放，丹炉里弥漫出一股淡淡的草木清香。\n\u0026ldquo;现在放黄芪。\u0026ldquo;墨渊说。\n李峰把黄芪放入丹炉。黄芪的药性比灵草厚重，投入的瞬间，丹炉里的药液颜色变深了一些。\n他用铁棍匀速搅拌着，控制着地火的温度。额头上的汗一滴一滴地往下掉，但他顾不上擦——他的全部注意力都集中在丹炉里。\n\u0026ldquo;灵芝，放。\u0026rdquo;\n李峰把灵芝放入丹炉。灵芝的药性最浓，投入的瞬间，丹炉里的药液开始剧烈翻滚。\n\u0026ldquo;稳住火候！\u0026ldquo;墨渊喊道。\n李峰咬着牙，用意念控制着地火的温度。没有灵根，他只能靠裂肤之后增强的感知力来判断火候——这种感知很模糊，像是隔着一层纱布在看东西，远不如灵根修士来得精准。\n但他别无选择，只能拼。\n药液的翻滚渐渐平息，颜色从深褐色变成了浅金色。一股浓郁的药香从丹炉里飘出来，闻着让人精神一振。\n\u0026ldquo;火候到了，立刻收丹！\u0026ldquo;墨渊喊道。\n李峰伸手去拿丹炉盖——\n\u0026ldquo;嘶！\u0026rdquo;\n丹炉盖烫得像烧红的铁块。他的手刚碰到就被烫得缩了回来，指尖瞬间起了两个水泡。\n就这一犹豫，丹炉里传来一声闷响。\n炸炉了。\n黑色的药渣从丹炉里喷出来，糊了李峰一脸。\n\u0026ldquo;……重来。\u0026ldquo;墨渊说，语气里带着一丝无奈。\n李峰擦了擦脸，开始清理丹炉。\n第二次，他在收丹的时候手抖了一下，药液溅了出来，丹药没成。\n第三次，火候没控制好，药液烧焦了。\n第四次、第五次、第六次，每次都差一点。\n到第七次的时候，李峰的手已经被烫得全是水泡，十个手指有八个缠着布条。但他没有停下来——他知道，如果现在停下来，他就永远也学不会了。\n第七次炼丹。\n药材投入，顺序精准。搅拌，匀速稳定。火候，勉强控制住。\n到了收丹的时刻。\n李峰深吸一口气，伸出缠满布条的手，一把抓住丹炉盖。\n烫。\n布条瞬间被烤焦，他的手掌传来一阵剧痛。但他没有松手。\n他猛地掀开丹炉盖。\n丹炉里躺着一颗圆溜溜的丹药。表面有些粗糙，颜色不够纯正，但确确实实是一颗聚元丹。\n\u0026ldquo;成了。\u0026ldquo;墨渊的声音里带着笑意，\u0026ldquo;品质只算下品，对新手来说已经不错了。\u0026rdquo;\n李峰捏着那颗丹药，手指微微发抖。不是因为激动，是因为太疼了。他的手掌已经被烫得红肿，布条上渗出了血水。\n但他笑了。\n这是他被夺走灵根之后，第一次笑。\n第六章 望仙镇丹会 三个月后，李峰已经能稳定炼制中品聚元丹了。\n这在散修中已经算是很不错的水平。很多散修炼了一辈子丹，也未必能稳定产出中品丹药。原因很简单——炼丹需要天赋，也需要大量的练习。散修没有宗门的资源支撑，光是凑齐练习用的药材就要花掉大半积蓄，哪有那么多灵石来烧？\n但李峰有地火脉。\n这是他最大的优势。地火脉的温度稳定、持久，而且不用花灵石。他可以没日没夜地练习，不用担心燃料成本。三个月下来，他光是炸掉的丹炉就有二十多个，炼废的药材更是不计其数。但他也因此积累了大量的经验——什么时候该加火，什么时候该减火，什么时候该搅拌快一点，什么时候该慢一点，这些都已经刻进了他的肌肉记忆里。\n\u0026ldquo;是时候出去走走了。\u0026ldquo;墨渊说，\u0026ldquo;望仙镇五天后有一场丹会。\u0026rdquo;\n\u0026ldquo;丹会？\u0026rdquo;\n\u0026ldquo;就是炼丹比试。每年玄天宗都会在望仙镇举办一场，吸引周边散修参加。赢了可以拿药材奖励，甚至有机会被玄天宗看中，收入门下。\u0026rdquo;\n\u0026ldquo;我不想去玄天宗。\u0026ldquo;李峰冷冷地说。\n\u0026ldquo;谁让你去了？\u0026ldquo;墨渊说，\u0026ldquo;我是让你打响名气。你以后修炼需要大量药材和灵石，靠你做苦力一辈子也凑不够。出了名，自然有人找你炼丹，到时候药材灵石都不用愁。\u0026rdquo;\n李峰想了想，觉得有道理。\n五天后，望仙镇中心广场。\n丹会的规模比李峰想象的大。广场上搭了二十座丹炉，每座丹炉旁边都配了一个控火阵法，用来调节温度。周围围满了看热闹的人——有修仙者，也有凡人。对凡人来说，看修仙者炼丹就像看杂耍一样有趣。\n参赛的炼丹师有六十多个。大部分是散修，穿着朴素，脸上带着紧张和期待。也有几个玄天宗的外门弟子，穿着统一的灰色道袍，一脸傲慢，仿佛冠军已经是他们的囊中之物。\n主持丹会的是一个中年修士，元婴初期修为，穿着玄天宗的长老服饰。他扫了一眼参赛者，目光在李峰身上停了一下——大概是认出了他，但什么也没说。\n\u0026ldquo;规则很简单。\u0026ldquo;中年修士说，\u0026ldquo;限时一个时辰，炼制你们最擅长的丹药。以品质论高下，取前三名。第一名奖励百草堂三年份的灵芝一株，第二名奖励聚元丹辅药一套，第三名奖励五十块中品灵石。\u0026rdquo;\n李峰选了一座角落的丹炉，默默开始准备。\n\u0026ldquo;那不是那个废柴李峰吗？\u0026ldquo;有人认出了他。\n\u0026ldquo;他也来参加丹会？他不是灵根被夺了吗？\u0026rdquo;\n\u0026ldquo;没有灵根怎么炼丹？搞笑吧。\u0026rdquo;\n\u0026ldquo;说不定是来凑数的，哈哈哈。\u0026rdquo;\n议论声不绝于耳。李峰充耳不闻，专心致志地检查丹炉和药材。\n他带了三份聚元丹的药材——他只给自己三次机会。如果三次都失败了，那就认命。\n\u0026ldquo;各位准备好了吗？\u0026ldquo;中年修士问。\n没有人回答，但所有人都看向了丹炉。\n\u0026ldquo;开始！\u0026rdquo;\n二十座丹炉同时点燃。广场上弥漫起一股热浪，空气中充满了各种药材的气味。\n李峰闭上眼睛，感受着地火的温度。\n三个月的日夜练习，让他的火候把控已经到了近乎本能的程度。他不需要看温度计，不需要用灵力探测——他只需要把手放在丹炉旁边，用皮肤感受热浪的变化，就能精确地判断丹炉内部的温度。\n药材投入，顺序精准，分毫不差。\n灵草先放。等三十个呼吸。黄芪再放。再等二十个呼吸。灵芝最后放。\n搅拌，匀速，一圈一个呼吸。\n火候，稳定，不温不火。\n周围的参赛者陆续出了状况。有人火候太大，药液烧焦了；有人搅拌不匀，药性没有融合；有人太紧张，手一抖把药材掉在了地上。\n炸炉的声音此起彼伏，像放鞭炮一样。\n但李峰的丹炉始终平静。\n一个时辰后，比赛结束的钟声敲响。\n李峰睁开眼睛，深吸一口气，伸手掀开丹炉盖。\n丹炉里躺着一颗丹药。\n他愣住了。\n那不是中品丹药。\n那是一颗上品聚元丹。\n表面光滑如玉，色泽纯正，药香扑鼻。更重要的是，丹药的表面隐隐浮现着一道细纹——那是丹纹，只有上品丹药才会出现的标志。\n李峰不知道的是，在他炼丹的这一个时辰里，他无意中进入了一种状态——墨渊称之为\u0026quot;心炉合一\u0026rdquo;。在这种状态下，炼丹师的心跳和丹炉的火候完全同步，药性的融合达到了一种近乎完美的境界。这种状态可遇不可求，很多炼丹师一辈子都未必能遇到一次。\n评委们逐一检查丹药。\n当他们走到李峰面前时，所有人都停住了。\n\u0026ldquo;这……是你炼的？\u0026ldquo;领头的评委——一个白发苍苍的老者——拿起丹药，翻来覆去地看了好几遍，脸上满是不敢置信。\n李峰点了点头。\n\u0026ldquo;上品聚元丹……有丹纹……\u0026ldquo;老者喃喃道，\u0026ldquo;一个没有灵根的人，炼出了有丹纹的上品丹药……\u0026rdquo;\n广场上鸦雀无声。\n所有人都看向李峰。那些之前嘲笑他的人，此刻一个个张大了嘴巴，像是被人扇了一巴掌。\n中年修士长老也走了过来。他看了看丹药，又看了看李峰，沉默了很久。\n\u0026ldquo;丹会第一名。\u0026ldquo;他终于宣布，\u0026ldquo;李峰。\u0026rdquo;\n那天之后，再也没有人叫李峰\u0026quot;废柴\u0026quot;了。\n他们叫他——\u0026ldquo;丹师李峰\u0026rdquo;。\n（第二篇完，第三篇《暗流》敬请期待）\n","permalink":"https://skyrk.xyz/posts/novel/part2/","summary":"\u003ch2 id=\"第四章-以血炼丹\"\u003e第四章 以血炼丹\u003c/h2\u003e\n\u003cp\u003e第一重成功后，李峰并没有急着离开望仙镇。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;你现在出去就是送死。\u0026ldquo;墨渊说，语气很直接，没有半点安慰的意思，\u0026ldquo;一个刚裂肤的体修，肉身强度大概相当于炼气中期。望仙镇随便一个摆摊的散修都能把你按在地上摩擦。你需要另一样东西——丹药。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;可我没有灵根，怎么炼丹？\u0026ldquo;李峰问出了一个他一直想问的问题。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;谁说炼丹一定要用灵力催生的丹火？\u0026ldquo;墨渊嗤笑一声，语气里带着明显的不屑，\u0026ldquo;那是后世修士的误解。真正的炼丹之火来自天地——地火、雷火、风火，这些才是上古丹师所用的火源。丹火不过是灵力催生的劣质替代品，就像用蜡烛代替太阳，能用，但差远了。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;可我上哪找天地之火？\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;望仙镇地下二十丈，有一条地火脉。\u0026ldquo;墨渊说，\u0026ldquo;老夫虽然只剩残魂，但感知还在。这条地火脉品质不高，属于最低等的\u0026rsquo;黄阶\u0026rsquo;地火，但对你现在的水平来说足够了。就像你刚学写字，不需要用名贵的笔墨，能写就行。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e于是李峰开始了双线作战——白天在镇上做苦力赚灵石，晚上偷偷挖地道。\u003c/p\u003e\n\u003cp\u003e做苦力的活是搬货。望仙镇有一条商街，专门做修仙者的生意，每天都有大量的货物需要搬运。李峰没有灵力，只能靠蛮力。好在裂肤之后他的体力远超常人，一个人能顶三个壮汉。\u003c/p\u003e\n\u003cp\u003e工头是个矮胖的中年人，叫老赵，是个炼气三层的散修。他看李峰干活利索，人也老实，就多给了他几个铜板。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;小伙子，你叫什么？\u0026ldquo;老赵问。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;李峰。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;以前是玄天宗的？\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e李峰没有回答。\u003c/p\u003e\n\u003cp\u003e老赵看了看他身上的旧伤，大概猜到了什么，没有再问。在这个世界上，从宗门里被赶出来的散修多得是，各有各的伤心事。\u003c/p\u003e\n\u003cp\u003e挖地道的活比做苦力更累。\u003c/p\u003e\n\u003cp\u003e李峰每天晚上等镇子安静下来，就偷偷溜到破庙后面的一处废弃井里开始挖。他用的是一把从杂货铺买来的铁锹，花了他整整五块下品灵石——对他来说是一笔巨款。\u003c/p\u003e\n\u003cp\u003e泥土坚硬，越往下挖越难。有时候会碰到石头，铁锹根本挖不动，他就用手抠。十天下来，他的手指甲全裂了，手掌磨出了厚厚的茧子，茧子又磨破，破了又长，反复几次之后，手掌变得像树皮一样粗糙。\u003c/p\u003e\n\u003cp\u003e第七天晚上，他终于挖到了地火脉。\u003c/p\u003e\n\u003cp\u003e那是一条暗红色的岩浆流，在地下缓缓流淌，散发出灼热的温度。靠近五丈之内，皮肤就会被烤得发红发烫。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;就在这儿建丹房。\u0026ldquo;墨渊说。\u003c/p\u003e\n\u003cp\u003e李峰又花了三天，用从镇上买来的耐火石砌了一个简陋的丹炉。说是丹炉，其实就是石头坑上盖了一块凹槽石板，旁边挖了一条通风槽用来控制火候。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;寒酸。\u0026ldquo;墨渊评价道，\u0026ldquo;但凑合能用。当年老夫的丹房，光是丹炉就用了九九八十一块万年寒铁，炼了七七四十九天才成。你这个……算了，不说了。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e李峰没有在意墨渊的嫌弃。他蹲在丹炉旁边，伸手感受了一下地火的温度，心里默默盘算着接下来的计划。\u003c/p\u003e","title":"李峰修仙传 · 第二篇：望仙镇"},{"content":"第七章 不速之客 丹会之后，李峰的名声迅速传开。\n找他炼丹的人络绎不绝。聚元丹、回元丹、培元丹——只要中低阶丹药，李峰都能稳定炼制，而且品质上乘。他的丹药比市面上的普遍高半个品级，价格却只贵两成，性价比极高。\n短短一个月，他攒下了三百块中品灵石。对散修来说，这已经是一笔不小的财富。他用其中一百块买了一套像样的丹炉——不再是石头坑了，而是一座真正的铜炉，虽然只是最低等的\u0026quot;凡器\u0026quot;级别，但比之前好了一百倍。\n剩下的两百块，他托人带回了老家。\n他不敢自己回去。他知道周子衡在盯着他。\n但好景不长。\n那天下午，李峰正在丹房里炼丹。他刚把灵芝投入丹炉，正准备收丹的时候，药铺老板老孙急匆匆地推门进来。\n\u0026ldquo;李峰，有人找你。\u0026ldquo;老孙的脸色有些难看，说话的时候眼睛往门外瞟了好几下。\n李峰心里一沉。他放下手中的铁棍，擦了擦手，走了出去。\n门外站着三个人。\n为首的那个人穿着一身月白长袍，面如冠玉，嘴角挂着一丝若有若无的笑意。\n周子衡。\n李峰的拳头瞬间攥紧了。\n周子衡身后跟着两个玄天宗的外门弟子，一个高瘦，一个矮胖。高瘦的那个手里握着一柄飞剑，剑鞘上刻着玄天宗的标记。矮胖的那个双手抱在胸前，一脸轻蔑地看着李峰。\n\u0026ldquo;好久不见，李师弟。\u0026ldquo;周子衡在李峰对面坐下，语气亲切得像老友叙旧。他从袖子里摸出一把折扇，慢悠悠地扇着，好像他不是来找茬的，而是来喝茶的。\n李峰没有坐。他站在原地，冷冷地看着周子衡。\n\u0026ldquo;听说你现在是丹师了？了不起。\u0026ldquo;周子衡赞叹道，眼睛扫了一眼李峰的丹房，\u0026ldquo;没有灵根还能炼丹，真是让人刮目相看。我当初确实没想到你还有这本事。\u0026rdquo;\n\u0026ldquo;你来做什么？\u0026ldquo;李峰的声音很冷，冷得像冬天的铁。\n\u0026ldquo;请你炼丹。\u0026ldquo;周子衡笑了笑，\u0026ldquo;我需要一批高品质的筑基丹——二十颗，品质至少中品以上。你是望仙镇最好的丹师，我当然来找你。\u0026rdquo;\n\u0026ldquo;不炼。\u0026rdquo;\n周子衡的笑容僵了一瞬。那一瞬间，李峰看到了他眼底闪过的一丝阴冷——那才是周子衡的真实面目。但很快，那丝阴冷就被笑意掩盖了。\n\u0026ldquo;李师弟，别这么绝情嘛。\u0026ldquo;周子衡说，\u0026ldquo;好歹同门一场。你就算不给我面子，也给宗主一个面子吧？\u0026rdquo;\n\u0026ldquo;同门？\u0026ldquo;李峰冷笑，\u0026ldquo;你夺我灵根的时候，怎么不说同门？\u0026rdquo;\n这话一出，旁边两个外门弟子的脸色都变了。他们显然听说过这件事，但从没当面听人提起过。在玄天宗内部，这件事是被严格封锁的秘密——毕竟，宗主的亲传弟子强夺同门灵根，传出去对宗门名声不好。\n周子衡的笑容消失了。\n他收起折扇，看着李峰，眼神变得冰冷。\n\u0026ldquo;那件事确实是师兄做得不对。\u0026ldquo;他说，语气里没有半点歉意，\u0026ldquo;但你想想，如果没有那件事，你还在玄天宗当一个普通弟子，每个月领几十块灵石的月例，一辈子也就炼气巅峰到头了。哪有今天这番成就？从某种意义上来说，你应该感谢我。\u0026rdquo;\n李峰攥紧了拳头。他的指节发出了\u0026quot;咔咔\u0026quot;的响声。\n\u0026ldquo;好了，不提旧事了。\u0026ldquo;周子衡站起身，重新展开折扇，\u0026ldquo;筑基丹的事，你考虑考虑。我给你三天时间。\u0026rdquo;\n他走到门口，忽然回头。\n\u0026ldquo;对了，忘了告诉你。\u0026ldquo;他的语气轻描淡写，像是在说今天的天气，\u0026ldquo;你老家那个村子最近好像闹山匪。挺严重的，听说已经死了好几个人了。我正好有弟子在附近巡视，可以顺便照应一下。当然，前提是……你让我满意。\u0026rdquo;\n李峰的脸色瞬间变了。\n他的身体开始发抖——不是因为害怕，而是因为愤怒。那种愤怒从脚底一直烧到头顶，烧得他眼前发红。\n但他没有动手。\n他知道，现在的他还打不过周子衡。\n周子衡似乎看穿了他的想法。他笑了笑，转身离去。月白长袍的衣角在门槛上扫过，依然没有沾上一丝尘土。\n第八章 别无选择 周子衡走后，李峰在丹房里坐了一整夜。\n他没有点灯。黑暗中，他能听到自己的心跳声，一下一下，沉重而有力。\n\u0026ldquo;他在威胁你。\u0026ldquo;墨渊说。\n\u0026ldquo;我知道。\u0026rdquo;\n\u0026ldquo;你打算怎么办？\u0026rdquo;\n\u0026ldquo;不知道。\u0026rdquo;\n墨渊沉默了一会儿。破庙外面传来几声虫鸣，夜风吹动了窗户上的破纸，发出\u0026quot;沙沙\u0026quot;的响声。\n\u0026ldquo;李峰，老夫活了三千多年，见过太多这种人。\u0026ldquo;墨渊终于开口，声音比平时更低沉，\u0026ldquo;他们就像毒蛇——你以为给它一点好处它就会走，但实际上，你喂它一次，它就会来第二次、第三次。你今天给他炼丹，明天他就要你的丹方，后天他就要你这个人。他的胃口永远填不满。\u0026rdquo;\n\u0026ldquo;可我父母……\u0026rdquo;\n\u0026ldquo;父母的事得另想办法。\u0026ldquo;墨渊说，\u0026ldquo;但你必须明白一件事——你现在最大的弱点，是没有自保之力。你只是一个丹师，不是修士。在修仙界，没有实力的丹师就是一只会下金蛋的鸡。谁都想抓，谁都想养。你飞不高，也跑不快，只能任人宰割。\u0026rdquo;\n李峰咬了咬牙。墨渊的话虽然难听，但每一个字都是事实。\n\u0026ldquo;《铸圣诀》第二重可以开始了。\u0026ldquo;墨渊的语气变得严肃，\u0026ldquo;碎骨。将全身骨骼用灵气打碎再重塑，完成后你的肉身强度将堪比筑基修士。到那时候，你至少有了自保之力——打不过金丹期，但跑还是跑得掉的。\u0026rdquo;\n\u0026ldquo;要多久？\u0026rdquo;\n\u0026ldquo;正常来说半年。碎骨的过程比裂肤复杂得多——你不是只碎一块骨头，而是全身两百零六块骨头全部要碎掉再长好。每一块骨头的碎裂和重生都需要时间。\u0026rdquo;\n\u0026ldquo;太久了。周子衡只给了三天。\u0026rdquo;\n\u0026ldquo;所以你需要用丹药辅助。\u0026ldquo;墨渊说，\u0026ldquo;续骨丹。这种丹药可以加速骨骼的碎裂和重生，把半年压缩到一个月。但续骨丹的主药是一味叫\u0026rsquo;寒玉髓\u0026rsquo;的稀有药材，望仙镇的药铺没有。\u0026rdquo;\n\u0026ldquo;哪里有？\u0026rdquo;\n\u0026ldquo;苍云山脉深处的幽蛇窟。\u0026ldquo;墨渊说，\u0026ldquo;那是一处天然溶洞，终年阴暗潮湿，正好适合寒玉髓生长。但幽蛇窟里有毒蛇——大量的毒蛇。最大的蛇王已经修炼到二阶，相当于人类金丹期修士。\u0026rdquo;\n\u0026ldquo;二阶……\u0026ldquo;李峰皱眉，\u0026ldquo;我现在连一阶后期的妖兽都打不过。\u0026rdquo;\n\u0026ldquo;所以我说你需要动脑子。\u0026ldquo;墨渊说，\u0026ldquo;硬拼你是找死。但你可以用巧——毒蛇再强也是畜生，畜生有畜生的弱点。你有丹药，有脑子，这就够了。\u0026rdquo;\n李峰深吸一口气。\n\u0026ldquo;我去。\u0026rdquo;\n第九章 幽蛇窟 幽蛇窟在苍云山脉深处，离望仙镇大约三十里。\n李峰花了大半天才走到。一路上翻了两座山，穿过一片密林，还差点迷路——好在墨渊的方向感极好，虽然只剩残魂，但三千年的经验不是白攒的。\n幽蛇窟的入口在一个山谷的底部，是一个天然形成的洞口，大约两人高，一人宽。洞口周围长满了苔藓和藤蔓，空气潮湿而阴冷，带着一股淡淡的腥味。\n\u0026ldquo;就是这里。\u0026ldquo;墨渊说，\u0026ldquo;寒玉髓应该在洞穴深处。小心行事，尽量不要惊动蛇群。\u0026rdquo;\n李峰点了点头，深吸一口气，走进了幽蛇窟。\n洞中比外面暗得多。光线从洞口照进来只能覆盖几丈远的地方，再往里就是一片漆黑。李峰从怀里摸出一颗夜明珠——那是他用五块中品灵石从杂货铺买的，亮度不高，但勉强能照亮脚下的路。\n地上到处都是蛇蜕和白骨。蛇蜕有粗有细，粗的有手臂那么大，说明洞里确实有大型毒蛇。白骨大部分是动物的——野兔、山鸡、甚至有几具鹿的骨架。但偶尔也能看到人骨。\n空气中弥漫着一股腥臭味，越往里走越浓。\n李峰小心翼翼地走着，每一步都踩得很轻。他的裂肤之后的新皮对周围的灵气波动非常敏感——他能感觉到附近有生命体在活动，虽然很模糊，但足以让他提前做出反应。\n走了大约一炷香的时间，他感觉到了一股微弱的冰凉灵气波动——那是寒玉髓特有的气息。\n他循着气息走去，在一处岩壁的缝隙里看到了寒玉髓。\n那是一种白色半透明的矿石，大约拳头大小，表面泛着淡淡的蓝光。它生长在岩壁的凹陷处，周围凝结着一层薄薄的水珠。\n但寒玉髓旁边，盘着一条蛇。\n那是一条通体漆黑的蛇，有手臂粗，三角形的头上有一对冰冷的竖瞳。它的鳞片在夜明珠的光芒下泛着幽暗的光泽，像是一层金属甲胄。\n黑蛇正在睡觉。它的身体盘成一个圆圈，头埋在身体中间，呼吸很缓慢——大约十个呼吸才起伏一次。\n\u0026ldquo;一阶后期的黑鳞蛇。\u0026ldquo;墨渊压低声音说，\u0026ldquo;这种蛇的毒性极强，被咬到的话，毒素会在三息之内让你的手臂失去知觉，十息之内蔓延全身。以你现在的体质，半个时辰内不解毒就会死。\u0026rdquo;\n\u0026ldquo;硬拼的话，能打过吗？\u0026rdquo;\n\u0026ldquo;胜负四六开。它六你四。\u0026rdquo;\n李峰沉默了一会儿。四六开，不够。他需要更高的胜率。\n\u0026ldquo;你有解毒丹吗？\u0026ldquo;墨渊问。\n\u0026ldquo;有三颗。\u0026ldquo;李峰从怀里摸出三个小瓷瓶，\u0026ldquo;但解毒丹只能压制毒素，不能完全清除。如果被咬到，我最多只有两刻钟的时间。\u0026rdquo;\n\u0026ldquo;两刻钟够了。\u0026ldquo;墨渊说，\u0026ldquo;你先含一颗解毒丹在嘴里，不要咽下去。然后用最快的速度冲过去，掰下寒玉髓就跑。黑鳞蛇的速度很快，但它的反应有一个间隙——它睡觉的时候体温会下降，肌肉会变得僵硬。从它醒来到完全活动开，大约需要两个呼吸的时间。你必须在这两个呼吸之内完成所有动作。\u0026rdquo;\n\u0026ldquo;两个呼吸……\u0026ldquo;李峰咬了咬牙，\u0026ldquo;够了。\u0026rdquo;\n他把一颗解毒丹含在嘴里，然后深吸一口气，调整了一下身体的状态。\n他的心跳开始加速，血液在血管里奔涌，裂肤之后的新皮微微发热——那是身体在为即将到来的爆发做准备。\n\u0026ldquo;跑！\u0026ldquo;墨渊喊道。\n李峰像一支离弦的箭一样冲了出去。\n黑鳞蛇被惊醒了。它的竖瞳猛地收缩，身体开始扭动——但正如墨渊所说，它需要两个呼吸的时间才能完全活动开。\n李峰在第一个呼吸之内冲到了寒玉髓面前。他伸出右手，一把抓住矿石，用力一掰——\n\u0026ldquo;咔嚓！\u0026rdquo;\n矿石断裂。\n寒玉髓到手。\n但就在这一瞬间，黑鳞蛇已经恢复了行动能力。它发出一声尖锐的嘶鸣——那声音刺耳得像金属刮玻璃——然后整个身体弹射而起，直扑李峰的面门。\n李峰来不及躲闪，只能用左胳膊硬挡。\n蛇牙深深地刺进了他的前臂。\n剧痛传来。那种痛不是普通的咬伤，而是像被烧红的铁钉钉进了骨头里。他感觉整条胳膊瞬间失去了知觉，从手指尖一直麻到肩膀。\n但他没有犹豫。\n他的右手还握着寒玉髓。他把寒玉髓塞进怀里，然后左手——虽然已经麻木了——从腰间拔出匕首，用尽全力刺进了黑蛇的七寸。\n匕首没入蛇身，直没到柄。\n黑蛇的身体剧烈扭动了几下，蛇尾抽打在李峰的身上，把他抽得踉跄了几步。但匕首插得很深，黑蛇越挣扎，伤口就越大。\n十几息之后，黑蛇终于不动了。\n李峰跌坐在地上，大口大口地喘着气。他的左臂已经肿成了原来的两倍大，皮肤变成了青紫色，从伤口处蔓延出一条黑色的纹路——那是蛇毒在血管里扩散的痕迹。\n他咬碎嘴里的解毒丹。一股清凉的药力从喉咙蔓延到全身，和蛇毒发生了激烈的对抗。他能感觉到毒素的蔓延速度明显减缓了，但并没有完全停止。\n\u0026ldquo;走，赶紧离开这里。\u0026ldquo;墨渊说，语气急促，\u0026ldquo;刚才那条蛇的嘶鸣会引来同伴。你现在中毒了，再来一条你扛不住。\u0026rdquo;\n李峰强撑着站起来。他的左臂已经完全不能动了，只能用右手扶着墙壁，跌跌撞撞地往外走。\n一路上他遇到了三条小蛇——都是普通的毒蛇，一阶初期，被他用匕首吓跑了。\n当他终于走出幽蛇窟的时候，天已经黑了。\n他靠着洞口外面的一块大石头坐下，大口大口地呼吸着外面的新鲜空气。夜风吹在他的脸上，凉飕飕的，让他清醒了不少。\n左臂依然肿着，但解毒丹的作用下，蛇毒已经被压制住了。他知道这只是暂时的——如果不尽快清除余毒，蛇毒还会继续扩散。\n\u0026ldquo;你做得不错。\u0026ldquo;墨渊说，\u0026ldquo;比我想象的要冷静。\u0026rdquo;\n李峰没有说话。他只是低头看了看怀里的寒玉髓——白色半透明的矿石在月光下泛着淡淡的蓝光，像一块小小的月亮。\n他笑了笑。\n然后他强撑着站起来，一瘸一拐地走上了回望仙镇的路。\n（第三篇完，第四篇《碎骨》敬请期待）\n","permalink":"https://skyrk.xyz/posts/novel/part3/","summary":"\u003ch2 id=\"第七章-不速之客\"\u003e第七章 不速之客\u003c/h2\u003e\n\u003cp\u003e丹会之后，李峰的名声迅速传开。\u003c/p\u003e\n\u003cp\u003e找他炼丹的人络绎不绝。聚元丹、回元丹、培元丹——只要中低阶丹药，李峰都能稳定炼制，而且品质上乘。他的丹药比市面上的普遍高半个品级，价格却只贵两成，性价比极高。\u003c/p\u003e\n\u003cp\u003e短短一个月，他攒下了三百块中品灵石。对散修来说，这已经是一笔不小的财富。他用其中一百块买了一套像样的丹炉——不再是石头坑了，而是一座真正的铜炉，虽然只是最低等的\u0026quot;凡器\u0026quot;级别，但比之前好了一百倍。\u003c/p\u003e\n\u003cp\u003e剩下的两百块，他托人带回了老家。\u003c/p\u003e\n\u003cp\u003e他不敢自己回去。他知道周子衡在盯着他。\u003c/p\u003e\n\u003cp\u003e但好景不长。\u003c/p\u003e\n\u003cp\u003e那天下午，李峰正在丹房里炼丹。他刚把灵芝投入丹炉，正准备收丹的时候，药铺老板老孙急匆匆地推门进来。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;李峰，有人找你。\u0026ldquo;老孙的脸色有些难看，说话的时候眼睛往门外瞟了好几下。\u003c/p\u003e\n\u003cp\u003e李峰心里一沉。他放下手中的铁棍，擦了擦手，走了出去。\u003c/p\u003e\n\u003cp\u003e门外站着三个人。\u003c/p\u003e\n\u003cp\u003e为首的那个人穿着一身月白长袍，面如冠玉，嘴角挂着一丝若有若无的笑意。\u003c/p\u003e\n\u003cp\u003e周子衡。\u003c/p\u003e\n\u003cp\u003e李峰的拳头瞬间攥紧了。\u003c/p\u003e\n\u003cp\u003e周子衡身后跟着两个玄天宗的外门弟子，一个高瘦，一个矮胖。高瘦的那个手里握着一柄飞剑，剑鞘上刻着玄天宗的标记。矮胖的那个双手抱在胸前，一脸轻蔑地看着李峰。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;好久不见，李师弟。\u0026ldquo;周子衡在李峰对面坐下，语气亲切得像老友叙旧。他从袖子里摸出一把折扇，慢悠悠地扇着，好像他不是来找茬的，而是来喝茶的。\u003c/p\u003e\n\u003cp\u003e李峰没有坐。他站在原地，冷冷地看着周子衡。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;听说你现在是丹师了？了不起。\u0026ldquo;周子衡赞叹道，眼睛扫了一眼李峰的丹房，\u0026ldquo;没有灵根还能炼丹，真是让人刮目相看。我当初确实没想到你还有这本事。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;你来做什么？\u0026ldquo;李峰的声音很冷，冷得像冬天的铁。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;请你炼丹。\u0026ldquo;周子衡笑了笑，\u0026ldquo;我需要一批高品质的筑基丹——二十颗，品质至少中品以上。你是望仙镇最好的丹师，我当然来找你。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;不炼。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e周子衡的笑容僵了一瞬。那一瞬间，李峰看到了他眼底闪过的一丝阴冷——那才是周子衡的真实面目。但很快，那丝阴冷就被笑意掩盖了。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;李师弟，别这么绝情嘛。\u0026ldquo;周子衡说，\u0026ldquo;好歹同门一场。你就算不给我面子，也给宗主一个面子吧？\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;同门？\u0026ldquo;李峰冷笑，\u0026ldquo;你夺我灵根的时候，怎么不说同门？\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e这话一出，旁边两个外门弟子的脸色都变了。他们显然听说过这件事，但从没当面听人提起过。在玄天宗内部，这件事是被严格封锁的秘密——毕竟，宗主的亲传弟子强夺同门灵根，传出去对宗门名声不好。\u003c/p\u003e\n\u003cp\u003e周子衡的笑容消失了。\u003c/p\u003e\n\u003cp\u003e他收起折扇，看着李峰，眼神变得冰冷。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;那件事确实是师兄做得不对。\u0026ldquo;他说，语气里没有半点歉意，\u0026ldquo;但你想想，如果没有那件事，你还在玄天宗当一个普通弟子，每个月领几十块灵石的月例，一辈子也就炼气巅峰到头了。哪有今天这番成就？从某种意义上来说，你应该感谢我。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e李峰攥紧了拳头。他的指节发出了\u0026quot;咔咔\u0026quot;的响声。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;好了，不提旧事了。\u0026ldquo;周子衡站起身，重新展开折扇，\u0026ldquo;筑基丹的事，你考虑考虑。我给你三天时间。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e他走到门口，忽然回头。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;对了，忘了告诉你。\u0026ldquo;他的语气轻描淡写，像是在说今天的天气，\u0026ldquo;你老家那个村子最近好像闹山匪。挺严重的，听说已经死了好几个人了。我正好有弟子在附近巡视，可以顺便照应一下。当然，前提是……你让我满意。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e李峰的脸色瞬间变了。\u003c/p\u003e\n\u003cp\u003e他的身体开始发抖——不是因为害怕，而是因为愤怒。那种愤怒从脚底一直烧到头顶，烧得他眼前发红。\u003c/p\u003e\n\u003cp\u003e但他没有动手。\u003c/p\u003e\n\u003cp\u003e他知道，现在的他还打不过周子衡。\u003c/p\u003e\n\u003cp\u003e周子衡似乎看穿了他的想法。他笑了笑，转身离去。月白长袍的衣角在门槛上扫过，依然没有沾上一丝尘土。\u003c/p\u003e","title":"李峰修仙传 · 第三篇：暗流"},{"content":"第十章 碎骨 李峰回到望仙镇的时候，已经是第二天傍晚了。\n他的左臂依然肿着，蛇毒虽然被解毒丹压制住了，但没有完全清除。从伤口处蔓延出的黑色纹路已经爬到了手肘的位置，每走一步都会传来一阵刺痛。\n他没有去找大夫——望仙镇的大夫都是修仙者，收费贵得离谱。他只是用草药简单包扎了一下，然后直接回了破庙。\n\u0026ldquo;你必须尽快开始第二重。\u0026ldquo;墨渊说，语气比平时更加严肃，\u0026ldquo;蛇毒正在侵蚀你的经脉。虽然你没有灵根，经脉已经废了大半，但如果毒素蔓延到骨髓，你就真的完了。碎骨的过程会将你全身的骨骼打碎重塑，顺便把骨髓里的毒素一起排出去。\u0026rdquo;\n\u0026ldquo;可我还没准备好——\u0026rdquo;\n\u0026ldquo;没有时间准备了。\u0026ldquo;墨渊打断他，\u0026ldquo;你只有三天。三天之后蛇毒就会侵入骨髓。到时候就算大罗金仙来了也救不了你。\u0026rdquo;\n李峰咬了咬牙。\n\u0026ldquo;那就现在开始。\u0026rdquo;\n他把寒玉髓碾碎，和着清水吞了下去。\n一股冰寒的药力从胃里蔓延开来，像一条冰冷的蛇在他的身体里游走。药力顺着血管扩散到全身，最后汇聚到了骨骼。\n然后，他的骨头开始碎裂。\n先是右手的小指。\n他听到了一声细微的\u0026quot;咔嚓\u0026rdquo;——像是有人在他体内掰断了一根树枝。然后剧痛传来，那种痛不是皮肉之痛，而是从骨头深处渗出来的，像是有人在他的骨髓里点了一把火。\n然后是无名指。中指。食指。拇指。\n\u0026ldquo;咔嚓咔嚓咔嚓\u0026rdquo;——碎裂的声音连成了一片。\n李峰倒在了地上。\n他的身体在剧烈地抽搐，嘴巴张得老大，但发不出声音——因为他的下颌骨也碎了。\n疼痛从手指蔓延到手腕，从手腕蔓延到前臂，从前臂蔓延到上臂，从上臂蔓延到肩膀。然后是肋骨——他能感觉到一根一根地断裂，像是有人在拆一座房子，从房梁开始，一根一根地抽掉。\n他的意识在剧痛中变得模糊。\n恍惚间，他看到了父亲的脸。\n那是一张饱经风霜的脸，皱纹像刀刻的一样深，皮肤被太阳晒得黝黑。父亲蹲在牛棚门口，手里拿着旱烟袋，一口一口地抽着。烟雾缭绕中，父亲的眼睛看着远方——那是一个农人对未来的期盼，也是一个父亲对儿子的牵挂。\n\u0026ldquo;峰儿，咱家就指望你了。\u0026rdquo;\n然后他看到了母亲。\n母亲坐在油灯下，眯着眼睛缝棉衣。她的手指被针扎了好几次，但她只是吮了吮手指，然后继续缝。灯光照在她的脸上，照出了她眼角的皱纹和鬓角的白发——她才四十出头，但看起来像五十多岁的人。\n针脚歪歪扭扭的。但每一针每一线，都缝进了她的全部心血。\n然后他看到了周子衡。\n那张得意的笑脸。那双居高临下的眼睛。那句\u0026quot;弱者的恨一文不值\u0026rdquo;。\n\u0026ldquo;我不能死。\u0026ldquo;李峰在心里说。他的意识已经模糊到了极点，但这个念头却清晰得像一道闪电。\n\u0026ldquo;我还没有报仇。我还没有让父母过上好日子。我不能死在这里。\u0026rdquo;\n寒玉髓的药力开始发挥作用了。\n碎裂的骨头开始重新生长。新的骨头从断裂处一点一点地长出来，像春天的竹笋一样破土而出。新骨的颜色和旧骨不同——旧骨是灰白色的，新骨却是玉白色的，表面泛着淡淡的光泽。\n碎裂，重生。碎裂，重生。\n这个过程像潮水一样反复进行。每一次碎裂都带来剧痛，每一次重生都带来一丝缓解。痛与缓解交替出现，让李峰的意识在清醒和昏迷之间反复摇摆。\n他不知道过了多久。\n也许是一天，也许是三天，也许是一个月。时间在这种极端的痛苦中失去了意义。他唯一能做的就是咬紧牙关——虽然下颌骨已经碎了，但他的意志没有碎。\n当他终于睁开眼睛的时候，他看到的是破庙屋顶上的那个破洞。阳光从破洞里照进来，照在他的脸上，暖洋洋的。\n他试着动了动手指。\n能动了。\n他试着握了握拳头。\n\u0026ldquo;咔嚓\u0026rdquo;——他不小心把身下的一块石板捏碎了。\n\u0026ldquo;第二重，成了。\u0026ldquo;墨渊的声音里带着掩饰不住的兴奋，\u0026ldquo;小子，你知道你经历了多久吗？\u0026rdquo;\n\u0026ldquo;多久？\u0026rdquo;\n\u0026ldquo;三天三夜。\u0026ldquo;墨渊说，\u0026ldquo;你的身体在这三天里碎裂了七次，重生了七次。每一次碎裂都比上一次更彻底，每一次重生都比上一次更强韧。你现在全身的骨骼密度是普通人的十倍，硬度堪比精钢。配合《铸圣诀》的战斗技法，你甚至可以和金丹初期的修士一战。\u0026rdquo;\n李峰慢慢坐起身。\n他感觉自己的身体变了。不是表面的变化——他的皮肤还是裂肤之后的新皮，看起来和之前没什么两样。但内在完全不同了。\n他感觉自己的骨头像是被换成了钢铁。每一块骨头都沉甸甸的，蕴含着惊人的力量。他试着站起来——脚刚踩在地上，地面就被他踩出了一个坑。\n\u0026ldquo;轻点！\u0026ldquo;墨渊喊道，\u0026ldquo;你现在的力量是之前的十倍，得重新学习控制。不然你连路都走不了——每一步都会把地面踩碎。\u0026rdquo;\n李峰花了半个时辰才基本掌握了新的力量。\n他走到破庙门口，看着外面的天空。\n天很蓝，云很白。\n三天前，他差点死在这座破庙里。\n现在，他比任何时候都更强大。\n\u0026ldquo;周子衡给的三天已经过了。\u0026ldquo;李峰说。\n\u0026ldquo;所以你得做决定了。\u0026ldquo;墨渊说，\u0026ldquo;跑，还是战？\u0026rdquo;\n李峰的眼神变得冰冷。\n\u0026ldquo;战。\u0026rdquo;\n第十一章 正面交锋 李峰回到望仙镇的时候，发现自己的丹房已经被人砸了。\n药材扔了一地，铜炉被掀翻在地，炉壁上被砸出了一个大坑。墙上用红色颜料写着一个大字——\u0026ldquo;死\u0026rdquo;。字迹歪歪扭扭的，像是写的人很匆忙，也可能是故意写得潦草来表示不屑。\n\u0026ldquo;看来周子衡已经等不及了。\u0026ldquo;墨渊说。\n李峰没有说话。他蹲下身，默默收拾了还能用的药材，用布包好，塞进怀里。然后他把铜炉扶正，检查了一下——炉壁上的坑不影响使用，只是丑了点。\n他走出了丹房。\n望仙镇的街道上人来人往，和往常一样热闹。有人在路边摆摊卖灵材，有人在茶馆里喝茶聊天，有人在天上飞来飞去——那是筑基期以上的修士才有的本事。\n李峰穿过人群，来到了周子衡在望仙镇的宅院。\n那是一座气派的宅子，门口挂着\u0026quot;周府\u0026quot;的牌匾，两边各站着一个外门弟子。高瘦的那个叫张远，矮胖的那个叫王虎，都是炼气后期的修为。\n\u0026ldquo;周子衡呢？\u0026ldquo;李峰问。\n张远看了他一眼，脸上露出轻蔑的笑容：\u0026ldquo;你谁啊？周师兄是你想见就见的？\u0026rdquo;\n李峰没有废话。\n他出拳了。\n那一拳很快。快到张远的眼睛还没来得及眨，拳头就已经到了他的胸口。\n\u0026ldquo;砰！\u0026rdquo;\n张远像一只被拍飞的苍蝇，整个人倒飞出去三丈远，撞在了身后的院墙上。墙壁被撞出了一个人形的凹坑，碎石簌簌地往下掉。张远滑落到地上，嘴角溢出一丝鲜血，眼睛翻白——晕了。\n王虎吓傻了。\n他张着嘴巴，看着李峰，像是看到了一个怪物。他想跑，但腿软了，跑不动。\n\u0026ldquo;周子衡呢？\u0026ldquo;李峰又问了一遍。\n王虎哆哆嗦嗦地指了指里面：\u0026ldquo;在……在客厅……\u0026rdquo;\n李峰走进了院子。\n院子很大，种着几棵灵树，树上结着拳头大小的灵果。院子中央有一个小型聚灵阵，灵气浓郁得几乎化为实质。这种阵法在玄天宗内部很常见，但在望仙镇这种小地方，算是很奢侈的配置了。\n客厅的门开着。\n周子衡正坐在客厅里喝茶。\n他看到李峰进来，先是一愣——大概没想到李峰敢直接打上门来。但很快，他就恢复了那副从容不迫的表情。\n\u0026ldquo;李师弟。\u0026ldquo;他放下茶杯，笑了笑，\u0026ldquo;你这是什么意思？\u0026rdquo;\n\u0026ldquo;我来给你答复。\u0026ldquo;李峰说，\u0026ldquo;我不炼。\u0026rdquo;\n周子衡的笑容消失了。他看着李峰，眼神变得冰冷。\n\u0026ldquo;你确定？你父母——\u0026rdquo;\n\u0026ldquo;你威胁不了我了。\u0026ldquo;李峰打断他，\u0026ldquo;我已经让人把父母转移到了安全的地方。你的手伸不了那么长。\u0026rdquo;\n这其实是假话。李峰根本没有时间转移父母。但他赌周子衡不敢真的动手——他需要的是一个听话的丹师，不是一具尸体。而且周子衡是一个谨慎的人，他不会为了泄愤去做没有利益的事情。\n周子衡盯着李峰看了很久。\n\u0026ldquo;你变了。\u0026ldquo;他终于说，\u0026ldquo;你的眼神不一样了。以前你看我的时候，眼睛里只有恐惧和恨。现在……\u0026ldquo;他顿了顿，\u0026ldquo;现在你看我的时候，像是在看一只蚂蚁。\u0026rdquo;\n\u0026ldquo;因为你确实是一只蚂蚁。\u0026ldquo;李峰说。\n周子衡的脸色变得铁青。\n他站起身，身上的灵压开始攀升。金丹后期的灵压像一座无形的大山，压在李峰的身上。如果是三个月前的李峰，这种灵压足以让他跪在地上起不来。\n但现在——\n李峰纹丝不动。\n《铸圣诀》第二重的肉身，对灵压有极强的抵抗力。灵压本质上是一种精神层面的压迫，而碎骨重生后的肉身不仅强化了身体，也强化了神魂。\n\u0026ldquo;既然如此……\u0026ldquo;周子衡的眼中闪过一丝狠厉，\u0026ldquo;那就别怪我不客气了。\u0026rdquo;\n他出手了。\n一掌拍出，掌风呼啸，带着金丹期修士特有的灵力波动。那一掌的力量足以将一块巨石拍成粉末。\n李峰没有躲。\n他迎着那一掌，一拳打了过去。\n拳掌相交。\n\u0026ldquo;轰！\u0026rdquo;\n一股气浪从两人之间炸开。客厅里的桌椅被气浪掀飞，茶杯茶壶摔了一地。地面震出了一道道裂缝，从两人脚下向四周蔓延。\n周子衡的脸色变了。\n他感觉自己的手掌像拍在了一块精钢上。虎口发麻，整条胳膊都在颤抖，骨头\u0026quot;咯吱咯吱\u0026quot;地响。\n\u0026ldquo;你的肉身……怎么可能？\u0026ldquo;周子衡不敢置信地看着李峰。三个月前，李峰还是一个手无缚鸡之力的废人。现在，他居然能硬接金丹后期的一掌？\n李峰没有回答。他再次出拳——《铸圣诀》的战斗技法，崩山拳。\n崩山拳是墨渊根据锻体之道创造的拳法，核心理念只有一个——以力破巧。不需要花哨的招式，不需要灵力的加持，只需要一拳比一拳更重、更快、更狠。\n第一拳，周子衡侧身躲过。\n第二拳，周子衡用灵力护体挡住了，但被震得后退了一步。\n第三拳，李峰变招——他没有直接打向周子衡，而是一拳打在了地面上。\n\u0026ldquo;轰！\u0026rdquo;\n地面炸裂，碎石飞溅。周子衡的脚下突然失去了平衡，身体往前一倾。\n就在这一瞬间，李峰的第四拳到了。\n这一拳打在了周子衡的胸口。\n\u0026ldquo;咔嚓\u0026rdquo;——胸骨碎裂的声音。\n周子衡喷出一口鲜血，整个人倒飞出去，撞穿了客厅的墙壁，摔在了院子里。他挣扎着想爬起来，但胸口的剧痛让他又跌了回去。\n李峰走出客厅，站在周子衡面前。\n周子衡仰头看着他，眼中满是惊恐和不敢置信。\n\u0026ldquo;你……你到底是什么怪物？\u0026rdquo;\n李峰蹲下身，和周子衡平视。\n\u0026ldquo;我不是怪物。\u0026ldquo;他说，\u0026ldquo;我是李峰。就是那个被你夺走灵根、被你赶出宗门、被你叫\u0026rsquo;废物\u0026rsquo;的李峰。\u0026rdquo;\n他站起身，转身离去。\n\u0026ldquo;你怎么不杀他？\u0026ldquo;墨渊问。\n\u0026ldquo;杀了他，玄天宗会追杀我。\u0026ldquo;李峰说，\u0026ldquo;我现在还没有和整个宗门抗衡的实力。\u0026rdquo;\n\u0026ldquo;那你打算怎么办？\u0026rdquo;\n李峰抬头看向远方。望仙镇的尽头是连绵的苍云山脉，山脉的那一边是更广阔的天地。\n\u0026ldquo;离开望仙镇。\u0026ldquo;他说，\u0026ldquo;去更大的世界，变得更强。等我足够强了，我会回来的。\u0026rdquo;\n（第四篇完，第五篇《天元》敬请期待）\n","permalink":"https://skyrk.xyz/posts/novel/part4/","summary":"\u003ch2 id=\"第十章-碎骨\"\u003e第十章 碎骨\u003c/h2\u003e\n\u003cp\u003e李峰回到望仙镇的时候，已经是第二天傍晚了。\u003c/p\u003e\n\u003cp\u003e他的左臂依然肿着，蛇毒虽然被解毒丹压制住了，但没有完全清除。从伤口处蔓延出的黑色纹路已经爬到了手肘的位置，每走一步都会传来一阵刺痛。\u003c/p\u003e\n\u003cp\u003e他没有去找大夫——望仙镇的大夫都是修仙者，收费贵得离谱。他只是用草药简单包扎了一下，然后直接回了破庙。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;你必须尽快开始第二重。\u0026ldquo;墨渊说，语气比平时更加严肃，\u0026ldquo;蛇毒正在侵蚀你的经脉。虽然你没有灵根，经脉已经废了大半，但如果毒素蔓延到骨髓，你就真的完了。碎骨的过程会将你全身的骨骼打碎重塑，顺便把骨髓里的毒素一起排出去。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;可我还没准备好——\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;没有时间准备了。\u0026ldquo;墨渊打断他，\u0026ldquo;你只有三天。三天之后蛇毒就会侵入骨髓。到时候就算大罗金仙来了也救不了你。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e李峰咬了咬牙。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;那就现在开始。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e他把寒玉髓碾碎，和着清水吞了下去。\u003c/p\u003e\n\u003cp\u003e一股冰寒的药力从胃里蔓延开来，像一条冰冷的蛇在他的身体里游走。药力顺着血管扩散到全身，最后汇聚到了骨骼。\u003c/p\u003e\n\u003cp\u003e然后，他的骨头开始碎裂。\u003c/p\u003e\n\u003cp\u003e先是右手的小指。\u003c/p\u003e\n\u003cp\u003e他听到了一声细微的\u0026quot;咔嚓\u0026rdquo;——像是有人在他体内掰断了一根树枝。然后剧痛传来，那种痛不是皮肉之痛，而是从骨头深处渗出来的，像是有人在他的骨髓里点了一把火。\u003c/p\u003e\n\u003cp\u003e然后是无名指。中指。食指。拇指。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;咔嚓咔嚓咔嚓\u0026rdquo;——碎裂的声音连成了一片。\u003c/p\u003e\n\u003cp\u003e李峰倒在了地上。\u003c/p\u003e\n\u003cp\u003e他的身体在剧烈地抽搐，嘴巴张得老大，但发不出声音——因为他的下颌骨也碎了。\u003c/p\u003e\n\u003cp\u003e疼痛从手指蔓延到手腕，从手腕蔓延到前臂，从前臂蔓延到上臂，从上臂蔓延到肩膀。然后是肋骨——他能感觉到一根一根地断裂，像是有人在拆一座房子，从房梁开始，一根一根地抽掉。\u003c/p\u003e\n\u003cp\u003e他的意识在剧痛中变得模糊。\u003c/p\u003e\n\u003cp\u003e恍惚间，他看到了父亲的脸。\u003c/p\u003e\n\u003cp\u003e那是一张饱经风霜的脸，皱纹像刀刻的一样深，皮肤被太阳晒得黝黑。父亲蹲在牛棚门口，手里拿着旱烟袋，一口一口地抽着。烟雾缭绕中，父亲的眼睛看着远方——那是一个农人对未来的期盼，也是一个父亲对儿子的牵挂。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;峰儿，咱家就指望你了。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e然后他看到了母亲。\u003c/p\u003e\n\u003cp\u003e母亲坐在油灯下，眯着眼睛缝棉衣。她的手指被针扎了好几次，但她只是吮了吮手指，然后继续缝。灯光照在她的脸上，照出了她眼角的皱纹和鬓角的白发——她才四十出头，但看起来像五十多岁的人。\u003c/p\u003e\n\u003cp\u003e针脚歪歪扭扭的。但每一针每一线，都缝进了她的全部心血。\u003c/p\u003e\n\u003cp\u003e然后他看到了周子衡。\u003c/p\u003e\n\u003cp\u003e那张得意的笑脸。那双居高临下的眼睛。那句\u0026quot;弱者的恨一文不值\u0026rdquo;。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;我不能死。\u0026ldquo;李峰在心里说。他的意识已经模糊到了极点，但这个念头却清晰得像一道闪电。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;我还没有报仇。我还没有让父母过上好日子。我不能死在这里。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e寒玉髓的药力开始发挥作用了。\u003c/p\u003e\n\u003cp\u003e碎裂的骨头开始重新生长。新的骨头从断裂处一点一点地长出来，像春天的竹笋一样破土而出。新骨的颜色和旧骨不同——旧骨是灰白色的，新骨却是玉白色的，表面泛着淡淡的光泽。\u003c/p\u003e\n\u003cp\u003e碎裂，重生。碎裂，重生。\u003c/p\u003e\n\u003cp\u003e这个过程像潮水一样反复进行。每一次碎裂都带来剧痛，每一次重生都带来一丝缓解。痛与缓解交替出现，让李峰的意识在清醒和昏迷之间反复摇摆。\u003c/p\u003e\n\u003cp\u003e他不知道过了多久。\u003c/p\u003e\n\u003cp\u003e也许是一天，也许是三天，也许是一个月。时间在这种极端的痛苦中失去了意义。他唯一能做的就是咬紧牙关——虽然下颌骨已经碎了，但他的意志没有碎。\u003c/p\u003e\n\u003cp\u003e当他终于睁开眼睛的时候，他看到的是破庙屋顶上的那个破洞。阳光从破洞里照进来，照在他的脸上，暖洋洋的。\u003c/p\u003e\n\u003cp\u003e他试着动了动手指。\u003c/p\u003e\n\u003cp\u003e能动了。\u003c/p\u003e\n\u003cp\u003e他试着握了握拳头。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;咔嚓\u0026rdquo;——他不小心把身下的一块石板捏碎了。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;第二重，成了。\u0026ldquo;墨渊的声音里带着掩饰不住的兴奋，\u0026ldquo;小子，你知道你经历了多久吗？\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;多久？\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;三天三夜。\u0026ldquo;墨渊说，\u0026ldquo;你的身体在这三天里碎裂了七次，重生了七次。每一次碎裂都比上一次更彻底，每一次重生都比上一次更强韧。你现在全身的骨骼密度是普通人的十倍，硬度堪比精钢。配合《铸圣诀》的战斗技法，你甚至可以和金丹初期的修士一战。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e李峰慢慢坐起身。\u003c/p\u003e\n\u003cp\u003e他感觉自己的身体变了。不是表面的变化——他的皮肤还是裂肤之后的新皮，看起来和之前没什么两样。但内在完全不同了。\u003c/p\u003e\n\u003cp\u003e他感觉自己的骨头像是被换成了钢铁。每一块骨头都沉甸甸的，蕴含着惊人的力量。他试着站起来——脚刚踩在地上，地面就被他踩出了一个坑。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;轻点！\u0026ldquo;墨渊喊道，\u0026ldquo;你现在的力量是之前的十倍，得重新学习控制。不然你连路都走不了——每一步都会把地面踩碎。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e李峰花了半个时辰才基本掌握了新的力量。\u003c/p\u003e\n\u003cp\u003e他走到破庙门口，看着外面的天空。\u003c/p\u003e\n\u003cp\u003e天很蓝，云很白。\u003c/p\u003e\n\u003cp\u003e三天前，他差点死在这座破庙里。\u003c/p\u003e\n\u003cp\u003e现在，他比任何时候都更强大。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;周子衡给的三天已经过了。\u0026ldquo;李峰说。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;所以你得做决定了。\u0026ldquo;墨渊说，\u0026ldquo;跑，还是战？\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e李峰的眼神变得冰冷。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;战。\u0026rdquo;\u003c/p\u003e","title":"李峰修仙传 · 第四篇：碎骨"},{"content":"第十二章 离别 离开望仙镇那天，天还没亮。\n李峰没有告诉任何人。他不想解释，也不想面对那些可能会出现的挽留。他不擅长告别——从小就不擅长。小时候二狗子一家搬走的时候，他躲在老槐树后面看了半天，愣是没走出去说一声再见。\n他在药铺门口放了一封信和一个小包裹。信里是一张聚元丹的丹方，作为对孙老板这几个月照顾他的感谢。包裹里是三十块中品灵石——他能拿出来的最多了。\n然后他背着一个简单的包袱，走上了通往天元大陆核心区域的大路。\n包袱里只有几件换洗的衣服、一把匕首、三颗解毒丹、五颗聚元丹，和母亲缝的那件棉衣。棉衣已经很旧了，上面还有他当初灵根被夺时留下的血迹，洗了好几遍都没洗掉。但他舍不得扔。\n\u0026ldquo;天元大陆的核心是什么地方？\u0026ldquo;李峰一边走一边问。\n\u0026ldquo;中州。\u0026ldquo;墨渊说，\u0026ldquo;整片大陆的中心，修仙者最密集的地方。望仙镇在中州人眼里，不过是穷乡僻壤——就像你们村在望仙镇人眼里一样。中州有元婴期的老怪物，有传说中的化神大能，有各种你听都没听过的天材地宝。也有更多的危险。\u0026rdquo;\n\u0026ldquo;你去过吗？\u0026rdquo;\n\u0026ldquo;三千年前去过。\u0026ldquo;墨渊的声音里带着一丝怀念，\u0026ldquo;那时候老夫在中州也算是有头有脸的人物。找我炼体的人排到城门外，送的灵石堆成山。可惜后来渡劫失败，一切都成了过眼云烟。\u0026rdquo;\n李峰沉默了一会儿。\n\u0026ldquo;墨渊，你为什么选择帮我？\u0026ldquo;他问出了一个藏在心里很久的问题，\u0026ldquo;你在我身上待了三个月，一直没出声。直到我灵根被夺、走投无路的时候，你才开口。你是故意等那个时候的吗？\u0026rdquo;\n墨渊沉默了很久。\n\u0026ldquo;是。\u0026ldquo;他终于说，\u0026ldquo;老夫在你身上待了三年。从你母亲把碎玉缝进棉衣的那天起，老夫就在了。你入门修炼的时候，老夫在观察你。你被长老们夸赞的时候，老夫在观察你。你被周子衡设计陷害的时候，老夫也在观察你。\u0026rdquo;\n\u0026ldquo;为什么不出声？\u0026rdquo;\n\u0026ldquo;因为你不需要。\u0026ldquo;墨渊说，\u0026ldquo;你有灵根，有天赋，有前途。你不需要一个残魂来指手画脚。老夫那时候想的是——如果这小子一路顺风顺水，老夫就安安静静地待着，等他飞升的那一天，老夫的残魂说不定也能沾点光。\u0026rdquo;\n\u0026ldquo;可后来我灵根被夺了。\u0026rdquo;\n\u0026ldquo;是。\u0026ldquo;墨渊说，\u0026ldquo;那一刻老夫就知道，你和老夫是一样的人。我们都曾经站在高处，都被命运狠狠地摔了下来。区别在于——老夫当年摔下来的时候，身边一个人都没有。而你摔下来的时候，老夫在。\u0026rdquo;\n他的声音变得柔和了一些——这是李峰第一次听到墨渊用这种语气说话。\n\u0026ldquo;你像老夫年轻的时候。倔，能忍，不服输。但你有一样东西，是老夫当年没有的。\u0026rdquo;\n\u0026ldquo;什么？\u0026rdquo;\n\u0026ldquo;牵挂。\u0026ldquo;墨渊说，\u0026ldquo;老夫年轻时一心求道，六亲不认。父母死了没回去看一眼，兄弟找我帮忙我理都不理，朋友背叛我我就把他们全杀了。到最后渡劫的时候才发现，心中无牵无挂，反而成了最大的心魔——因为没有什么东西能让我留恋这个世界，天劫一来，我就放弃了。\u0026rdquo;\n他顿了顿。\n\u0026ldquo;你不一样。你有父母，有仇恨，有放不下的东西。这些东西会成为你的弱点——你会因为牵挂而犹豫，因为仇恨而冲动。但它们也会成为你的力量——你会因为牵挂而坚持，因为仇恨而清醒。心魔最怕的就是一个清醒的人。\u0026rdquo;\n李峰没有说话，只是加快了脚步。\n天边已经泛起了鱼肚白。新的一天开始了。\n第十三章 中州 中州比李峰想象的还要大。\n光是从望仙镇到中州边界就走了整整一个月。一路上他穿过了三座山脉、两条大河、一片荒漠。每到一个地方，他都能看到不同的修仙者、不同的风俗、不同的规矩。\n他第一次见到了灵兽——一种长着翅膀的白马，被人骑着从天上飞过。他第一次见到了修仙者的集市——比望仙镇大十倍，卖的东西他有一大半不认识。他第一次见到了修士之间的战斗——两个金丹期的修士在半空中打得天昏地暗，灵力波动震碎了方圆百丈的地面。\n他没有掺和。他只是默默地看，默默地学，默默地走。\n边界处有一座巨城——天元城。\n这是中州最大的城市，城墙高达百丈，用一种灰白色的巨石砌成，上面刻满了复杂的防御阵法。阵法的纹路在阳光下泛着淡淡的金光，散发着一股让人心悸的威压。\n城门口排着长长的队伍，大部分是修仙者，也有少数凡人。守门的是四个穿着铠甲的修士，修为都在筑基后期以上，一脸严肃地检查着每一个进城的人。\n李峰排了半个时辰的队，终于进了城。\n一进城门，他就被眼前的景象震住了。\n宽阔的街道足有十丈宽，两旁是密密麻麻的店铺。卖丹药的店铺门口摆着一排排晶莹剔透的丹药，每一颗都散发着诱人的药香。卖法器的店铺里挂满了各种飞剑、法杖、护盾，有的在半空中缓缓旋转，有的发出嗡嗡的低鸣。卖灵兽的店铺门口蹲着一只巨大的青色狮子，足有一人高，正懒洋洋地打着哈欠。\n更让他震惊的是，这里修仙者的修为普遍很高。\n他在望仙镇见过的最强修士不过是金丹期，但在这里，金丹期修士只能算\u0026quot;普通\u0026rdquo;。他随便在街上走了几步，就感觉到了好几股强大的灵压——有元婴期的，甚至可能有更高的。\n\u0026ldquo;看到那个穿灰袍的老者了吗？\u0026ldquo;墨渊说，\u0026ldquo;元婴初期。他在看你——别慌，他只是好奇。\u0026rdquo;\n\u0026ldquo;那个骑白鹤的女子呢？\u0026rdquo;\n\u0026ldquo;元婴中期。她的白鹤是三阶灵兽，比她本人还值钱。\u0026rdquo;\n\u0026ldquo;天上飞的那个……\u0026rdquo;\n\u0026ldquo;化神期。\u0026ldquo;墨渊的声音变得严肃，\u0026ldquo;李峰，中州的水很深。在这里你必须更加小心。在望仙镇你打了一个金丹后期的周子衡就已经很了不起了，但在天元城，金丹后期连给人提鞋都不配。\u0026rdquo;\n李峰点了点头。\n他找了一家便宜的客栈住下——一晚上两块下品灵石，房间里只有一张床、一张桌子、一把椅子，简陋得像他老家的牛棚。但比起破庙，已经好了一百倍。\n他躺在床上，看着天花板，开始规划接下来的路。\n\u0026ldquo;首先要解决灵石。\u0026ldquo;李峰说，\u0026ldquo;身上只剩五十块中品灵石，在天元城连一个月都撑不过。\u0026rdquo;\n\u0026ldquo;继续炼丹。\u0026ldquo;墨渊说，\u0026ldquo;中州的丹药市场比望仙镇大百倍。以你的丹术，站稳脚跟不难。但你需要拿出别人炼不出的东西——中州的丹师太多了，你如果只炼低阶丹药，很快就会被淹没。\u0026rdquo;\n\u0026ldquo;那炼什么？\u0026rdquo;\n\u0026ldquo;是时候教你炼制二阶丹药了。\u0026rdquo;\n第十四章 二阶丹药 二阶丹药和一阶完全不同。\n一阶丹药针对炼气期和筑基期修士，炼制难度相对较低。二阶丹药则是金丹期修士的标配——不仅需要更高级的药材，对火候和手法的要求也高了十倍不止。\n\u0026ldquo;二阶丹药中最基础的是\u0026rsquo;凝元丹\u0026rsquo;。\u0026ldquo;墨渊说，\u0026ldquo;可以辅助金丹期修士凝聚灵力，是金丹期修士最常用的修炼丹药。炼制难度在二阶丹药中最低，但对你来说依然是一个巨大的挑战。\u0026rdquo;\n\u0026ldquo;需要什么药材？\u0026rdquo;\n\u0026ldquo;主药是金灵芝，辅药七种——七星草、紫河车、地龙根、火灵花、冰蚕丝、千年参、五行石。\u0026ldquo;墨渊一口气报出了七种药材的名字，\u0026ldquo;其中金灵芝、火灵花、千年参比较常见，天元城的药材铺应该有。但七星草、紫河车、地龙根比较稀有，可能需要多跑几家。冰蚕丝和五行石是最难找的——这两种东西只有在特定的地方才能买到。\u0026rdquo;\n李峰把药材清单记在了一块竹简上。\n第二天，他去了天元城最大的药材铺——万宝楼。\n万宝楼是一座五层高的建筑，光是一楼大厅就有三亩地大。柜台后面摆满了各种珍稀药材，每一株都用特制的玉盒保存着，散发着浓郁的灵气。\n\u0026ldquo;客官需要什么？\u0026ldquo;掌柜是一个精瘦的中年人，修为金丹初期，眼睛里透着精明。\n\u0026ldquo;金灵芝，五十年份以上的。\u0026ldquo;李峰说。\n\u0026ldquo;有。五十年份八十块中品灵石一株，一百年份一百五十块，两百年份四百块。\u0026ldquo;掌柜报价的速度很快，显然这些价格他已经说过无数遍了。\n李峰算了算灵石，咬了咬牙：\u0026ldquo;一株五十年份的。\u0026rdquo;\n他又买了七星草、紫河车、地龙根、火灵花、千年参——这五种辅药加起来花了六十块中品灵石。\n冰蚕丝和五行石万宝楼没有。\n\u0026ldquo;冰蚕丝要去城北的\u0026rsquo;寒冰阁\u0026rsquo;买。\u0026ldquo;掌柜说，\u0026ldquo;五行石要去城南的\u0026rsquo;矿石坊\u0026rsquo;。这两样东西都不便宜——冰蚕丝大约五十块中品灵石一两，五行石八十块中品灵石一块。\u0026rdquo;\n李峰的心凉了半截。\n他身上只剩五十块中品灵石了——买完冰蚕丝就什么都不剩了。\n\u0026ldquo;先买冰蚕丝。\u0026ldquo;墨渊说，\u0026ldquo;五行石可以用别的东西代替。老夫当年研究过一种替代配方，用\u0026rsquo;三色土\u0026rsquo;代替五行石，效果差一些，但对新手来说够用了。三色土在城外的野地里就能挖到，不花钱。\u0026rdquo;\n李峰松了口气。\n他去寒冰阁买了冰蚕丝，又去城外挖了三色土。药材终于凑齐了。\n回到客栈，李峰开始炼制凝元丹。\n二阶丹药的炼制比他想象的还要难。\n首先是火候。凝元丹需要的温度比聚元丹高出三倍，而且全程需要精准控制——忽高忽低都不行。李峰用的是地火脉，但在天元城他没有地火脉可用，只能用灵石催动的\u0026quot;灵火阵\u0026rdquo;。灵火阵的温度不如地火稳定，需要他时刻用意念调节。\n这对没有灵根的他来说，消耗极大。\n其次是手法。凝元丹的搅拌方式和聚元丹完全不同——不是匀速搅拌，而是要按照特定的节奏，时快时慢，像在演奏一首曲子。药性在不同的温度下需要不同的搅拌速度来融合，差一个呼吸的时间，药性就会分离。\n第一次尝试，失败了——火候在中途失控，药液烧焦了。\n第二次，还是失败——搅拌的节奏没掌握好，药性没有完全融合。\n第三次，丹炉里终于出现了一颗金色的丹药。但品质只是下品。\n\u0026ldquo;不够。\u0026ldquo;墨渊说，\u0026ldquo;下品凝元丹在天元城卖不出好价钱。这里金丹期修士多得是，他们对丹药品质的要求比望仙镇高十倍。你至少要炼出中品。\u0026rdquo;\n李峰又试了五次。\n第四次，炸炉了。\n第五次，药材投入顺序错了。\n第六次，火候又失控了。\n第七次，差一点就成了，但在收丹的时候犹豫了一瞬。\n第八次——\n丹炉里躺着一颗金色的丹药，表面光滑，色泽纯正，散发着浓郁的药香。虽然没有丹纹，但品质确实是中品。\n\u0026ldquo;成了。\u0026ldquo;墨渊满意地说，\u0026ldquo;八次成功一次，对二阶丹药来说已经算是不错的成功率了。很多丹师炼二阶丹药，十次能成就不错了。\u0026rdquo;\n李峰带着五颗中品凝元丹去了万宝楼。\n\u0026ldquo;这是你炼的？\u0026ldquo;掌柜拿起一颗丹药，翻来覆去地看了好几遍，眼中闪过惊讶，\u0026ldquo;中品凝元丹……你有师父？\u0026rdquo;\n\u0026ldquo;自学的。\u0026rdquo;\n掌柜将信将疑。一个没有灵根的散修，自学炼制二阶中品丹药——这在天元城闻所未闻。但丹药就摆在眼前，由不得他不信。\n\u0026ldquo;一百块中品灵石一颗，收不收？\u0026ldquo;掌柜开价。\n\u0026ldquo;一百二。\u0026ldquo;李峰说。他在望仙镇卖了一个月丹药，已经学会了讨价还价。\n\u0026ldquo;一百一。\u0026rdquo;\n\u0026ldquo;一百一十五。\u0026rdquo;\n\u0026ldquo;成交。\u0026rdquo;\n五颗丹药，五百七十五块中品灵石。扣掉成本，净赚三百多块。\n李峰走出万宝楼，长出了一口气。\n\u0026ldquo;我们站稳了。\u0026ldquo;他说。\n\u0026ldquo;还差得远。\u0026ldquo;墨渊说，\u0026ldquo;在天元城你只是最底层的丹师。想要真正出人头地，你需要做一件让所有人都记住你的事。\u0026rdquo;\n\u0026ldquo;什么事？\u0026rdquo;\n墨渊沉默了一会儿，说出了一个让李峰心跳加速的词。\n\u0026ldquo;天火。\u0026rdquo;\n第十五章 天火传说 天火，是天地间最神秘的存在。\n诞生于天地初开之时，每一种都蕴含着毁天灭地的力量。修仙者如果能收服一种天火，不仅丹术可以突飞猛进——天火的温度和灵性远超任何人工丹火——还能将其用作战斗手段，威力堪比元婴期修士的全力一击。\n\u0026ldquo;三千年前，中州有三种天火。\u0026ldquo;墨渊说，\u0026ldquo;排名第一的是\u0026rsquo;焚天紫焰\u0026rsquo;，据说可以焚烧一切，连空间都能烧穿。排名第二的是\u0026rsquo;幽冥寒火\u0026rsquo;，能冻结灵魂，被它碰到的人会永远沉睡。排名第三的是\u0026rsquo;地心岩火\u0026rsquo;，蕴含大地之力，厚重而绵长，最适合用来炼丹。\u0026rdquo;\n\u0026ldquo;现在在哪？\u0026rdquo;\n\u0026ldquo;不知道。\u0026ldquo;墨渊说，\u0026ldquo;老夫渡劫后就失去了所有天火的消息。三千年过去了，它们可能还在原来的地方，也可能已经被人收服了，也可能已经转移到了别处。但有一点可以确定——天火不会消失，它们是天地的产物，只要天地还在，天火就在。\u0026rdquo;\n\u0026ldquo;你让我去找天火？\u0026rdquo;\n\u0026ldquo;不是现在。\u0026ldquo;墨渊说，\u0026ldquo;以你现在的实力，碰到天火就是送死。天火的温度可以瞬间融化金丹期修士的灵力护罩，你一个锻体修士靠近它，连灰都剩不下。但你可以先做准备——了解天火的习性、弱点、收服方法。等你准备好了，再去。\u0026rdquo;\n\u0026ldquo;怎么了解？\u0026rdquo;\n\u0026ldquo;天元城有一座\u0026rsquo;万卷阁\u0026rsquo;，收藏着无数修仙典籍。那里应该有关于天火的记载。\u0026rdquo;\n第二天，李峰去了万卷阁。\n万卷阁是一座九层高的塔楼，坐落在天元城的中心位置。塔楼的外形像一支巨大的毛笔，笔尖直指天空。每一层都摆满了玉简和典籍，散发着一股古旧的墨香。\n入门费是十块中品灵石，可以待一整天。\n李峰直奔第六层——专门收藏关于天地奇物的典籍。\n第六层的面积比他想象的大。书架从地板一直延伸到天花板，密密麻麻的玉简像蚂蚁一样排列着。空气中弥漫着一股淡淡的灵气波动——那是玉简上的禁制在起作用，防止被人偷走。\n李峰从第一个书架开始，一排一排地找。\n他翻了整整一天。\n看了几百个玉简，大部分是关于灵兽、灵材、灵矿的记载，只有少数提到了天火。但那些记载都很简略，只说了天火的名字和大致位置，没有详细的收服方法。\n直到他在最角落的一个书架上，找到了一本泛黄的古籍。\n古籍没有名字，封面上落了厚厚的一层灰。李峰吹开灰尘，翻开了第一页。\n里面的字迹很潦草，像是作者在匆忙中写下的。但内容让他浑身一震：\n\u0026ldquo;余毕生追寻天火，终于在炎火山脉深处得见地心岩火真容。此火以岩浆为食，万年不灭，温度高到连空间都能扭曲。余尝试收服七次，七次失败。第八次，余改变了策略——不再用灵力强行压制，而是用肉身与之共鸣。\u0026rdquo;\n\u0026ldquo;地心岩火的本质是\u0026rsquo;大地之力\u0026rsquo;——厚重、绵长、包容。欲收服此火，需以寒属性功法为引，压制其温度；辅以至强肉身，承受其灼烧之力。灵力护罩在天火面前毫无用处，唯有肉身才是最可靠的屏障。\u0026rdquo;\n\u0026ldquo;余虽未成功，但已看到了希望。后来者若有缘读到此文，望继续余未竟之路。\u0026rdquo;\n落款是一个李峰不认识的名字。\n但他注意到了一个关键词——\u0026ldquo;至强肉身\u0026rdquo;。\n\u0026ldquo;墨渊，这上面说的……\u0026rdquo;\n\u0026ldquo;就是你走的路。\u0026ldquo;墨渊的声音里带着复杂的情绪——有兴奋，有感慨，也有一丝说不清的惆怅，\u0026ldquo;看来一切都是天意。三千年前老夫没能收服天火，是因为老夫走的是灵力和肉身并修的路。但你不一样——你没有灵根，只能走纯粹的锻体之路。反而更符合收服天火的条件。\u0026rdquo;\n\u0026ldquo;你是说……天火在等我？\u0026rdquo;\n\u0026ldquo;也许是。\u0026ldquo;墨渊说，\u0026ldquo;也许不是。但不管怎样，这条路值得走。\u0026rdquo;\n李峰合上古籍，小心地把它放回了原处。\n他走出万卷阁，站在天元城的街道上。周围是来来往往的修仙者，有的在天上飞，有的在地上走，有的在店铺里讨价还价。\n天地广阔，人如蝼蚁。\n但蝼蚁也有蝼蚁的路。\n李峰抬头看向南方——那是炎火山脉的方向。\n路还很长。\n但他的路，已经清晰了。\n（第五篇完，未完待续）\n","permalink":"https://skyrk.xyz/posts/novel/part5/","summary":"\u003ch2 id=\"第十二章-离别\"\u003e第十二章 离别\u003c/h2\u003e\n\u003cp\u003e离开望仙镇那天，天还没亮。\u003c/p\u003e\n\u003cp\u003e李峰没有告诉任何人。他不想解释，也不想面对那些可能会出现的挽留。他不擅长告别——从小就不擅长。小时候二狗子一家搬走的时候，他躲在老槐树后面看了半天，愣是没走出去说一声再见。\u003c/p\u003e\n\u003cp\u003e他在药铺门口放了一封信和一个小包裹。信里是一张聚元丹的丹方，作为对孙老板这几个月照顾他的感谢。包裹里是三十块中品灵石——他能拿出来的最多了。\u003c/p\u003e\n\u003cp\u003e然后他背着一个简单的包袱，走上了通往天元大陆核心区域的大路。\u003c/p\u003e\n\u003cp\u003e包袱里只有几件换洗的衣服、一把匕首、三颗解毒丹、五颗聚元丹，和母亲缝的那件棉衣。棉衣已经很旧了，上面还有他当初灵根被夺时留下的血迹，洗了好几遍都没洗掉。但他舍不得扔。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;天元大陆的核心是什么地方？\u0026ldquo;李峰一边走一边问。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;中州。\u0026ldquo;墨渊说，\u0026ldquo;整片大陆的中心，修仙者最密集的地方。望仙镇在中州人眼里，不过是穷乡僻壤——就像你们村在望仙镇人眼里一样。中州有元婴期的老怪物，有传说中的化神大能，有各种你听都没听过的天材地宝。也有更多的危险。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;你去过吗？\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;三千年前去过。\u0026ldquo;墨渊的声音里带着一丝怀念，\u0026ldquo;那时候老夫在中州也算是有头有脸的人物。找我炼体的人排到城门外，送的灵石堆成山。可惜后来渡劫失败，一切都成了过眼云烟。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e李峰沉默了一会儿。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;墨渊，你为什么选择帮我？\u0026ldquo;他问出了一个藏在心里很久的问题，\u0026ldquo;你在我身上待了三个月，一直没出声。直到我灵根被夺、走投无路的时候，你才开口。你是故意等那个时候的吗？\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e墨渊沉默了很久。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;是。\u0026ldquo;他终于说，\u0026ldquo;老夫在你身上待了三年。从你母亲把碎玉缝进棉衣的那天起，老夫就在了。你入门修炼的时候，老夫在观察你。你被长老们夸赞的时候，老夫在观察你。你被周子衡设计陷害的时候，老夫也在观察你。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;为什么不出声？\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;因为你不需要。\u0026ldquo;墨渊说，\u0026ldquo;你有灵根，有天赋，有前途。你不需要一个残魂来指手画脚。老夫那时候想的是——如果这小子一路顺风顺水，老夫就安安静静地待着，等他飞升的那一天，老夫的残魂说不定也能沾点光。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;可后来我灵根被夺了。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;是。\u0026ldquo;墨渊说，\u0026ldquo;那一刻老夫就知道，你和老夫是一样的人。我们都曾经站在高处，都被命运狠狠地摔了下来。区别在于——老夫当年摔下来的时候，身边一个人都没有。而你摔下来的时候，老夫在。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e他的声音变得柔和了一些——这是李峰第一次听到墨渊用这种语气说话。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;你像老夫年轻的时候。倔，能忍，不服输。但你有一样东西，是老夫当年没有的。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;什么？\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;牵挂。\u0026ldquo;墨渊说，\u0026ldquo;老夫年轻时一心求道，六亲不认。父母死了没回去看一眼，兄弟找我帮忙我理都不理，朋友背叛我我就把他们全杀了。到最后渡劫的时候才发现，心中无牵无挂，反而成了最大的心魔——因为没有什么东西能让我留恋这个世界，天劫一来，我就放弃了。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e他顿了顿。\u003c/p\u003e\n\u003cp\u003e\u0026ldquo;你不一样。你有父母，有仇恨，有放不下的东西。这些东西会成为你的弱点——你会因为牵挂而犹豫，因为仇恨而冲动。但它们也会成为你的力量——你会因为牵挂而坚持，因为仇恨而清醒。心魔最怕的就是一个清醒的人。\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e李峰没有说话，只是加快了脚步。\u003c/p\u003e\n\u003cp\u003e天边已经泛起了鱼肚白。新的一天开始了。\u003c/p\u003e","title":"李峰修仙传 · 第五篇：天元"},{"content":"我曾经以为，反复思考一件事叫\u0026quot;慎重\u0026quot;。\n后来才发现，那叫内耗。\n内耗最可怕的地方在于，你以为你在\u0026quot;想\u0026quot;，其实你在\u0026quot;耗\u0026quot;。\n同一件事，翻来覆去想了八百遍，没有一遍想出了结果。每一个念头都在消耗你的能量，每一轮纠结都在磨损你的意志。到最后事情没解决，人先垮了。\n你有没有过这种时刻？\n躺在床上，脑子里像开了个会，一群小人在里面吵。有人说\u0026quot;应该这样做\u0026quot;，有人说\u0026quot;万一不行呢\u0026quot;，有人说\u0026quot;别人会怎么看\u0026quot;，有人说\u0026quot;算了吧来不及了\u0026quot;。吵了一整夜，天亮了，什么决定都没做出来，倒是累得不行。\n这就是内耗。一场没有观众的独角戏，自编自导自演，最后自己把自己演垮了。\n我以前特别擅长内耗。\n发了一条消息，对方没回，就开始想：是不是我说错话了？是不是他不想理我？是不是我太烦了？然后翻聊天记录，逐字逐句地分析，试图从标点符号里读出别人的态度。\n做了一个决定，过两天就开始后悔：如果选另一个会不会更好？如果当时再想想会不会不一样？然后在\u0026quot;如果\u0026quot;的世界里兜了一大圈，回到现实发现什么都没变，只有自己的心又累了一层。\n别人随口说的一句话，我能记三天。不是因为那句话多重要，而是我的脑子不允许它翻篇。它会自动循环播放，配上各种解读，加戏加到奥斯卡级别。\n后来我想明白了——\n内耗的本质，是试图控制自己控制不了的事。\n别人怎么看你，你控制不了。过去的选择，你改变不了。未来的不确定，你消除不了。你唯一能控制的，是现在做什么。\n可内耗偏偏让你把所有精力都花在那些你控制不了的事上。就像对着一堵墙使劲推，墙纹丝不动，你精疲力竭。\n更讽刺的是，内耗的人往往是最在乎的人。因为太在乎结果，所以反复掂量；因为太在乎别人，所以处处小心；因为太在乎自己，所以不敢犯错。\n可这份\u0026quot;在乎\u0026quot;用错了地方。它没有变成行动的动力，反而变成了思考的负担。\n醒悟是一瞬间的事。\n某天你突然发现，你纠结了三天的那件事，其实五分钟就能解决。你担心了半年的那个\u0026quot;万一\u0026quot;，根本就没发生。你反复分析的那段关系，对方压根没想那么多。\n你一个人在脑子里演了一出大戏，台下连个观众都没有。\n那一刻你会觉得有点荒谬，又有点释然。\n荒谬的是，原来折磨自己的从来不是事情本身，而是自己对事情的\u0026quot;加工\u0026quot;。释然的是，既然内耗是自己造的，那也能自己拆。\n怎么拆？\n允许自己做\u0026quot;不够好\u0026quot;的决定。 世界上没有完美的选择，只有选择之后的努力。你花在纠结上的时间，够你把任何一个选项执行得很好了。\n给思考设个期限。 一件事想十分钟没结果，就先动手。做着做着，答案自己会出来。站在原地想，永远想不出一条路的全貌。\n接受\u0026quot;想不通\u0026quot;。 不是所有事都有答案，不是所有关系都能理清，不是所有付出都有回报。想不通就放着，生活会自己给你答案，或者不给——那也是一种答案。\n把注意力拉回\u0026quot;此刻\u0026quot;。 内耗的人活在过去和未来，唯独不活在现在。过去的已经过去，未来的还没来，你能把握的只有手头这件事、眼前这个人、今天这一天。\n我知道，说\u0026quot;别内耗了\u0026quot;就像跟失眠的人说\u0026quot;快睡吧\u0026quot;一样没用。道理谁都懂，做到才难。\n但至少，当你又开始在脑子里开会的时候，能意识到：哦，我又在内耗了。\n意识到的那一刻，你就已经从戏里走出来了半步。\n不用完全走出来，半步就够了。\n因为剩下的路，走着走着就到了。\n","permalink":"https://skyrk.xyz/posts/inner-friction/","summary":"\u003cp\u003e我曾经以为，反复思考一件事叫\u0026quot;慎重\u0026quot;。\u003c/p\u003e\n\u003cp\u003e后来才发现，那叫内耗。\u003c/p\u003e","title":"内耗：一场没有观众的独角戏"},{"content":"月亮不会同时圆给所有人看。\n有人揽月得清辉，有人身陷暗影。人生各有缺憾，亦各有圆满。\n我们总在比较——别人的月亮更圆，别人的潮水更满。可你不知道的是，那个看起来什么都有人，也许正在羡慕你身上某种他永远学不来的笨拙。\n笨拙是答案。后悔是答案。落空也是答案。\n不是所有走过的路都需要意义来加持。有些弯路，走过了就是走过了，它不会变成捷径，但会变成你。那些深夜翻来覆去想不通的事，那些差一点就抓住的瞬间，那些笑着说没关系的时刻——它们都是你。\n我们太习惯用\u0026quot;如果当初\u0026quot;来折磨自己了。如果当初再努力一点，如果当初没说那句话，如果当初选了另一条路。可是你看，你站在今天回头看，每一个当初的自己，都在用他当时仅有的认知和勇气，做出了他认为最好的选择。\n每个阶段的自己，都是那个阶段唯一的正确答案。\n二十岁的迷茫不是错，三十岁的焦虑不是错，四十岁的疲惫也不是错。它们只是那个年纪该有的样子。就像月亮，初一不该为不是十五而道歉。\n人人都有各自的月亮，各自潮起潮落。\n不必羡慕谁的高光时刻，也不必怜悯谁的至暗时分。你看到的永远只是别人故事的一个切面。而你自己的故事，正在此刻，一笔一笔地写下去。\n所以，允许自己笨拙。允许自己后悔。允许自己落空。\n然后继续走。\n月亮不急，潮水不急，你也不必急。\n","permalink":"https://skyrk.xyz/posts/moon-answer/","summary":"\u003cp\u003e月亮不会同时圆给所有人看。\u003c/p\u003e\n\u003cp\u003e有人揽月得清辉，有人身陷暗影。人生各有缺憾，亦各有圆满。\u003c/p\u003e","title":"月亮不会同时圆给所有人看"},{"content":"前言 在云服务器上搭建自己的 VPN 服务，既能保障数据传输安全，又能灵活管理用户权限。本文记录了在 Ubuntu 24.04 服务器上从零部署 OpenVPN 的完整过程，包括：\nEasyRSA 证书体系搭建 服务端配置（UDP 1194） 证书 + 密码双重认证 PAM 对接 MariaDB 数据库管理用户 客户端配置文件生成 路由模式选择（全流量代理 / 分流 / 仅内网） 踩坑记录和解决方案 环境信息 项目 配置 系统 Ubuntu 24.04 LTS CPU 2 核 Intel Xeon Platinum 内存 1.6GB + 4GB Swap 磁盘 40GB OpenVPN 2.6.19 MariaDB 10.11.14 一、安装 OpenVPN 和 EasyRSA apt update apt install -y openvpn easy-rsa 二、搭建 CA 证书体系 # 进入 EasyRSA 目录 cd /etc/openvpn/easy-rsa # 初始化 PKI ./easyrsa init-pki # 生成 CA 证书（无密码，一路回车） ./easyrsa build-ca nopass # 生成服务器证书和密钥 ./easyrsa gen-req server nopass ./easyrsa sign-req server server \u0026lt;\u0026lt;\u0026lt; \u0026#34;yes\u0026#34; # 生成 DH 参数 ./easyrsa gen-dh # 生成 TLS 认证密钥（防 DDoS 和端口扫描） openvpn --genkey secret ta.key 生成的文件位于 /etc/openvpn/easy-rsa/pki/ 目录下：\nca.crt — CA 根证书 issued/server.crt — 服务器证书 private/server.key — 服务器私钥 dh.pem — DH 参数 将这些文件复制到 OpenVPN 配置目录：\ncp pki/ca.crt /etc/openvpn/ cp pki/issued/server.crt /etc/openvpn/ cp pki/private/server.key /etc/openvpn/ cp pki/dh.pem /etc/openvpn/ cp ta.key /etc/openvpn/ 三、配置 OpenVPN 服务端 创建 /etc/openvpn/server/server.conf：\nport 1194 proto udp dev tun # 证书 ca ca.crt cert server.crt key server.key dh dh.pem tls-auth ta.key 0 # 网段 server 10.8.0.0 255.255.255.0 ifconfig-pool-persist /var/log/openvpn/ipp.txt # DNS（推荐使用国内 DNS） push \u0026#34;dhcp-option DNS 223.5.5.5\u0026#34; push \u0026#34;dhcp-option DNS 119.29.29.29\u0026#34; # 路由（根据需求选择，见下方路由章节） push \u0026#34;redirect-gateway def1 bypass-dhcp\u0026#34; keepalive 10 120 cipher AES-256-GCM data-ciphers AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305 # 降权运行 user nobody group nogroup persist-key persist-tun status /var/log/openvpn/openvpn-status.log log-append /var/log/openvpn/openvpn.log verb 3 DNS 选择：国内服务器建议使用阿里 DNS（223.5.5.5）和腾讯 DNSPod（119.29.29.29），比 Google DNS（8.8.8.8）解析更快。\n启动服务 systemctl enable openvpn-server@server systemctl start openvpn-server@server 注意：Ubuntu 使用 openvpn-server@server.service，它读取 /etc/openvpn/server/server.conf。不要用旧的 openvpn.service（那个会启动后立即退出）。\n开启 IP 转发 echo \u0026#34;net.ipv4.ip_forward = 1\u0026#34; \u0026gt;\u0026gt; /etc/sysctl.conf sysctl -p 配置 NAT iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE 防火墙放行 ufw allow 1194/udp 如果是阿里云等云服务器，还需要在安全组中放行 UDP 1194 端口。\n四、生成客户端证书 cd /etc/openvpn/easy-rsa # 生成客户端密钥和请求（用 --batch 避免交互式 CN 输入问题） ./easyrsa --batch gen-req client1 nopass # 签发客户端证书 ./easyrsa --batch sign-req client client1 五、生成 .ovpn 配置文件 将所有证书和密钥内嵌到一个 .ovpn 文件中，方便客户端导入：\ncat \u0026gt; /etc/openvpn/client/client1.ovpn \u0026lt;\u0026lt; \u0026#39;EOF\u0026#39; client dev tun proto udp remote YOUR_SERVER_IP 1194 resolv-retry infinite nobind persist-tun auth-nocache remote-cert-tls server cipher AES-256-GCM data-ciphers AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305 verb 3 auth-user-pass key-direction 1 EOF # 内嵌证书和密钥 echo \u0026#34;\u0026lt;ca\u0026gt;\u0026#34; \u0026gt;\u0026gt; /etc/openvpn/client/client1.ovpn cat /etc/openvpn/ca.crt \u0026gt;\u0026gt; /etc/openvpn/client/client1.ovpn echo \u0026#34;\u0026lt;/ca\u0026gt;\u0026#34; \u0026gt;\u0026gt; /etc/openvpn/client/client1.ovpn echo \u0026#34;\u0026lt;cert\u0026gt;\u0026#34; \u0026gt;\u0026gt; /etc/openvpn/client/client1.ovpn cat /etc/openvpn/easy-rsa/pki/issued/client1.crt \u0026gt;\u0026gt; /etc/openvpn/client/client1.ovpn echo \u0026#34;\u0026lt;/cert\u0026gt;\u0026#34; \u0026gt;\u0026gt; /etc/openvpn/client/client1.ovpn echo \u0026#34;\u0026lt;key\u0026gt;\u0026#34; \u0026gt;\u0026gt; /etc/openvpn/client/client1.ovpn cat /etc/openvpn/easy-rsa/pki/private/client1.key \u0026gt;\u0026gt; /etc/openvpn/client/client1.ovpn echo \u0026#34;\u0026lt;/key\u0026gt;\u0026#34; \u0026gt;\u0026gt; /etc/openvpn/client/client1.ovpn echo \u0026#34;\u0026lt;tls-auth\u0026gt;\u0026#34; \u0026gt;\u0026gt; /etc/openvpn/client/client1.ovpn cat /etc/openvpn/ta.key \u0026gt;\u0026gt; /etc/openvpn/client/client1.ovpn echo \u0026#34;\u0026lt;/tls-auth\u0026gt;\u0026#34; \u0026gt;\u0026gt; /etc/openvpn/client/client1.ovpn 客户端配置说明：\npersist-tun：断线重连时保持 TUN 设备，不用重新创建 auth-nocache：连接成功后立即清除内存中的密码，防止被 dump 进程获取 不要使用 persist-key：新版 OpenVPN（2.6+）已将其设为默认行为，写了会产生 deprecated 警告 六、添加密码认证（PAM） 纯证书认证已经足够安全，但如果你需要管理大量用户、记录登录日志、对接统一身份系统，就需要加上密码认证。\n方案对比 方案 优点 缺点 自定义脚本 (auth-user-pass-verify) 灵活，可对接任意后端 以 nobody 运行，受 systemd 安全限制，踩坑多 PAM 共享库插件 (openvpn-auth-pam.so) 特权分离、虚拟内存传密码、官方推荐 需要 PAM 模块支持 官方建议：生产环境用共享库插件，不要用脚本。\n配置 PAM 创建 /etc/pam.d/openvpn：\n# 方式一：使用系统用户（简单场景） auth required pam_unix.so account required pam_unix.so # 方式二：对接 MariaDB（大量用户） auth required pam_mysql.so user=vpn_auth passwd=YOUR_DB_PASSWORD host=localhost db=vpn_users table=users usercolumn=username passwdcolumn=password crypt=0 account required pam_mysql.so user=vpn_auth passwd=YOUR_DB_PASSWORD host=localhost db=vpn_users table=users usercolumn=username passwdcolumn=password crypt=0 修改服务端配置 在 server.conf 中添加：\nplugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so openvpn verify-client-cert require username-as-common-name 修改客户端配置 在 .ovpn 文件中添加：\nauth-user-pass 七、对接 MariaDB 数据库 安装 MariaDB apt install -y mariadb-server mariadb-client systemctl enable mariadb systemctl start mariadb 创建数据库和用户表 CREATE DATABASE vpn_users; USE vpn_users; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(64) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, email VARCHAR(128), status TINYINT DEFAULT 1, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, last_login DATETIME NULL, INDEX idx_username (username) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE USER \u0026#39;vpn_auth\u0026#39;@\u0026#39;localhost\u0026#39; IDENTIFIED BY \u0026#39;YourSecurePassword\u0026#39;; GRANT SELECT ON vpn_users.users TO \u0026#39;vpn_auth\u0026#39;@\u0026#39;localhost\u0026#39;; FLUSH PRIVILEGES; 安装 pam_mysql apt install -y libpam-mysql 重启 OpenVPN：\nsystemctl restart openvpn-server@server 八、路由模式选择 OpenVPN 支持多种路由模式，根据你的需求选择：\n模式一：全流量代理（Full Tunnel） 效果：所有流量都走 VPN 服务器，对外 IP 变成服务器 IP。\n适用场景：\n需要隐藏真实 IP 在不安全的网络（公共 WiFi）下加密所有流量 翻越网络限制 服务端配置：\npush \u0026#34;redirect-gateway def1 bypass-dhcp\u0026#34; 原理：def1 会向客户端推送三条路由：\n0.0.0.0/1（覆盖所有流量） 128.0.0.0/1（覆盖剩余流量） 原默认网关（保留直连路由） bypass-dhcp 排除 DHCP 广播流量，避免干扰本地网络。\n模式二：分流模式（Split Tunnel） 效果：只有访问特定网段走 VPN，其余流量走本地网络。\n适用场景：\n只需要访问公司/学校内网 节省 VPN 服务器带宽 降低延迟（日常上网不绕路） 服务端配置：\n# 删除或注释掉 redirect-gateway # push \u0026#34;redirect-gateway def1 bypass-dhcp\u0026#34; # 只推送内网路由（按需修改网段） push \u0026#34;route 10.0.0.0 255.0.0.0\u0026#34; push \u0026#34;route 172.16.0.0 255.240.0.0\u0026#34; push \u0026#34;route 192.168.0.0 255.255.0.0\u0026#34; 模式三：仅 VPN 子网（Minimal） 效果：只路由 VPN 子网（10.8.0.0/24），客户端之间可以互通，其余流量全部走本地。\n适用场景：\n组建虚拟局域网（联机游戏、文件共享） 不需要通过 VPN 上网 服务端配置：\n# 删除或注释掉 redirect-gateway # push \u0026#34;redirect-gateway def1 bypass-dhcp\u0026#34; # 不推送任何路由，VPN 子网自动路由 # server 指令已隐含 10.8.0.0/24 的路由 模式四：客户端自定义路由 效果：服务端不推送路由，由客户端 .ovpn 文件自行决定。\n适用场景：\n不同客户端需要不同路由策略 高级用户自行控制 服务端配置：\n# 不推送路由 # push \u0026#34;redirect-gateway def1 bypass-dhcp\u0026#34; 客户端配置（在 .ovpn 中按需添加）：\n# 全流量代理 redirect-gateway def1 # 或者只代理特定网段 route 10.0.0.0 255.0.0.0 route 192.168.1.0 255.255.255.0 路由模式对比 模式 服务端配置 流量走向 带宽消耗 隐私保护 全流量代理 push \u0026quot;redirect-gateway def1\u0026quot; 全部走 VPN 高 强 分流模式 push \u0026quot;route x.x.x.x\u0026quot; 指定网段走 VPN 中 部分 仅 VPN 子网 不推送路由 仅 VPN 内互通 低 无 客户端自定义 不推送路由 客户端决定 取决于配置 取决于配置 提示：修改服务端路由配置后需要重启 OpenVPN：systemctl restart openvpn-server@server。客户端需要重新连接才能生效。\n九、踩坑记录 1. openvpn.service 启动后立即退出 现象：systemctl status openvpn 显示 active (exited)，端口 1194 无进程监听。\n解决：使用 openvpn-server@server.service，配置文件放在 /etc/openvpn/server/server.conf。\n2. TLS 握手超时 现象：客户端显示 TLS key negotiation failed。\n排查：服务端无连接记录 → 数据包未到达 → 检查云安全组。\n解决：在阿里云安全组中添加 UDP 1194 入站规则。\n3. 自定义认证脚本不执行 现象：脚本手动测试通过，OpenVPN 调用时失败。\n原因：systemd 安全限制（PrivateTmp、ProtectSystem）+ via-env 密码编码问题。\n解决：改用 PAM 共享库插件。\n4. pam_mysql 密码格式不兼容 现象：MySQL SHA2() 的十六进制哈希，pam_mysql crypt=3 无法匹配。\n原因：crypt=3 对应 MD5，不支持 SHA-256。\n解决：使用 crypt=0（明文对比）或应用层使用兼容的哈希格式。\n5. 密码文件权限问题 现象：nobody 用户无法读取权限 600 的密码文件。\n解决：改用 PAM 插件（特权分离机制自动处理权限）。\n6. 客户端红色告警：persist-key deprecated 现象：连接时显示 DEPRECATED OPTION: --persist-key option ignored。\n原因：OpenVPN 2.6+ 已将密钥持久化作为默认行为，persist-key 选项被废弃。\n解决：从 .ovpn 文件中删除 persist-key 这一行。\n7. 客户端红色告警：password cache in memory 现象：连接时显示 WARNING: this configuration may cache passwords in memory。\n原因：OpenVPN 默认会把用户名密码缓存在内存中，方便断线自动重连。\n解决：在 .ovpn 文件中添加 auth-nocache。代价是断线后需要重新输入密码。\n十、最终架构 客户端 (OpenVPN GUI / Tunnelblick) │ ├─ 证书认证 (TLS 1.3) │ └─ 密码认证 │ ▼ OpenVPN Server (nobody, UDP 1194) │ ▼ openvpn-auth-pam.so (特权分离) │ ▼ pam_mysql.so │ ▼ MariaDB (vpn_users.users) 十一、客户端使用 下载 OpenVPN 客户端（Windows: OpenVPN Connect，macOS: Tunnelblick，iOS/Android: OpenVPN Connect） 导入 .ovpn 文件 连接，输入用户名和密码 总结 关键经验：\n用 openvpn-server@server 而不是 openvpn.service 云服务器别忘了安全组放行 UDP 1194 生产环境用 PAM 插件，不要用自定义脚本 pam_mysql 的 crypt 参数要和密码存储格式匹配 国内服务器用阿里/腾讯 DNS，比 Google DNS 解析更快 客户端配置去掉 persist-key（已废弃），加上 auth-nocache（安全） 根据需求选择路由模式：全流量代理、分流、仅内网 OpenVPN + PAM + MariaDB 的组合，既能满足小团队几十人的使用，也能扩展到上万人的学校或企业场景。\n","permalink":"https://skyrk.xyz/posts/openvpn-setup/","summary":"在 Ubuntu 24.04 服务器上从零部署 OpenVPN，配置证书认证 + PAM 密码认证对接 MariaDB 数据库，适合中小规模用户管理。","title":"Ubuntu 24.04 部署 OpenVPN 完整教程：证书+PAM+MariaDB 认证"},{"content":"我第一次接触 Linux 是在大学。\n当时选了一门叫\u0026quot;操作系统\u0026quot;的课，老师让我们装个 Ubuntu 虚拟机。我照着教程一步步来，装完之后看着那个紫色的桌面，一脸懵：然后呢？连个软件都不会装。\n打开终端，输入 ls，出来一堆文件夹名字。cd 进去，还是文件夹。当时我的感觉就是：这玩意儿怎么这么反人类？\n后来工作了，发现服务器全是 Linux，不用也得用。硬着头皮学了一段时间，慢慢发现——其实也没那么难，就是思维方式要变一下。\n为什么你该学点 Linux 不是说让你把 Windows 卸了换 Linux。但如果你是做技术相关工作的，或者以后想做，Linux 基本是绕不开的。\n原因很简单：全世界大部分服务器跑的都是 Linux。你用的网站、APP、云服务，背后大概率是 Linux 在撑着。想搞运维、后端、DevOps，甚至前端部署项目，多少都得会点 Linux。\n而且说实话，用熟了之后你会发现有些事情在 Linux 上反而更方便。\n先搞清楚一个事儿：发行版是什么 你会经常听到 Ubuntu、CentOS、Debian、Fedora、Arch 这些名字。它们都是 Linux，但又不完全一样。\n打个比方：Linux 是一个发动机，各个发行版是用这个发动机造出来的不同品牌的车。都能跑，但内饰、配置、操作习惯不太一样。\n新手建议从 Ubuntu 开始。社区大，教程多，遇到问题搜一下基本都有人踩过坑。别一上来就搞什么 Arch Linux，那是给自己找不痛快。\nCentOS 也很常见，特别是企业服务器。但 CentOS 8 已经停止维护了，现在主流是 AlmaLinux 或 Rocky Linux 作为替代。\n安装 Linux 方式一：虚拟机（推荐新手） 下载 VirtualBox 或 VMware，然后下载 Ubuntu 的 ISO 镜像，新建虚拟机装进去。好处是不影响你现有的系统，搞坏了重装就行。\n方式二：WSL（Windows 用户） Windows 10/11 自带 WSL（Windows Subsystem for Linux），不用装虚拟机就能跑 Linux：\nwsl --install 重启之后就能在 Windows 里用 Linux 了。推荐装 Ubuntu。\n方式三：云服务器 买个便宜的云服务器（阿里云、腾讯云都有几十块一年的），直接远程连上去用。好处是更接近真实生产环境。\n方式四：双系统 和 Windows 装在同一台电脑上，开机选择进哪个系统。不太推荐新手，分区搞错了可能把 Windows 也弄坏。\n终端：你的新朋友（也是你的噩梦） Linux 的图形界面其实也能用，但大部分操作还是在终端里完成的。刚开始确实不习惯，用久了你会发现效率比鼠标点来点去高多了。\n打开终端，你看到的是这样的东西：\nxyf@ubuntu:~$ 这就是命令行了。$ 前面是你的用户名和主机名，后面就是你输入命令的地方。如果是 root 用户，提示符会变成 #。\n先来几个最基础的：\npwd # 我在哪？（显示当前目录路径） ls # 这里有什么文件？ ls -la # 显示所有文件（包括隐藏的），详细信息 cd /home # 去 /home 目录 cd .. # 回到上一级目录 cd ~ # 回到家目录（也可以直接 cd） cd - # 回到上一次所在的目录 clear # 清屏（其实也没清，就是滚上去了） history # 查看历史命令 Linux 的目录结构 Linux 的文件系统和 Windows 不一样。没有 C 盘 D 盘，所有东西都从 /（根目录）开始。\n/ # 根目录，一切的起点 ├── home/ # 用户的家目录（类似 Windows 的 C:\\Users） │ ├── xyf/ # 用户 xyf 的家目录 │ └── admin/ # 用户 admin 的家目录 ├── etc/ # 配置文件的大本营 ├── var/ # 可变数据（日志、缓存等） │ └── log/ # 日志文件，出问题了来这里找线索 ├── tmp/ # 临时文件，重启可能会清空 ├── usr/ # 用户安装的软件 │ ├── bin/ # 可执行文件 │ └── local/ # 本地安装的软件 ├── opt/ # 第三方软件 ├── root/ # root 用户的家目录 ├── dev/ # 设备文件 ├── proc/ # 进程信息（虚拟文件系统） └── mnt/ # 挂载点 几个重要目录记住就行：\n/home — 你的文件都在这 /etc — 改配置来这 /var/log — 出问题看日志 /tmp — 临时文件 文件和目录操作 这是你百分之百会用到的，必须熟练。\n创建 mkdir myfolder # 创建文件夹 mkdir -p a/b/c # 递归创建多层目录 touch myfile.txt # 创建空文件 echo \u0026#34;hello\u0026#34; \u0026gt; file.txt # 创建文件并写入内容（会覆盖） echo \u0026#34;world\u0026#34; \u0026gt;\u0026gt; file.txt # 追加内容（不会覆盖） 查看 cat myfile.txt # 显示文件全部内容 less myfile.txt # 分页查看（按 q 退出，空格翻页，/搜索） head -20 myfile.txt # 看前 20 行 tail -20 myfile.txt # 看后 20 行 tail -f /var/log/syslog # 实时跟踪文件变化（看日志超好用） wc -l myfile.txt # 统计行数 复制、移动、删除 cp file1 file2 # 复制文件 cp -r folder1 folder2 # 复制文件夹（-r 递归） mv file1 file2 # 移动/重命名 rm file1 # 删除文件 rm -i file1 # 删除前确认 rm -rf myfolder # 删除文件夹及其内容（慎用！） 重点提醒：rm -rf 是个狠命令，执行之前一定要确认你删的是对的。Linux 没有回收站，删了就真的没了。 我见过有人手滑把整个 home 目录删了的。\n查找 find / -name \u0026#34;*.log\u0026#34; # 在整个系统里找 .log 文件 find /home -name \u0026#34;*.txt\u0026#34; -mtime -7 # 找最近 7 天修改过的 txt 文件 find . -type f -size +100M # 找大于 100MB 的文件 find . -name \u0026#34;*.tmp\u0026#34; -delete # 找到并删除（慎用） grep \u0026#34;error\u0026#34; logfile.txt # 在文件里搜 \u0026#34;error\u0026#34; grep -r \u0026#34;TODO\u0026#34; /home/xyf/project/ # 递归搜索目录下所有文件 grep -i \u0026#34;error\u0026#34; logfile.txt # 忽略大小写 grep -n \u0026#34;error\u0026#34; logfile.txt # 显示行号 grep -c \u0026#34;error\u0026#34; logfile.txt # 只显示匹配的行数 find 和 grep 是 Linux 下最常用的两个查找命令。find 找文件名，grep 找文件内容。\n文件权限 Linux 里每个文件都有权限设置，决定谁能读、谁能写、谁能执行。\n执行 ls -l 你会看到类似这样的东西：\n-rw-r--r-- 1 xyf xyf 1234 May 13 file.txt drwxr-xr-x 2 xyf xyf 4096 May 13 myfolder 开头那串就是权限。以 -rw-r--r-- 为例：\n- rw- r-- r-- │ │ │ │ │ │ │ └── 其他用户：只读 │ │ └──────── 同组用户：只读 │ └─────────────── 文件所有者：可读可写 └──────────────────── 文件类型（- 文件，d 目录） r 是读（4），w 是写（2），x 是执行（1）。数字加起来就行。\nchmod 755 script.sh # rwxr-xr-x（自己全权限，其他人可读可执行） chmod 600 secret.txt # rw-------（只有自己能读写） chmod -R 755 myfolder # 递归修改目录下所有文件 chown xyf:xyf myfile.txt # 修改文件所有者 chown -R xyf:xyf myfolder # 递归修改 755 适合脚本和程序，600 适合私密文件，644 适合普通文件。\n用户和用户管理 用户操作 whoami # 我是谁 id # 查看用户 ID 和组信息 su - xyf # 切换用户（需要密码） sudo command # 以 root 权限执行命令 sudo -u xyf command # 以指定用户执行命令 用户管理 sudo useradd -m newuser # 创建用户（-m 创建家目录） sudo passwd newuser # 设置密码 sudo userdel -r newuser # 删除用户（-r 同时删除家目录） sudo usermod -aG sudo newuser # 把用户加到 sudo 组 sudoers 文件 不是所有用户都能用 sudo。能用 sudo 的用户在 /etc/sudoers 文件或 /etc/sudoers.d/ 目录里配置。\nsudo visudo # 编辑 sudoers 文件（安全方式） 不建议直接用文本编辑器改 sudoers，用 visudo 会做语法检查。\n软件安装和管理 apt（Ubuntu/Debian 系） sudo apt update # 更新软件源列表 sudo apt upgrade # 升级所有已安装的软件 sudo apt install nginx # 安装 nginx sudo apt install nginx mysql-server # 同时装多个 sudo apt remove nginx # 卸载（保留配置文件） sudo apt purge nginx # 卸载（连配置文件一起删） sudo apt autoremove # 清理不再需要的依赖 apt list --installed # 查看已安装的软件 apt search keyword # 搜索软件 update 和 upgrade 的区别：update 是更新软件源列表（知道有哪些新版本），upgrade 是真正把软件升级到新版本。\nyum/dnf（CentOS/RHEL/Fedora 系） sudo yum install nginx # CentOS 7 sudo dnf install nginx # CentOS 8+ / Fedora sudo yum update # 升级所有软件 sudo yum remove nginx # 卸载 snap Ubuntu 还有 snap 包管理器：\nsudo snap install code --classic # 安装 VS Code snap list # 查看已安装的 snap sudo snap remove code # 卸载 进程管理 查看进程 top # 实时查看系统资源和进程（按 q 退出） htop # top 的美化版（需要安装：sudo apt install htop） ps aux # 查看所有进程 ps aux | grep nginx # 找 nginx 相关的进程 ps -ef | grep python # 另一种写法 pgrep nginx # 直接返回进程 ID top/htop 里按 P 按 CPU 排序，按 M 按内存排序，按 k 杀进程。\n杀进程 kill 12345 # 发送 SIGTERM 信号（优雅停止） kill -9 12345 # 发送 SIGKILL 信号（强制杀死） killall nginx # 杀掉所有叫 nginx 的进程 pkill -f \u0026#34;python app\u0026#34; # 按命令行模式匹配杀进程 kill -9 是最后手段，不到万不得已别用。因为它不给程序保存数据的机会，可能导致数据损坏。\n后台运行 command \u0026amp; # 命令在后台运行 nohup command \u0026amp; # 后台运行，退出终端也不会停 更推荐用 systemd 或 screen/tmux 来管理后台进程。\n系统服务管理：systemd 现在大部分 Linux 都用 systemd 来管理服务。这组命令必须记住：\nsudo systemctl start nginx # 启动服务 sudo systemctl stop nginx # 停止服务 sudo systemctl restart nginx # 重启服务 sudo systemctl reload nginx # 重新加载配置（不中断服务） sudo systemctl status nginx # 查看状态（非常有用） sudo systemctl enable nginx # 设置开机自启 sudo systemctl disable nginx # 取消开机自启 systemctl list-units --type=service # 查看所有服务 systemctl list-units --failed # 查看失败的服务 status 命令特别有用，能看到服务是否在运行、最近的日志、PID 等信息。\n网络相关 查看网络信息 ip addr # 查看 IP 地址（取代 ifconfig） ip route # 查看路由表 ss -tlnp # 查看哪些端口在被占用（取代 netstat） ss -tnp # 查看当前网络连接 ss -tlnp 这个命令特别有用，当你发现某个服务起不来、端口被占用的时候，用它查一下就知道是谁在占着。\n网络测试 ping google.com # 测试网络连通性 ping -c 4 google.com # 只 ping 4 次 traceroute google.com # 追踪路由 curl https://example.com # 发 HTTP 请求 curl -I https://example.com # 只看响应头 wget https://xxx.com/file.zip # 下载文件 DNS 相关 nslookup google.com # DNS 查询 dig google.com # 更详细的 DNS 查询 cat /etc/resolv.conf # 查看 DNS 配置 防火墙 Ubuntu 用 ufw，CentOS 用 firewalld：\n# Ubuntu/ufw sudo ufw status # 查看状态 sudo ufw enable # 启用防火墙 sudo ufw allow 22 # 允许 22 端口（SSH） sudo ufw allow 80/tcp # 允许 80 端口（HTTP） sudo ufw allow 443/tcp # 允许 443 端口（HTTPS） sudo ufw delete allow 80 # 删除规则 # CentOS/firewalld sudo firewall-cmd --state sudo firewall-cmd --add-service=http --permanent sudo firewall-cmd --reload 文本编辑：vim 还是 nano 编辑配置文件是 Linux 日常操作。两个常用的编辑器：\nnano（推荐新手） sudo nano /etc/nginx/nginx.conf 界面友好，底部有快捷键提示。Ctrl+O 保存，Ctrl+X 退出，Ctrl+K 剪切行，Ctrl+U 粘贴。\nvim（功能强大） sudo vim /etc/nginx/nginx.conf vim 有三种模式：普通模式、插入模式、命令模式。刚打开是普通模式，按 i 进入插入模式可以编辑，按 Esc 回到普通模式，输入 :wq 保存退出，:q! 不保存退出。\n如果你不小心打开了 vim 不知道怎么退出：按 Esc，然后输入 :q! 回车。\n我的建议：新手先用 nano，等你熟练了再学 vim。别一上来就逼自己用 vim，会疯的。\n磁盘和存储 查看磁盘 df -h # 查看磁盘使用情况（人类可读格式） du -sh /home/xyf # 查看某个目录占用多大 du -sh * | sort -rh # 当前目录下各文件/文件夹大小排序 lsblk # 查看磁盘分区 挂载 sudo mount /dev/sdb1 /mnt/usb # 挂载设备 sudo umount /mnt/usb # 卸载 压缩和解压 tar -czf archive.tar.gz folder/ # 压缩 tar -xzf archive.tar.gz # 解压 tar -xzf archive.tar.gz -C /target/ # 解压到指定目录 zip -r archive.zip folder/ # zip 压缩 unzip archive.zip # zip 解压 tar 参数记忆：c 创建，x 解压，z gzip，f 文件，v 显示过程。\n定时任务：cron 想让某个命令定期自动执行？用 cron：\ncrontab -e # 编辑当前用户的定时任务 crontab -l # 查看当前用户的定时任务 cron 表达式格式：\n分 时 日 月 周 命令 * * * * * command 例子：\n0 2 * * * /usr/bin/backup.sh # 每天凌晨 2 点执行 */5 * * * * /usr/bin/check.sh # 每 5 分钟执行一次 0 0 * * 0 /usr/bin/cleanup.sh # 每周日零点执行 0 9-18 * * 1-5 /usr/bin/monitor.sh # 工作日 9-18 点每小时执行 * 表示\u0026quot;每\u0026quot;，*/5 表示\u0026quot;每隔 5\u0026quot;，9-18 表示\u0026quot;9 到 18\u0026quot;，1-5 表示\u0026quot;周一到周五\u0026quot;。\n日志查看 出问题了第一件事就是看日志。\n系统日志 journalctl # 查看所有系统日志 journalctl -u nginx # 查看 nginx 的日志 journalctl -u nginx --since today # 只看今天的 journalctl -f # 实时跟踪（类似 tail -f） journalctl -p err # 只看错误级别的 应用日志 大部分应用的日志在 /var/log/ 下面：\nls /var/log/ # 看有哪些日志 tail -f /var/log/nginx/access.log # 实时跟踪 nginx 访问日志 tail -f /var/log/nginx/error.log # 实时跟踪 nginx 错误日志 tail -100 /var/log/syslog # 看最后 100 行系统日志 SSH：远程连接 SSH 是连接远程 Linux 服务器的标准方式。\n基本连接 ssh user@hostname # 密码登录 ssh -p 2222 user@hostname # 指定端口 ssh -i ~/.ssh/key user@host # 使用密钥文件 密钥认证（推荐） 比密码安全，也更方便：\n# 生成密钥对 ssh-keygen -t ed25519 -C \u0026#34;your_email@example.com\u0026#34; # 把公钥复制到服务器 ssh-copy-id user@hostname # 之后就可以免密登录了 ssh user@hostname 文件传输 scp file.txt user@host:/remote/path/ # 上传文件 scp user@host:/remote/file.txt ./local/ # 下载文件 scp -r folder/ user@host:/remote/path/ # 上传文件夹 rsync -avz folder/ user@host:/remote/path/ # 同步文件（推荐，支持增量） 系统监控 查看系统资源 # CPU 和内存 top # 实时监控（按 q 退出） htop # 更好看的 top（需要安装） free -h # 查看内存使用 # 磁盘 df -h # 磁盘使用情况 iotop # 磁盘 I/O 监控（需要安装） # 网络 iftop # 网络流量监控（需要安装） nethogs # 按进程查看网络流量（需要安装） 查看系统信息 uname -a # 内核版本 cat /etc/os-release # 发行版信息 lsb_release -a # Ubuntu 版本 uptime # 运行时间和负载 遇到问题怎么办 看日志。 大部分服务的日志在 /var/log/ 下面。也可以用 journalctl -u 服务名 查看 systemd 管理的服务日志。\n看报错信息。 终端里报的错一般都很明确，把报错信息复制下来搜一下，十有八九有人遇到过同样的问题。\nman 命令。 不知道某个命令怎么用？man ls 就能看 ls 的完整文档。按 q 退出。虽然大部分是英文，但参数说明都在那。\n--help 参数。 大部分命令支持 命令 --help，显示简要帮助信息。\n善用 Tab 键。 输入命令或文件路径的时候按 Tab 可以自动补全，省得打错字。按两下 Tab 显示所有可能的选项。\n善用上下箭头。 翻看之前执行过的命令，不用重新打。\n善用 Ctrl+R。 搜索历史命令，输入关键词就能找到之前执行过的命令。\n一些小技巧 管道： | 可以把前一个命令的输出传给后一个命令。比如 ps aux | grep nginx 就是把所有进程的输出传给 grep 去筛选。\n重定向： \u0026gt; 把输出写入文件（覆盖），\u0026gt;\u0026gt; 是追加。2\u0026gt;\u0026amp;1 把错误输出也重定向。\n后台运行： 命令后面加 \u0026amp; 可以让它在后台跑。Ctrl+Z 挂起当前命令，bg 让它在后台继续，fg 拉回前台。\n通配符： * 匹配任意字符，? 匹配单个字符。rm *.tmp 删除所有 tmp 文件。\n命令组合： \u0026amp;\u0026amp; 前一个成功才执行后一个，|| 前一个失败才执行后一个，; 依次执行不管成败。\n别名： 给常用命令起别名：\n# 在 ~/.bashrc 或 ~/.zshrc 中添加 alias ll=\u0026#39;ls -la\u0026#39; alias gs=\u0026#39;git status\u0026#39; alias dc=\u0026#39;docker compose\u0026#39; alias dps=\u0026#39;docker ps\u0026#39; 最后 Linux 这东西，光看教程是学不会的。你得自己动手，装个虚拟机或者搞个云服务器，真的去敲命令。\n刚开始肯定会犯错，会把东西搞坏，会对着终端发呆。没关系，大家都这么过来的。\n我到现在也不敢说精通 Linux，经常还是要查文档、搜 Stack Overflow。但这不丢人，谁都不是一开始就会的。\n记住一句话：在 Linux 里，没有什么问题是搜索引擎解决不了的。如果有，就换个关键词再搜一次。\n写给每一个在终端面前感到无助的新手，你不是一个人。\n","permalink":"https://skyrk.xyz/posts/linux-guide/","summary":"从安装到日常使用，从基础命令到系统管理，一个过来人写给 Linux 新手的完整生存指南。","title":"Linux 从入门到精通：一个过来人的完全生存指南"},{"content":"第一次听说 Docker 的时候，我以为是某种船的名字。\n后来才知道是个装软件的东西。但你上网一搜，全是\u0026quot;容器化\u0026quot;\u0026ldquo;微服务\u0026quot;\u0026ldquo;镜像编排\u0026quot;这种词，看得人头大。我当初就是被这些概念劝退了好几次。\n直到有一天，我需要在服务器上搭个东西，折腾了俩小时环境配置都没弄好，旁边同事五分钟就搞定了。我问他怎么弄的，他说：\u0026ldquo;Docker 啊，一条命令的事。\u0026rdquo;\n那一刻我决定认真学一下。\n先别管概念，你就把它想象成一个盒子 Docker 是干嘛的？说白了就是把一个软件和它需要的所有东西打包成一个盒子，你拿到任何电脑上都能直接用。\n以前装软件有多痛苦大家都经历过吧？装个 Python 要配环境变量，装个数据库要改一堆配置文件，换台电脑又得重来一遍。而且最恶心的是，你电脑上装的 A 软件需要 Python 3.8，B 软件需要 Python 3.11，两个版本打架，最后谁也跑不起来。\nDocker 解决的就是这个问题。每个盒子（容器）里面自带一套完整的运行环境，互不干扰。你电脑上装的是 Python 3.11 没关系，盒子里面用的是 3.8，各玩各的。\n镜像和容器的关系 这里要分清两个概念：镜像和容器。\n镜像就像一个安装光盘，里面打包好了软件和环境。容器就像你用这个光盘装出来的软件实例。一个镜像可以装出很多个容器，就像一张光盘可以装很多台电脑。\n你改了容器里的东西不会影响镜像，就像你装完软件后的操作不会改变安装光盘。但反过来，如果你想保存容器里的改动，可以把它\u0026quot;提交\u0026quot;成一个新的镜像。\n用一张图来理解：\n镜像 (Image) 容器 (Container) ┌─────────────┐ ┌─────────────┐ │ Ubuntu 基础 │ docker run │ Ubuntu 基础 │ │ + Python 3.8 │ ─────────→ │ + Python 3.8 │ │ + 你的代码 │ │ + 你的代码 │ │ + 依赖库 │ │ + 依赖库 │ │ (只读模板) │ │ + 运行状态 │ └─────────────┘ │ (可读可写) │ └─────────────┘ 一个镜像可以创建多个容器 Docker 和虚拟机的区别 很多人会问：Docker 和虚拟机有什么区别？不都是隔离环境吗？\n虚拟机是模拟一整台电脑，包括操作系统。所以虚拟机很重，启动要几分钟，占内存也多。\nDocker 容器只隔离应用层，共用宿主机的操作系统内核。所以容器很轻，启动只要几秒钟，内存占用也小得多。\n打个比方：虚拟机就像在一栋楼里隔出独立的房间，每个房间都要装自己的水电。Docker 就像在同一套房子里隔出不同的工位，水电是共用的，但各自的东西互不干扰。\n虚拟机 Docker 容器 ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │ App1 │ │ App2 │ │ App3 │ │ App1 │ │ App2 │ │ App3 │ │ │ │ │ │ │ ├──────┤ ├──────┤ ├──────┤ │ Bins │ │ Bins │ │ Bins │ │ Bins │ │ Bins │ │ Bins │ │ │ │ │ │ │ └──────┘ └──────┘ └──────┘ │ OS │ │ OS │ │ OS │ ┌──────────────────────────┐ ├──────┤ ├──────┤ ├──────┤ │ Docker Engine │ │Hypervisor │ │ (共享宿主机内核) │ ├──────────────┤ ├──────────────────────────┤ │ 宿主机 OS │ │ 宿主机 OS │ └──────────────┘ └──────────────────────────┘ 虚拟机 Docker 容器 启动时间 分钟级 秒级 内存占用 GB 级 MB 级 镜像大小 GB 级 MB 级 隔离级别 完全隔离（含内核） 进程级隔离（共享内核） 性能 有损耗 接近原生 装 Docker 说实话装 Docker 这一步是最简单的。\nLinux（Ubuntu/Debian） # 一键安装脚本 curl -fsSL https://get.docker.com | sh # 把当前用户加到 docker 组（不用每次都 sudo） sudo usermod -aG docker $USER 然后重新登录一下终端（或者重启），让组权限生效。\nCentOS/RHEL/Fedora sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker Windows 和 Mac 去 Docker 官网 下载 Docker Desktop，装好打开就行。跟装个微信差不多。\nWindows 用户注意：需要开启 WSL2（Windows Subsystem for Linux）。Docker Desktop 安装过程中会引导你开启，跟着提示走就行。\n验证安装 docker --version # Docker version 24.x.x, build xxxxx docker run hello-world 能看到版本号，跑 hello-world 能看到 \u0026ldquo;Hello from Docker!\u0026quot;，就说明装好了。\n配置镜像加速（国内用户必做） 国内直接拉 Docker Hub 的镜像很慢，需要配置镜像加速器：\nsudo tee /etc/docker/daemon.json \u0026lt;\u0026lt; \u0026#39;EOF\u0026#39; { \u0026#34;registry-mirrors\u0026#34;: [ \u0026#34;https://docker.1ms.run\u0026#34;, \u0026#34;https://docker.xuanyuan.me\u0026#34; ] } EOF sudo systemctl daemon-reload sudo systemctl restart docker 镜像操作：你的软件仓库 搜索镜像 想找什么软件，先搜一下：\ndocker search nginx 不过说实话，我一般直接去 Docker Hub 网站上搜，能看到详细说明和下载量，比命令行方便。\n拉取镜像 下载一个镜像到本地：\ndocker pull nginx # 默认拉最新版 docker pull nginx:1.24 # 拉指定版本 docker pull mysql:8.0 # 拉 MySQL 8.0 版本号不写的话默认是 latest。建议在生产环境里明确指定版本，不然哪天自动更新了可能会出问题。\n查看本地镜像 docker images 会列出你本地所有镜像，包括仓库名、版本、大小、创建时间等。\n删除镜像 docker rmi nginx:latest # 删除指定镜像 docker image prune # 清理没用的镜像（悬空镜像） docker image prune -a # 清理所有没被容器使用的镜像 容器操作：核心中的核心 运行容器 docker run -d -p 8080:80 --name my-nginx nginx 这条命令拆开看：\ndocker run：创建并启动一个容器 -d：后台运行（detach），不占着你的终端 -p 8080:80：端口映射，把电脑的 8080 端口映射到容器里的 80 端口 --name my-nginx：给容器起个名字，方便后面操作 nginx：用哪个镜像 跑完之后打开浏览器访问 http://localhost:8080，你会看到 nginx 的欢迎页面。\n查看运行中的容器 docker ps 能看到容器的 ID、用的什么镜像、端口映射、运行了多久等等。\n如果想看所有容器（包括已经停了的）：\ndocker ps -a 停止、启动、重启容器 docker stop my-nginx # 停止 docker start my-nginx # 启动 docker restart my-nginx # 重启 删除容器 docker rm my-nginx # 删除已停止的容器 docker rm -f my-nginx # 强制删除（即使还在运行） 查看容器日志 出问题了第一件事就是看日志：\ndocker logs my-nginx # 查看全部日志 docker logs -f my-nginx # 实时跟踪日志（类似 tail -f） docker logs --tail 100 my-nginx # 只看最后 100 行 进入容器内部 有时候你需要进到容器里面看看：\ndocker exec -it my-nginx /bin/bash # 进入容器的 bash docker exec -it my-nginx sh # 如果没有 bash，用 sh 进去之后就像登录了一台新的 Linux 一样，可以执行各种命令。输入 exit 退出。\n查看容器资源占用 docker stats 实时显示每个容器的 CPU、内存、网络、磁盘使用情况。\n数据持久化：Volume 这是新手最容易踩的坑：容器里的数据默认不保存，容器一删数据就没了。\n为什么需要 Volume 容器的设计理念是\u0026quot;用完即弃\u0026rdquo;。你可以随时删除容器再用同一个镜像创建一个新的。但数据库里的数据、用户上传的文件这些不能丢啊。\nVolume 就是把容器里的某个目录映射到宿主机上，这样即使容器删了，数据还在宿主机上。\n使用 Volume # 命名卷（Docker 管理） docker run -d -p 3306:3306 \\ -v mysql_data:/var/lib/mysql \\ -e MYSQL_ROOT_PASSWORD=123456 \\ --name my-mysql \\ mysql:8.0 # 绑定挂载（指定宿主机目录） docker run -d -p 8080:80 \\ -v /home/xyf/website:/usr/share/nginx/html \\ --name my-nginx \\ nginx 命名卷由 Docker 管理，存在 Docker 的数据目录里。绑定挂载是你自己指定宿主机的哪个目录。\n管理 Volume docker volume ls # 列出所有卷 docker volume inspect my_vol # 查看卷详情 docker volume rm my_vol # 删除卷 docker volume prune # 清理没用的卷 网络：容器之间怎么通信 端口映射 前面已经说了，-p 参数做端口映射：\n-p 8080:80 # 宿主机 8080 → 容器 80 -p 80:80 # 宿主机 80 → 容器 80 -p 127.0.0.1:8080:80 # 只允许本机访问 容器间通信 同一个 Docker 网络里的容器可以用容器名互相访问：\n# 创建网络 docker network create mynet # 在同一个网络里启动两个容器 docker run -d --name web --network mynet nginx docker run -d --name db --network mynet mysql:8.0 这样 web 容器里可以直接用 db 作为主机名访问 MySQL 容器，不需要知道 IP 地址。\nDockerfile：构建自己的镜像 你可能会问，那些镜像是谁做的？大部分是软件官方做的。但有时候你需要把自己的代码打包成镜像。\n基本结构 创建一个叫 Dockerfile 的文件（没有后缀名）：\n# 基础镜像 FROM python:3.11-slim # 设置工作目录 WORKDIR /app # 复制依赖文件 COPY requirements.txt . # 安装依赖 RUN pip install --no-cache-dir -r requirements.txt # 复制代码 COPY . . # 暴露端口 EXPOSE 8000 # 启动命令 CMD [\u0026#34;python\u0026#34;, \u0026#34;app.py\u0026#34;] 构建镜像 docker build -t myapp:1.0 . -t myapp:1.0：给镜像起名字和版本号 .：Dockerfile 所在的目录（当前目录） 常用指令 FROM python:3.11 # 基础镜像 WORKDIR /app # 设置工作目录 COPY . . # 复制文件到容器里 RUN pip install -r requirements.txt # 构建时执行的命令 ENV APP_ENV=production # 设置环境变量 EXPOSE 8000 # 声明端口（文档作用，不实际开放） CMD [\u0026#34;python\u0026#34;, \u0026#34;app.py\u0026#34;] # 容器启动时执行的命令 ENTRYPOINT [\u0026#34;python\u0026#34;] # 入口点，CMD 作为参数追加 .dockerignore 文件 和 .gitignore 类似，告诉 Docker 哪些文件不要复制到镜像里：\n.git node_modules __pycache__ *.pyc .env 多阶段构建：让镜像更小 # 构建阶段 FROM golang:1.21 AS builder WORKDIR /app COPY . . RUN go build -o myapp . # 运行阶段 FROM alpine:latest COPY --from=builder /app/myapp /myapp CMD [\u0026#34;/myapp\u0026#34;] 这样最终镜像只有几 MB，而不是几百 MB。\nDocker Compose：多容器编排 单个容器跑起来不难，但实际用的时候一般需要好几个服务配合。比如搭个网站可能需要：Web 服务器 + 数据库 + 缓存 + 后端 API。\n一个一个手动启动太麻烦了，Docker Compose 就是干这个的——用一个配置文件把所有容器的启动方式写好，一条命令全部启动。\n安装 Docker Desktop 自带 Docker Compose。Linux 上需要单独安装：\nsudo apt install docker-compose-plugin 验证：\ndocker compose version 配置文件 创建一个 docker-compose.yml 文件：\nservices: web: image: nginx:1.24 ports: - \u0026#34;80:80\u0026#34; volumes: - ./html:/usr/share/nginx/html depends_on: - api api: build: ./api ports: - \u0026#34;8000:8000\u0026#34; environment: - DATABASE_URL=mysql://root:123456@db:3306/myapp depends_on: - db db: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: myapp volumes: - db_data:/var/lib/mysql volumes: db_data: 常用命令 # 启动所有服务（后台运行） docker compose up -d # 查看状态 docker compose ps # 查看日志 docker compose logs -f # 停止所有服务 docker compose down # 停止并删除卷（数据会丢！） docker compose down -v # 重新构建并启动 docker compose up -d --build # 进入某个容器 docker compose exec api bash 实际案例：一键搭建 WordPress services: wordpress: image: wordpress:latest ports: - \u0026#34;8080:80\u0026#34; environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: root WORDPRESS_DB_PASSWORD: 123456 WORDPRESS_DB_NAME: wordpress volumes: - wp_data:/var/www/html depends_on: - db db: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: wordpress volumes: - db_data:/var/lib/mysql volumes: wp_data: db_data: docker compose up -d，打开 http://localhost:8080，就能看到 WordPress 的安装界面了。\n常见问题和踩坑记录 1. 容器启动就退出了 docker ps -a # 看看退出码 docker logs 容器名 # 看日志找原因 最常见的原因是主进程结束了。Docker 容器的生命和主进程绑定，主进程一结束容器就停了。确保你的应用在前台运行，不要用 \u0026amp; 后台执行。\n2. 端口被占用 Error: bind: address already in use 说明宿主机上已经有东西占了这个端口。换个端口映射就行，或者先停掉占用端口的服务。\n3. 容器内无法访问外网 可能是 DNS 问题。试试：\ndocker run --dns 223.5.5.5 alpine ping google.com 4. 镜像太大 用多阶段构建减小镜像体积（见上面 Dockerfile 章节）。\n5. 数据丢失 再说一遍：容器删了数据就没了。 重要的数据一定要用 Volume 挂载出来。\n6. 时区问题 容器默认是 UTC 时区。设置中国时区：\nENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime 或者在 docker-compose.yml 里：\nenvironment: - TZ=Asia/Shanghai 7. 权限问题 挂载的目录可能会有权限问题：\n# 查看容器内用户 docker exec -it my-nginx id # 修改挂载目录权限 chmod -R 755 /home/xyf/website 一些实用技巧 清理空间 Docker 用久了会占用很多磁盘空间：\ndocker system df # 查看占用 docker system prune # 清理停止的容器、没用的网络、悬空镜像 docker system prune -a # 清理所有没被使用的镜像（慎用） 导出和导入镜像 没有网络的环境下很有用：\ndocker save myapp:1.0 \u0026gt; myapp.tar # 导出 docker load \u0026lt; myapp.tar # 导入 限制容器资源 docker run -d --memory=512m --cpus=1.5 nginx 限制容器最多用 512MB 内存和 1.5 个 CPU 核心。在共享服务器上很有用，防止某个容器把资源吃光。\n查看容器的详细信息 docker inspect my-nginx 返回 JSON 格式的详细信息，包括网络配置、挂载点、环境变量等。\n最后 Docker 这东西，入门真的不难。你不需要把所有概念都搞懂才能用，先跑起来，遇到问题再查。\n我现在的习惯是，能用 Docker 跑的东西尽量用 Docker。换电脑、换服务器的时候直接把 docker-compose.yml 一拷，环境就全好了，再也不用从零开始配环境了。\n如果你也被环境配置折磨过，试试 Docker 吧，真的能省不少事。\n写给和我一样被环境配置搞崩溃过的朋友们。\n","permalink":"https://skyrk.xyz/posts/docker-for-beginners/","summary":"别被那些高大上的概念吓到，Docker 其实就这么回事。从安装到实战，一篇搞定。","title":"Docker 到底是个啥？一个菜鸟的从零开始指南"},{"content":"昨晚又失眠了。\n躺在那儿盯着天花板，脑子里乱七八糟的。想工作，想以后，想自己到底在干嘛。翻来覆去到两点多，最后还是拿起手机刷了会儿短视频，刷完更空虚了。\n我不知道你们有没有这种感觉——就是突然有那么一刻，觉得自己做的所有事情都没什么意义。上班、下班、吃饭、睡觉，日复一日。不是不开心，也不是特别开心，就是……麻木。\n迷茫是从什么时候开始的 仔细想想，好像从大学毕业那会儿就开始了。\n上学的时候目标很明确：考试、升学、拿文凭。虽然累，但至少知道自己在往哪走。毕业那天拍完照，突然发现——接下来呢？没人告诉你该往哪走了。\n第一份工作干了不到一年就辞了。不是因为受不了，是因为看不到头。每天做的事情都差不多，我跟自己说\u0026quot;再忍忍就好了\u0026quot;，但忍了半年发现并不会好。辞职那天反而松了口气，但紧接着又慌了：辞了然后呢？\n然后就陷入了那种\u0026quot;想做点什么又不知道做什么\u0026quot;的状态。\n别人好像都挺好的 最难受的是看朋友圈。\n有人考研上岸了，有人升职加薪了，有人结婚生娃了，有人创业融资了。每个人都过得热气腾腾的，只有自己像个旁观者。\n后来跟一个朋友喝酒，聊到凌晨。他说他也迷茫，天天加班到十一二点，回家倒头就睡，第二天睁眼又是循环。我问他那你为什么不换，他说\u0026quot;换了又能怎样\u0026quot;。\n我才意识到，原来大家都不容易。朋友圈那个东西，看看就行了，谁会把一地鸡毛发出来呢。\n试过一些\u0026quot;自救\u0026quot;的方法 说实话，迷茫的时候真的很容易被割韭菜。\n买过那种199的\u0026quot;人生规划课\u0026quot;，听完热血沸腾了三天，然后该干嘛干嘛。买过一堆书，《被讨厌的勇气》《认知觉醒》《纳瓦尔宝典》，翻了几页就搁那儿吃灰了。甚至试过早起打卡、冥想、写日记，坚持了不到一周就放弃了。\n不是这些方法没用，是我那会儿根本沉不下心来。心里太慌了，做什么都觉得是在浪费时间，不做什么又觉得在虚度光阴。\n后来怎么好的 说实话，也没有\u0026quot;好\u0026quot;这个说法，就是慢慢接受了。\n有一次周末去爬山，爬到一半坐在台阶上喘气，旁边一个大爷也在歇着。他看了我一眼说：\u0026ldquo;年轻人，慢慢爬，不着急。山顶又不会跑。\u0026rdquo;\n就这句话，不知道为什么突然戳到我了。\n我一直在急。急着找到方向，急着做出成绩，急着证明自己。但其实很多事情急不来。二十多岁不知道自己要干什么，太正常了。谁二十多岁就活明白了？那些看起来活明白了的，多半也是装的。\n后来我就不再逼自己了。想学的东西就去学，学不下去就放下。想见的人就去见，不想出门就宅着。不给自己定什么\u0026quot;三年计划\u0026quot;\u0026ldquo;五年目标\u0026quot;了，过好眼前这一天就行。\n迷茫其实不丢人 现在回头看，那段迷茫的日子其实也不全是坏事。\n正是因为不知道要干嘛，才去试了很多以前不会试的东西。学过剪辑，学过写代码，去过好几个城市，认识了各种各样的人。虽然最后很多都没坚持下来，但至少知道自己不喜欢什么了。\n有时候\u0026quot;不知道想要什么\u0026quot;也没关系，先排除不想要的，剩下的慢慢筛选呗。\n我到现在也不敢说自己\u0026quot;不迷茫\u0026quot;了。偶尔还是会焦虑，还是会在深夜怀疑人生。但比起以前，至少不那么慌了。因为我知道，迷茫是常态，清醒才是偶尔的。\n写在最后 如果你现在也正迷茫，我想说几句掏心窝子的话：\n别急着找答案。 有些问题不是想出来的，是活出来的。想不通的事情就先放一放，过段时间回头看，可能就没那么难了。\n别老跟别人比。 每个人的节奏不一样，有人二十五岁就年薪百万，有人三十岁才刚开始。没有谁对谁错，走自己的路就行。\n别把迷茫当成失败。 会迷茫说明你在思考，在思考说明你还没放弃。真正可怕的是那种从来不迷茫的人——要么是想得太少，要么是骗自己。\n实在难受就出去走走。 不一定要去什么远方，楼下公园转一圈也行。换个环境，换个心情，有时候想法就通了。\n人生嘛，走一步看一步也没什么不好。反正山顶又不会跑。\n写于一个失眠的夜晚，送给所有还在路上的人。\n","permalink":"https://skyrk.xyz/posts/mihuang/","summary":"写给那些半夜睡不着、不知道自己要干嘛的人。","title":"迷茫这事儿，谁也躲不过"},{"content":"部署这件事，以前有多痛苦大家都懂。装环境、改配置、解决依赖冲突，一台新机器搞半天。Docker 出来之后，这些事情基本变成了一条命令的事。\n这篇文章不是 Docker 入门教程（入门教程看我另一篇），而是聚焦在怎么用 Docker 把应用部署到生产环境。从最简单的单容器部署，到多服务编排，再到数据持久化、网络配置、日志监控，一步步来。\n一、安装 Docker Linux（Ubuntu/Debian） # 官方一键安装脚本 curl -fsSL https://get.docker.com | sh # 将当前用户加入 docker 组（免 sudo） sudo usermod -aG docker $USER # 重新登录终端让组权限生效 newgrp docker # 验证安装 docker --version docker compose version docker run hello-world CentOS/RHEL sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin sudo systemctl start docker sudo systemctl enable docker Windows / macOS 下载 Docker Desktop，安装即可。Windows 需要先开启 WSL2，安装过程会自动引导。\n配置镜像加速 国内拉取 Docker Hub 镜像很慢，配置镜像加速器：\n// /etc/docker/daemon.json { \u0026#34;registry-mirrors\u0026#34;: [ \u0026#34;https://docker.1ms.run\u0026#34;, \u0026#34;https://docker.xuanyuan.me\u0026#34; ], \u0026#34;log-driver\u0026#34;: \u0026#34;json-file\u0026#34;, \u0026#34;log-opts\u0026#34;: { \u0026#34;max-size\u0026#34;: \u0026#34;10m\u0026#34;, \u0026#34;max-file\u0026#34;: \u0026#34;3\u0026#34; } } log-opts 限制了每个容器的日志大小（最大 10MB，保留 3 个文件），防止日志撑爆磁盘。这在生产环境非常重要。\nsudo systemctl daemon-reload sudo systemctl restart docker 二、单容器部署 最简单的部署方式，适合单个服务。\n基本语法 docker run [选项] 镜像名[:标签] 常用选项 选项 作用 示例 -d 后台运行 docker run -d nginx -p 端口映射 -p 8080:80 --name 容器命名 --name my-nginx -v 数据卷挂载 -v /data:/var/data -e 环境变量 -e MYSQL_ROOT_PASSWORD=123 --restart 重启策略 --restart unless-stopped --memory 内存限制 --memory=512m --cpus CPU 限制 --cpus=1.5 --network 指定网络 --network mynet 实战：部署 Nginx docker run -d \\ --name nginx \\ -p 80:80 \\ -p 443:443 \\ -v /var/www/html:/usr/share/nginx/html:ro \\ -v /etc/nginx/conf.d:/etc/nginx/conf.d:ro \\ --restart unless-stopped \\ nginx:1.24-alpine :ro 表示只读挂载，容器不能修改宿主机文件 nginx:1.24-alpine 用 Alpine 版本，镜像更小（约 20MB vs 约 140MB） --restart unless-stopped 保证服务器重启后容器自动启动 实战：部署 MySQL docker run -d \\ --name mysql \\ -p 3306:3306 \\ -e MYSQL_ROOT_PASSWORD=your_secure_password \\ -e MYSQL_DATABASE=myapp \\ -e MYSQL_USER=app_user \\ -e MYSQL_PASSWORD=app_password \\ -v mysql_data:/var/lib/mysql \\ --restart unless-stopped \\ --memory=1g \\ mysql:8.0 用命名卷 mysql_data 持久化数据 限制内存为 1GB，防止数据库吃光内存 通过环境变量自动创建数据库和用户 实战：部署 Redis docker run -d \\ --name redis \\ -p 6379:6379 \\ -v redis_data:/data \\ --restart unless-stopped \\ redis:7-alpine redis-server --appendonly yes --maxmemory 256mb --appendonly yes 开启 AOF 持久化 --maxmemory 256mb 限制内存使用 实战：部署 PostgreSQL docker run -d \\ --name postgres \\ -p 5432:5432 \\ -e POSTGRES_PASSWORD=your_secure_password \\ -e POSTGRES_DB=myapp \\ -e POSTGRES_USER=app_user \\ -v pg_data:/var/lib/postgresql/data \\ --restart unless-stopped \\ postgres:16-alpine 三、Docker Compose：多服务编排 实际项目通常需要多个服务配合（Web + 数据库 + 缓存 + 反向代理）。一个一个手动启动太麻烦，Docker Compose 用一个配置文件搞定。\n基本结构 # docker-compose.yml services: 服务名: image: 镜像名 # 或 build: ./目录（从 Dockerfile 构建） ports: # 端口映射 - \u0026#34;宿主机:容器\u0026#34; volumes: # 数据卷 - 卷名:容器路径 environment: # 环境变量 - KEY=VALUE depends_on: # 依赖关系 - 其他服务 restart: unless-stopped 实战：Web 应用 + MySQL + Redis services: app: build: . ports: - \u0026#34;8080:8080\u0026#34; environment: - DB_HOST=db - DB_PORT=3306 - DB_PASSWORD=your_password - REDIS_HOST=cache - REDIS_PORT=6379 depends_on: db: condition: service_healthy cache: condition: service_started restart: unless-stopped db: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: your_password MYSQL_DATABASE: myapp volumes: - mysql_data:/var/lib/mysql healthcheck: test: [\u0026#34;CMD\u0026#34;, \u0026#34;mysqladmin\u0026#34;, \u0026#34;ping\u0026#34;, \u0026#34;-h\u0026#34;, \u0026#34;localhost\u0026#34;] interval: 10s timeout: 5s retries: 5 restart: unless-stopped cache: image: redis:7-alpine volumes: - redis_data:/data restart: unless-stopped nginx: image: nginx:1.24-alpine ports: - \u0026#34;80:80\u0026#34; - \u0026#34;443:443\u0026#34; volumes: - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro - ./ssl:/etc/nginx/ssl:ro depends_on: - app restart: unless-stopped volumes: mysql_data: redis_data: healthcheck：健康检查 depends_on 默认只等容器启动，不等服务就绪。数据库可能还没初始化完成，应用就去连接了。加 healthcheck 可以解决这个问题：\ndb: image: mysql:8.0 healthcheck: test: [\u0026#34;CMD\u0026#34;, \u0026#34;mysqladmin\u0026#34;, \u0026#34;ping\u0026#34;, \u0026#34;-h\u0026#34;, \u0026#34;localhost\u0026#34;] interval: 10s # 每 10 秒检查一次 timeout: 5s # 超时时间 retries: 5 # 重试次数 start_period: 30s # 启动等待时间 应用端用 depends_on 的 condition: service_healthy 等待数据库就绪。\n常用命令 # 启动所有服务（后台运行） docker compose up -d # 启动并重新构建 docker compose up -d --build # 查看状态 docker compose ps # 查看日志 docker compose logs -f # 所有服务 docker compose logs -f app # 指定服务 docker compose logs --tail 100 app # 最后 100 行 # 停止所有服务 docker compose down # 停止并删除卷（⚠️ 数据会丢） docker compose down -v # 只启动某个服务 docker compose up -d db # 进入容器 docker compose exec app bash # 重启某个服务 docker compose restart app # 查看资源占用 docker compose top 四、Dockerfile：构建自己的镜像 基本结构 # 基础镜像 FROM python:3.11-slim # 设置工作目录 WORKDIR /app # 先复制依赖文件（利用缓存层） COPY requirements.txt . # 安装依赖 RUN pip install --no-cache-dir -r requirements.txt # 复制代码 COPY . . # 暴露端口 EXPOSE 8000 # 启动命令 CMD [\u0026#34;python\u0026#34;, \u0026#34;app.py\u0026#34;] 多阶段构建：减小镜像体积 # 构建阶段 FROM golang:1.21 AS builder WORKDIR /app COPY go.mod go.sum ./ RUN go mod download COPY . . RUN CGO_ENABLED=0 go build -o myapp . # 运行阶段 FROM alpine:latest RUN apk --no-cache add ca-certificates COPY --from=builder /app/myapp /myapp CMD [\u0026#34;/myapp\u0026#34;] 最终镜像只有几 MB，而不是几百 MB。\n.dockerignore 和 .gitignore 类似，排除不需要的文件：\n.git node_modules __pycache__ *.pyc .env .env.local *.md tests/ 常用指令 指令 作用 示例 FROM 基础镜像 FROM python:3.11-slim WORKDIR 工作目录 WORKDIR /app COPY 复制文件 COPY . . RUN 构建时执行 RUN pip install -r requirements.txt ENV 环境变量 ENV APP_ENV=production EXPOSE 声明端口 EXPOSE 8000 CMD 启动命令 CMD [\u0026quot;python\u0026quot;, \u0026quot;app.py\u0026quot;] ENTRYPOINT 入口点 ENTRYPOINT [\u0026quot;python\u0026quot;] ARG 构建参数 ARG VERSION=1.0 HEALTHCHECK 健康检查 HEALTHCHECK CMD curl -f http://localhost/ 五、数据持久化 命名卷 vs 绑定挂载 类型 存储位置 适用场景 命名卷 Docker 管理（/var/lib/docker/volumes/） 数据库数据、应用数据 绑定挂载 宿主机指定目录 配置文件、代码、日志 # 命名卷 docker run -v mysql_data:/var/lib/mysql mysql:8.0 # 绑定挂载 docker run -v /home/user/website:/usr/share/nginx/html nginx # 只读挂载 docker run -v /etc/nginx/conf.d:/etc/nginx/conf.d:ro nginx Volume 管理 docker volume ls # 列出所有卷 docker volume inspect mysql_data # 查看详情 docker volume rm mysql_data # 删除卷 docker volume prune # 清理未使用的卷 备份数据 # 备份 MySQL 数据 docker exec mysql sh -c \u0026#39;mysqldump -u root -p\u0026#34;$MYSQL_ROOT_PASSWORD\u0026#34; --all-databases\u0026#39; \u0026gt; backup.sql # 备份卷数据 docker run --rm -v mysql_data:/data -v $(pwd):/backup alpine tar czf /backup/mysql_backup.tar.gz -C /data . # 恢复卷数据 docker run --rm -v mysql_data:/data -v $(pwd):/backup alpine tar xzf /backup/mysql_backup.tar.gz -C /data 六、网络配置 默认网络 Docker 默认创建一个 bridge 网络，同一网络内的容器可以用容器名互相访问。\ndocker network ls # 查看网络 docker network inspect bridge # 查看详情 自定义网络 # 创建自定义网络 docker network create mynet # 在自定义网络中启动容器 docker run -d --name web --network mynet nginx docker run -d --name db --network mynet mysql:8.0 # web 容器中可以直接用 \u0026#34;db\u0026#34; 作为主机名访问 MySQL docker exec web ping db Compose 中的网络 services: web: networks: - frontend - backend db: networks: - backend networks: frontend: backend: web 可以访问 frontend 和 backend，db 只能访问 backend。实现了网络隔离。\n七、日志管理 查看日志 # 实时跟踪 docker logs -f container_name # 最后 100 行 docker logs --tail 100 container_name # 指定时间范围 docker logs --since 2026-01-01T00:00:00 container_name docker logs --since 1h container_name # 最近 1 小时 日志驱动 在 daemon.json 中配置全局日志驱动：\n{ \u0026#34;log-driver\u0026#34;: \u0026#34;json-file\u0026#34;, \u0026#34;log-opts\u0026#34;: { \u0026#34;max-size\u0026#34;: \u0026#34;10m\u0026#34;, \u0026#34;max-file\u0026#34;: \u0026#34;3\u0026#34; } } 或者在 Compose 中为单个服务配置：\nservices: app: logging: driver: json-file options: max-size: \u0026#34;10m\u0026#34; max-file: \u0026#34;3\u0026#34; 集中日志 生产环境建议用集中日志方案：\n# 用 Loki + Promtail 收集日志 services: loki: image: grafana/loki:latest ports: - \u0026#34;3100:3100\u0026#34; volumes: - loki_data:/loki promtail: image: grafana/promtail:latest volumes: - /var/log:/var/log:ro - /var/lib/docker/containers:/var/lib/docker/containers:ro command: -config.file=/etc/promtail/config.yml 八、监控和资源管理 查看资源占用 # 实时查看所有容器的资源占用 docker stats # 只看一次（不实时刷新） docker stats --no-stream 限制资源 # 运行时限制 docker run -d --memory=512m --cpus=1.5 nginx # Compose 中限制 services: app: deploy: resources: limits: cpus: \u0026#39;1.5\u0026#39; memory: 512M reservations: cpus: \u0026#39;0.5\u0026#39; memory: 256M 健康检查 # Dockerfile 中定义 HEALTHCHECK --interval=30s --timeout=3s --retries=3 \\ CMD curl -f http://localhost:8080/health || exit 1 # Compose 中定义 services: app: healthcheck: test: [\u0026#34;CMD\u0026#34;, \u0026#34;curl\u0026#34;, \u0026#34;-f\u0026#34;, \u0026#34;http://localhost:8080/health\u0026#34;] interval: 30s timeout: 3s retries: 3 start_period: 10s 九、生产环境最佳实践 1. 永远指定版本标签 # ❌ 不要这样 docker pull nginx:latest # ✅ 要这样 docker pull nginx:1.24-alpine latest 可能随时更新，某天自动拉取后可能不兼容。\n2. 使用 Alpine 版本 # 普通版约 140MB docker pull nginx:1.24 # Alpine 版约 20MB docker pull nginx:1.24-alpine 大部分官方镜像都有 Alpine 版本，体积小很多。\n3. 设置重启策略 --restart unless-stopped 服务器重启后容器自动启动。unless-stopped 意味着手动停止的不会自动启动。\n4. 用 Volume 持久化数据 永远不要把数据存在容器里。 容器删了数据就没了。\n5. 限制资源 --memory=512m --cpus=1.5 防止单个容器吃光服务器资源。\n6. 限制日志大小 \u0026#34;log-opts\u0026#34;: { \u0026#34;max-size\u0026#34;: \u0026#34;10m\u0026#34;, \u0026#34;max-file\u0026#34;: \u0026#34;3\u0026#34; } 防止日志撑爆磁盘。\n7. 定期更新镜像 docker compose pull docker compose up -d 定期更新获取安全补丁。\n8. 不要用 root 运行应用 # Dockerfile 中创建非 root 用户 RUN addgroup -S appgroup \u0026amp;\u0026amp; adduser -S appuser -G appgroup USER appuser 9. 用 .env 文件管理敏感信息 # .env（不要提交到 git） MYSQL_ROOT_PASSWORD=your_secure_password APP_SECRET=your_app_secret # docker-compose.yml services: db: environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} # .gitignore .env 10. 安全扫描 # 扫描镜像漏洞 docker scout cves nginx:1.24 十、常见问题 容器启动就退出 docker ps -a # 查看退出码 docker logs 容器名 # 看日志 主进程结束 = 容器退出。确保应用在前台运行。\n端口被占用 # 查看谁占了端口 ss -tlnp | grep 80 # 换个端口映射 docker run -p 8080:80 nginx 容器内无法上网 # 检查 DNS docker run --rm alpine ping -c 3 google.com # 手动指定 DNS docker run --dns 223.5.5.5 alpine ping google.com 磁盘空间不足 # 查看 Docker 占用 docker system df # 清理无用资源 docker system prune -a --volumes 时区问题 environment: - TZ=Asia/Shanghai ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime 总结 Docker 部署的核心就是：Compose 编排 + Volume 持久化 + 资源限制 + 日志管理。\n掌握这四点，90% 的部署场景都能应对。遇到问题先看 docker logs，大部分都能定位。\n记住：不要把数据存在容器里，不要用 latest 标签，不要忘了限制日志大小。 这三条是生产环境的铁律。\n部署不应该是一件痛苦的事。\n","permalink":"https://skyrk.xyz/posts/docker-deploy/","summary":"从安装配置到生产部署，涵盖单容器、Compose 编排、数据持久化、网络配置、日志监控的完整实战指南。","title":"Docker 部署实战指南：从单容器到多服务编排"},{"content":"你有没有这种感觉：电脑刚买的时候飞快，用了半年就开始卡顿，打开个文件夹都要等两三秒？\n其实大部分情况下不是电脑变老了，是系统里积累了一堆垃圾——开机启动项越来越多、后台服务越装越多、临时文件越堆越大。就像一间房子，住久了不收拾自然就乱了。\n这篇文章会从开机到关机，一步步帮你把 Windows 打理干净。不需要装任何第三方\u0026quot;优化软件\u0026quot;，Windows 自带的工具加上几个 PowerShell 命令就够了。\n一、开机启动项：最直接的提速 开机慢的最大元凶就是启动项。很多软件装完之后默认把自己加到开机启动里，你根本没同意过。\n操作方法 Ctrl + Shift + Esc 打开任务管理器 → 点击「启动」选项卡。\n你会看到所有开机自启的程序，以及它们的「启动影响」评级（高/中/低）。\n建议保留的：\n杀毒软件（Windows Defender 或你装的第三方杀软） 显卡驱动相关（NVIDIA、AMD、Intel） 输入法（如果你用第三方输入法） 你确实需要开机就运行的软件 建议禁用的：\n各种聊天软件的自动启动（微信、QQ、钉钉等，需要的时候手动打开就行） 云盘同步（OneDrive、百度网盘等） 各种\u0026quot;助手\u0026quot;\u0026ldquo;管家\u0026quot;\u0026ldquo;加速器\u0026rdquo; 游戏平台（Steam、Epic 等） 你不认识的东西（直接搜一下名字就知道是什么了） 禁用方法：右键 → 禁用。不会删除软件，只是不让它开机自动启动。\n进阶：用 PowerShell 管理启动项 # 查看所有启动项 Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, Location # 查看注册表中的启动项 Get-ItemProperty -Path \u0026#34;HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\u0026#34; Get-ItemProperty -Path \u0026#34;HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\u0026#34; 二、后台服务：关掉不需要的 Windows 默认开启了很多服务，有些你可能永远用不到。\n可以安全关闭的服务 # Windows Search 索引（SSD 用户意义不大，机械硬盘用户建议保留） Stop-Service WSearch Set-Service WSearch -StartupType Disabled # SysMain（Superfetch）— SSD 用户可关闭，机械硬盘用户保留 Stop-Service SysMain Set-Service SysMain -StartupType Disabled # 传递优化（P2P 更新分发，把你的电脑当节点给别人推送更新） Stop-Service DoSvc Set-Service DoSvc -StartupType Disabled # 已连接用户体验和遥测（数据收集） Stop-Service DiagTrack Set-Service DiagTrack -StartupType Disabled # 程序兼容性助手 Stop-Service PcaSvc Set-Service PcaSvc -StartupType Disabled # 远程注册表（安全隐患，除非你需要远程管理） Stop-Service RemoteRegistry Set-Service RemoteRegistry -StartupType Disabled 恢复服务 如果关闭后发现有问题，随时可以恢复：\n# 重新启用服务 Set-Service WSearch -StartupType Automatic Start-Service WSearch 通过图形界面管理 Win + R → 输入 services.msc → 找到对应服务 → 右键属性 → 启动类型改为「禁用」或「手动」。\n注意：不确定的服务不要乱关。关错了系统可能会出问题。上面列的那些是确认可以关的。\n三、磁盘清理：释放空间 系统自带磁盘清理 Win + R → cleanmgr → 选择 C 盘 → 点击「清理系统文件」。\n重点勾选：\nWindows 更新清理（可能有好几个 GB） 临时文件 回收站 缩略图缓存 以前的 Windows 安装（升级后残留，可能有 10-20GB） 清理 WinSxS 组件存储 WinSxS 是 Windows 的组件存储，时间久了会变得很大：\n# 分析 WinSxS 大小 Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore # 清理（会删除旧版本组件，清理后无法回滚之前的更新） DISM /Online /Cleanup-Image /StartComponentCleanup /ResetBase 清理临时文件 # 清理用户临时文件 Remove-Item -Path \u0026#34;$env:TEMP\\*\u0026#34; -Recurse -Force -ErrorAction SilentlyContinue # 清理系统临时文件 Remove-Item -Path \u0026#34;C:\\Windows\\Temp\\*\u0026#34; -Recurse -Force -ErrorAction SilentlyContinue # 清理 Windows 更新缓存 Remove-Item -Path \u0026#34;C:\\Windows\\SoftwareDistribution\\Download\\*\u0026#34; -Recurse -Force -ErrorAction SilentlyContinue 关闭休眠功能 休眠会把内存内容写到硬盘上，生成一个和你内存大小一样的文件。如果你不用休眠功能，可以关掉：\n# 关闭休眠（释放几 GB 空间） powercfg /hibernate off # 如果想重新开启 powercfg /hibernate on 查看磁盘占用 # 查看各分区使用情况 Get-Volume | Format-Table DriveLetter, FileSystemLabel, SizeRemaining, Size -AutoSize # 查找大文件（大于 500MB） Get-ChildItem -Path C:\\ -Recurse -ErrorAction SilentlyContinue | Where-Object { $_.Length -gt 500MB } | Sort-Object Length -Descending | Select-Object FullName, @{Name=\u0026#34;SizeMB\u0026#34;;Expression={[math]::Round($_.Length/1MB,2)}} | Format-Table -AutoSize 四、电源与性能设置 切换高性能电源计划 默认的「平衡」模式会限制 CPU 性能。如果你插着电源用，可以切换到高性能：\n# 查看可用电源计划 powercfg /list # 切换到高性能 powercfg /setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c # 如果没有高性能选项，创建一个 powercfg /duplicatescheme 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c 图形界面设置 Win + R → powercfg.cpl → 选择「高性能」。\n笔记本用户注意：高性能模式会增加耗电。建议插电时用高性能，拔电时切回平衡。\n关闭 USB 选择性暂停 这个功能会暂停不常用的 USB 设备来省电，但有时候会导致 USB 设备断连：\n控制面板 → 电源选项 → 更改计划设置 → 更改高级电源设置 → USB 设置 → USB 选择性暂停设置 → 禁用。\n五、视觉效果优化 Windows 的动画和特效会消耗系统资源，特别是配置不高的电脑。\n快速设置 Win + R → sysdm.cpl → 高级 → 性能 → 设置 → 调整为最佳性能。\n但这样会很丑。建议选「自定义」，保留以下几项：\n✅ 平滑屏幕字体边缘（没有这个字体会很难看） ✅ 显示缩略图（没有这个文件夹里看不到预览） ✅ 在窗口下显示阴影（保留一点立体感） 其他全部取消 关闭窗口动画 如果你觉得窗口打开/关闭的动画太慢：\n设置 → 辅助功能 → 视觉效果 → 关闭「动画效果」和「透明效果」。\n关闭开始菜单动画 设置 → 个性化 → 开始 → 关闭「在开始菜单中显示动画」。\n六、注册表优化 ⚠️ 修改注册表前请先备份！ Win + R → regedit → 文件 → 导出 → 保存备份。\n加快菜单显示速度 [HKEY_CURRENT_USER\\Control Panel\\Desktop] \u0026#34;MenuShowDelay\u0026#34;=\u0026#34;50\u0026#34; 默认值是 400（毫秒），改成 50 会让菜单弹出更快。\n关闭锁屏广告和提示 [HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\ContentDeliveryManager] \u0026#34;RotatingLockScreenOverlayEnabled\u0026#34;=dword:00000000 \u0026#34;SubscribedContent-338387Enabled\u0026#34;=dword:00000000 \u0026#34;SubscribedContent-310093Enabled\u0026#34;=dword:00000000 关闭 Cortana（Windows 10） [HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Windows\\Windows Search] \u0026#34;AllowCortana\u0026#34;=dword:00000000 加快关机速度 [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control] \u0026#34;WaitToKillServiceTimeout\u0026#34;=\u0026#34;2000\u0026#34; 默认值是 12000（12 秒），改成 2000（2 秒）。\n导入方法 把上面的内容保存为 .reg 文件，双击导入即可。\n七、网络优化 清理 DNS 缓存 ipconfig /flushdns 网页打不开、DNS 解析异常的时候先试这个。\n重置网络 网络出了各种奇怪问题（连不上 WiFi、网速突然变慢等）：\n# 重置 Winsock netsh winsock reset # 重置 IP 设置 netsh int ip reset # 重置防火墙 netsh advfirewall reset # 重启电脑生效 Restart-Computer 关闭网络限速 Windows 的 QoS（服务质量）默认保留 20% 带宽。虽然这个说法有争议，但关掉也不影响什么：\nWin + R → gpedit.msc → 计算机配置 → 管理模板 → 网络 → QoS 数据包计划程序 → 限制可保留带宽 → 已启用 → 带宽限制设为 0%。\n优化 DNS 把 DNS 改成更快的公共 DNS：\n# 查看当前 DNS Get-DnsClientServerAddress # 设置为阿里 DNS（223.5.5.5） Set-DnsClientServerAddress -InterfaceAlias \u0026#34;以太网\u0026#34; -ServerAddresses 223.5.5.5,119.29.29.29 或者在设置 → 网络 → 以太网 → 编辑 DNS 服务器分配里手动改。\n八、关闭遥测和隐私收集 Windows 会收集大量使用数据发回微软。虽然不能完全关闭，但可以减少：\n图形界面 设置 → 隐私 → 诊断和反馈 → 选「基本」。\n设置 → 隐私 → 活动历史 → 取消勾选「在此设备上存储活动历史」。\n设置 → 隐私 → 常规 → 关闭所有选项。\n组策略（专业版/企业版） Win + R → gpedit.msc → 计算机配置 → 管理模板 → Windows 组件 → 数据收集和预览版本 → 允许遥测 → 已启用 → 0（安全）。\n关闭广告 ID 设置 → 隐私 → 常规 → 关闭「允许应用使用广告 ID 向你展示个性化广告」。\n九、磁盘维护 SSD 用户 确认 TRIM 已开启：\nfsutil behavior query DisableDeleteNotify 返回 DisableDeleteNotify = 0 表示 TRIM 已开启。如果是 1，执行：\nfsutil behavior set DisableDeleteNotify 0 SSD 不需要碎片整理，但 Windows 会自动执行「优化」（其实是 TRIM），不用手动管。\nHDD 用户 机械硬盘需要定期碎片整理：\n# 分析碎片率 Optimize-Volume -DriveLetter C -Analyze # 碎片整理 Optimize-Volume -DriveLetter C -Defrag 或者在图形界面：此电脑 → 右键磁盘 → 属性 → 工具 → 优化。\n十、系统修复 扫描修复系统文件 # 扫描并修复 sfc /scannow # 如果 sfc 报错，先用 DISM 修复映像 DISM /Online /Cleanup-Image /CheckHealth DISM /Online /Cleanup-Image /ScanHealth DISM /Online /Cleanup-Image /RestoreHealth # 修复完再跑一次 sfc sfc /scannow 检查磁盘错误 # 检查 C 盘（需要重启时执行） chkdsk C: /f /r 十一、Windows Defender 优化 Windows 自带的杀毒软件其实挺好用，但有时候会误报或者扫描时占用太多资源。\n添加排除项 如果你是开发者，编译时 Defender 可能会扫描生成的文件导致编译变慢：\n设置 → Windows 安全中心 → 病毒和威胁防护 → 管理设置 → 排除项 → 添加排除项。\n建议添加：\n项目代码目录 编译输出目录（如 build/、target/、dist/） 虚拟机文件目录 包管理器缓存（如 node_modules/、.gradle/） 关闭实时保护（不推荐，但有时需要） # 临时关闭（重启后会自动恢复） Set-MpPreference -DisableRealtimeMonitoring $true # 重新开启 Set-MpPreference -DisableRealtimeMonitoring $false 十二、一些实用小技巧 快速打开常用工具 快捷键/命令 打开什么 Win + E 文件管理器 Win + I 设置 Win + R → taskmgr 任务管理器 Win + R → msconfig 系统配置 Win + R → resmon 资源监视器 Win + R → eventvwr 事件查看器 Win + X 快速菜单（关机、设备管理器等） 查看系统信息 # 系统信息概要 systeminfo # 查看硬件信息 Get-CimInstance Win32_Processor | Select-Object Name, NumberOfCores, MaxClockSpeed Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property Capacity -Sum | Select-Object @{Name=\u0026#34;TotalRAM_GB\u0026#34;;Expression={$_.Sum/1GB}} Get-CimInstance Win32_VideoController | Select-Object Name, AdapterRAM 创建系统还原点 优化前先创建还原点，万一搞坏了可以恢复：\n# 启用系统保护 Enable-ComputerRestore -Drive \u0026#34;C:\\\u0026#34; # 创建还原点 Checkpoint-Computer -Description \u0026#34;优化前备份\u0026#34; -RestorePointType MODIFY_SETTINGS 总结 Windows 优化的核心思路就四个字：关、清、调、护。\n关 — 关掉不需要的服务和启动项 清 — 清理磁盘垃圾和临时文件 调 — 调整电源计划和视觉效果 护 — 维护磁盘健康和系统文件 不建议装第三方\u0026quot;优化大师\u0026quot;\u0026ldquo;电脑管家\u0026quot;之类的软件，它们本身就占资源，而且很多操作是 Windows 自带工具就能完成的。\nSSD 用户最大的提升来自关闭索引和 Superfetch。机械硬盘用户最大的提升来自定期碎片整理和清理临时文件。\n优化完重启一下电脑，感受一下速度提升。如果某个优化导致了问题，用之前创建的还原点恢复就行。\n让你的 Windows 重回丝滑。\n","permalink":"https://skyrk.xyz/posts/windows-optimization/","summary":"从开机启动到日常使用，从磁盘清理到隐私保护，手把手教你把 Windows 调教到最佳状态。","title":"Windows 系统优化完全指南：从开机到关机的全面提速"},{"content":"欢迎来到 Skylark，这里是我的个人博客。\n记录一些技术笔记和生活随想。\n他人的评价不过是他认知的投影——当你的境界远超对方时，他只能用自己有限的尺子丈量你。不必渴求理解，众生见你皆非你：爱者见魂，利者见秤。万相非相，自在即真。\n","permalink":"https://skyrk.xyz/about/","summary":"\u003cp\u003e欢迎来到 Skylark，这里是我的个人博客。\u003c/p\u003e\n\u003cp\u003e记录一些技术笔记和生活随想。\u003c/p\u003e\n\u003chr\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cem\u003e他人的评价不过是他认知的投影——当你的境界远超对方时，他只能用自己有限的尺子丈量你。不必渴求理解，众生见你皆非你：爱者见魂，利者见秤。万相非相，自在即真。\u003c/em\u003e\u003c/p\u003e\n\u003c/blockquote\u003e","title":"关于"}]