<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>个人技术日志</title>
  
  <subtitle>保持学习呀！</subtitle>
  <link href="https://firmum.top/atom.xml" rel="self"/>
  
  <link href="https://firmum.top/"/>
  <updated>2024-03-10T10:04:36.307Z</updated>
  <id>https://firmum.top/</id>
  
  <author>
    <name>Passioki</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>《五月之恋》观后感</title>
    <link href="https://firmum.top/2024/03/10/%E3%80%8A%E4%BA%94%E6%9C%88%E4%B9%8B%E6%81%8B%E3%80%8B%E8%A7%82%E5%90%8E%E6%84%9F/"/>
    <id>https://firmum.top/2024/03/10/%E3%80%8A%E4%BA%94%E6%9C%88%E4%B9%8B%E6%81%8B%E3%80%8B%E8%A7%82%E5%90%8E%E6%84%9F/</id>
    <published>2024-03-10T10:04:36.000Z</published>
    <updated>2024-03-10T10:04:36.307Z</updated>
    
    <content type="html"><![CDATA[<p>有剧透！介意者请勿翻看。</p><p>最不能让人理解的就是，主角阿磊为什么要选择跟踪那么久，而不是直接说明。见了一面后挺喜欢女主，然后因为自己骗了她，怕被揭穿？大概是这个原因了。</p><p>阿磊问，如果你知道我不是阿信你还会给我写email吗？女主瑄瑄说当然不会，但我也知道你不是阿信，但是我只能把你当做阿信。</p><p>女主有两个愿望，一个是去三义她奶奶家，一个是要到五月天阿信的签名，阿磊帮助瑄瑄完成前两个愿望后，瑄瑄有了第三个愿望，那就是让阿磊去观看她的戏台演出。</p><p>之后就是彼此的告别，镜头的表达，让两个人的分离有了一丝无缘再见的感觉。之后提到的阿磊来大陆的签证到期，给观众了一个小小的解释，即台湾与大陆的交流似乎并不像想象中的那样顺畅，阿磊与瑄瑄的分别，在影片中的背景下，似乎只有让在大陆的瑄瑄答应通过email写信，才能给阿磊一些告别前的慰藉，而瑄瑄没有给出的回答也给了观众一些疑惑和悬念——难道就此无缘再见？</p><p>之后通过阿磊的拜访，引入了瑄瑄奶奶的视角，向观众诉说了瑄瑄爷爷与瑄瑄爸爸的故事。</p><p>故事最后，阿磊拿到了瑄瑄爷爷让瑄瑄奶奶画的油桐花，也即五月雪，通过五月天来北京演出的机会，从北京到了哈尔滨——瑄瑄的故乡。数日的等待，升起了悬念，最后故事般的重逢，自行车的追逐与两人的相继滑倒，给了结尾一丝轻松愉快、青春洋溢的感觉，算是一个看好未来的结局吧。</p><p>在我看来，瑄瑄爸爸和爷爷的不相认，和瑄瑄与阿磊的重逢，有一种对未来的美好期盼和向往。似乎也暗指了中国大陆与中国台湾从以往到现在的隔阂，以及对重逢、回归的期盼和向往。</p><p>爷爷的乡愁，爷爷在车站工作了三十余年的工作经历，故乡的家已不再，妻子也已亡故，以及从未告知还有个已成家且有个女儿的儿子，买了张车票却没去检票，每年看着纷落的油桐花，想念着哈尔滨的大雪。车票是到了瑄瑄爸的手上，让现在的妻子画的油桐花却没有随之送来，可能还没画好，也可能别的原因。</p><p>瑄瑄来到三义后，没有选择与奶奶（没有血缘关系）相认，不知出于什么原因。</p><p>瑄瑄爸爸有个遗憾是，瑄瑄没有能够早一点去到台湾见爷爷，此时爷爷应该已经去世。</p><p>还有很多小情节，应该不是很重要，都是推动故事发展的工具。</p><p>总体来说，还是一部不错的影片。台湾必将在近期完全回归中国！那个时刻快到了！</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;有剧透！介意者请勿翻看。&lt;/p&gt;
&lt;p&gt;最不能让人理解的就是，主角阿磊为什么要选择跟踪那么久，而不是直接说明。见了一面后挺喜欢女主，然后因为自己骗了她，怕被揭穿？大概是这个原因了。&lt;/p&gt;
&lt;p&gt;阿磊问，如果你知道我不是阿信你还会给我写email吗？女主瑄瑄说当然不会，但我</summary>
      
    
    
    
    <category term="随想" scheme="https://firmum.top/categories/%E9%9A%8F%E6%83%B3/"/>
    
    
    <category term="影评" scheme="https://firmum.top/tags/%E5%BD%B1%E8%AF%84/"/>
    
  </entry>
  
  <entry>
    <title>三星tab S8 国行刷港版并root记录</title>
    <link href="https://firmum.top/2024/03/10/%E4%B8%89%E6%98%9FtabS8%E5%9B%BD%E8%A1%8C%E5%88%B7%E6%B8%AF%E7%89%88%E5%B9%B6root%E8%AE%B0%E5%BD%95/"/>
    <id>https://firmum.top/2024/03/10/%E4%B8%89%E6%98%9FtabS8%E5%9B%BD%E8%A1%8C%E5%88%B7%E6%B8%AF%E7%89%88%E5%B9%B6root%E8%AE%B0%E5%BD%95/</id>
    <published>2024-03-10T09:07:25.000Z</published>
    <updated>2024-03-10T09:12:47.747Z</updated>
    
    <content type="html"><![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>本文仅是大致的过程记录，并非整理出来的详细步骤，请勿抱有过高期待！建议阅读完再进行选择性地操作。</p><h2 id="背景介绍"><a href="#背景介绍" class="headerlink" title="背景介绍"></a>背景介绍</h2><p>闲鱼购买9.999新三星tab S8平板，初衷是用来方便记录想法的一个工具（spen&amp;onenote），因为在网上了解到三星的手写体验是非常棒的，遂购买。买来后就变味了哈哈哈，开始捉摸着刷个港版的系统，root一下。</p><p>我先说明下，我是先root了，然后开始的刷机，但我想，不root直接刷也是可以的。由于我本意就是要root，所以就不分先后了。root会丢失保修，所以一定要思考清楚是否需要root，然后再做决定！</p><p>本文提到的最让我印象深刻的链接，关于<a href="https://xdaforums.com/t/root-guide-for-galaxy-tab-s8-s8-s8ultra.4423095/">三星tab s8 root</a>的，十分的详细，所以我就不再重新讲了。</p><p>本次刷机&amp;root过程，印象比较深的是，刷机包里并没有网上提到的CP文件，搜索了一下，发现这个是插sim卡版本才会有的，而我买的WiFi版本，当然不需要这个文件。</p><p>以下是刷机包里的文件：</p><p><img src="../data/image_uploads/image-20240310161435085.png" alt="image-20240310161435085"></p><p>其中CSC和HOME_CSC的区别，CSC是不保留用户数据的，HOME_CSC则是保留用户数据的刷机，一般升级系统可以用这个HOME_CSC。本次国行刷港版，我用的是CSC。</p><hr><h2 id="刷机过程记录"><a href="#刷机过程记录" class="headerlink" title="刷机过程记录"></a>刷机过程记录</h2><p>首先，查找资料，在网上搜索 tab s8 刷机，翻看资料中……</p><p>大致了解后，三星刷机，需要一个刷机软件：<a href="https://odindownloader.com/tutorials/use-odin-downloader">odin</a></p><p>其次，需要<a href="https://developer.samsung.com/android-usb-driver">三星USB驱动</a>，没有这个，平板可能无法与电脑建立连接，当然，你也可以用下文提到的 SamFw Tool 4.9来获得该驱动 。</p><p>然后我需要下载港版系统，我在一个论坛里翻到了一条评论，说在<a href="https://samfw.com/">SanFw</a>里可以下载港版的系统，我在该网站搜索sm-x700，找到了该版本。</p><p><img src="../data/image_uploads/image-20240310152600684.png" alt="image-20240310152600684"></p><p>按照odin的刷机步骤，刷入了港版系统。但是开机后发现变成了欧版的（地区选择界面全是欧洲国家），很郁闷，因为想有国内的节假日显示，所以还是想整个港版的。于是又开始了寻找解决办法。</p><p>在万能的互联网上找到了似乎可行的方案，那就是通过一款软件，修改系统里的csc文件，将欧洲EU版本改成港版TGY版本，这个软件是 <a href="https://samfw.com/blog/samfw-frp-tool-1-0-remove-samsung-frp-one-click">SamFw Tool 4.9 - Remove Samsung FRP one click</a></p><p><img src="../data/image_uploads/image-20240310161047825.png" alt="image-20240310161047825"></p><p>USB调试打开，连接电脑后，在MTP选项卡里，点击Change CSC，改成TGY</p><p>我改了以后，发现系统并没有发生明显的变化，虽然在软件里识别为了TGY港版系统。</p><p>于是我又找到了一个软件<a href="https://github.com/SlackingVeteran/frija"><br>frija</a></p><p>这个软件可以下载三星平板的系统，我的平板此时的csc里的系统信息已经更改为了TGY，所以此时自动识别成了TGY版本的系统，点击下载，这次下载下来的系统在我重复一遍安装步骤后，系统成功更改为了港版系统，日历也有了中国的节假日信息。</p><p>到此，国行刷港版系统结束，Yes！</p><p>ps：</p><p>记得有个过程需要让三星平板进入工厂模式，以下是链接，我是按照安卓4.X的示例来做的 </p><p>打开计算器，输入**(+30012012732+** 就可以进入工厂模式。</p><p><a href="https://www.izheteng.site/2015/06/03/2015-06-03-%E4%B8%89%E6%98%9F%E5%B9%B3%E6%9D%BF%E5%B7%A5%E5%8E%82%E6%A8%A1%E5%BC%8F/">三星平板工厂模式</a></p><h2 id="ROOT过程记录"><a href="#ROOT过程记录" class="headerlink" title="ROOT过程记录"></a>ROOT过程记录</h2><p>至于root步骤，大部分参考该<a href="https://xdaforums.com/t/root-guide-for-galaxy-tab-s8-s8-s8ultra.4423095/">网站</a>，通过magisk方式root，最后出了点小问题，平板一直进不去系统，在开机界面卡两次就会告诉我进不了系统，需要factory data reset或者retry，我retry了好几次，就是不想重置到出厂模式，又在网上苦苦寻找，虽然没找多长时间，但是内心已经开始煎熬了，毕竟黑屏的界面和进不去系统让人有些摸不着头脑，万幸还是找到了相关记录：<a href="https://magiskcn.com/samsung-magisk">三星手机安装面具教程</a></p><p>虽然是手机的root方法，但是平板也可以借鉴，我这种情况只需要按照该文步骤即可root：factory data reset一下，进入系统，再次安装magisk，然后进入magisk后，magisk会提示修补，点击修补，自动重启后，确认显示了magisk版本，此时，root成功，Yes！</p><h2 id="其他零碎"><a href="#其他零碎" class="headerlink" title="其他零碎"></a>其他零碎</h2><p>root后安了李跳跳模块，跳过打开app时的广告</p><p>买了三只spen笔尖，硬笔头，软笔头，金属笔头。</p><p>软笔头最安静，硬笔头也挺安静，金属笔头慎买，砰砰响。</p><p>如果让我来评判一下，业余的评判哈，画画我选硬笔头，写字记笔记我选软笔头。</p><p>因为瞎画了两张图，软笔头的毛毛都被我磨出来了，粘在笔尖上有些影响观感。两天后买的硬笔头到货了。硬笔头没有画图，但是体验了下，手感不错，想来画图没什么问题，也不会掉毛。</p><p>至于金属笔头……砰砰响。</p><img src="../data/image_uploads/image-20240310162944000.png" alt="第一张" style="zoom: 25%;" /><img src="../data/image_uploads/image-20240310163014381.png" alt="第二张" style="zoom: 33%;" /><p>我知道很丑，但这只是为了说明我确实用软笔头划了不少线，哈哈哈。</p><h2 id="如果你能乱了我的定力"><a href="#如果你能乱了我的定力" class="headerlink" title="如果你能乱了我的定力"></a>如果你能乱了我的定力</h2><p>对我而言，三星手写体验不错，但是想利用好这个工具来进行自我提升，还需要适应并学习一段时间。</p><p>谨防哔哩哔哩！谨防腾讯视频！谨防爱奇艺！想想我手中的spen，如果是为了做这些，我何必买个三星呢，小米它不香吗[狗头]</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;前言&quot;&gt;&lt;a href=&quot;#前言&quot; class=&quot;headerlink&quot; title=&quot;前言&quot;&gt;&lt;/a&gt;前言&lt;/h2&gt;&lt;p&gt;本文仅是大致的过程记录，并非整理出来的详细步骤，请勿抱有过高期待！建议阅读完再进行选择性地操作。&lt;/p&gt;
&lt;h2 id=&quot;背景介绍&quot;&gt;&lt;a </summary>
      
    
    
    
    <category term="硬件" scheme="https://firmum.top/categories/%E7%A1%AC%E4%BB%B6/"/>
    
    <category term="平板" scheme="https://firmum.top/categories/%E7%A1%AC%E4%BB%B6/%E5%B9%B3%E6%9D%BF/"/>
    
    
    <category term="装系统/刷机" scheme="https://firmum.top/tags/%E8%A3%85%E7%B3%BB%E7%BB%9F-%E5%88%B7%E6%9C%BA/"/>
    
  </entry>
  
  <entry>
    <title>音乐播放列表</title>
    <link href="https://firmum.top/2023/12/16/%E9%9F%B3%E4%B9%90%E6%92%AD%E6%94%BE%E5%88%97%E8%A1%A8/"/>
    <id>https://firmum.top/2023/12/16/%E9%9F%B3%E4%B9%90%E6%92%AD%E6%94%BE%E5%88%97%E8%A1%A8/</id>
    <published>2023-12-16T15:36:13.000Z</published>
    <updated>2023-12-16T16:25:53.974Z</updated>
    
    <content type="html"><![CDATA[<h1 id="音乐播放列表"><a href="#音乐播放列表" class="headerlink" title="音乐播放列表"></a>音乐播放列表</h1><h2 id="宇多田ヒカル-One-Last-Kiss"><a href="#宇多田ヒカル-One-Last-Kiss" class="headerlink" title="宇多田ヒカル-One Last Kiss"></a>宇多田ヒカル-One Last Kiss</h2><audio controls>  <source src="/data/宇多田ヒカル-One Last Kiss.mp3" type="audio/mpeg">  您的浏览器不支持 audio 元素。</audio><h2 id="囚牛-amp-昼夜-我等你到三十五岁"><a href="#囚牛-amp-昼夜-我等你到三十五岁" class="headerlink" title="囚牛&amp;昼夜-我等你到三十五岁"></a>囚牛&amp;昼夜-我等你到三十五岁</h2><audio controls>  <source src="/data/囚牛&昼夜-我等你到三十五岁.mp3" type="audio/mpeg">  您的浏览器不支持 audio 元素。</audio><h2 id="郭顶-飞行器的执行周期"><a href="#郭顶-飞行器的执行周期" class="headerlink" title="郭顶-飞行器的执行周期"></a>郭顶-飞行器的执行周期</h2><!-- <iframe type=video/webm frameborder="no" border="0" marginwidth="0" marginheight="0" width=330 height=450 src="//music.163.com/outchain/player?type=1&id=35005583&auto=0&height=430"></iframe> -->]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;音乐播放列表&quot;&gt;&lt;a href=&quot;#音乐播放列表&quot; class=&quot;headerlink&quot; title=&quot;音乐播放列表&quot;&gt;&lt;/a&gt;音乐播放列表&lt;/h1&gt;&lt;h2 id=&quot;宇多田ヒカル-One-Last-Kiss&quot;&gt;&lt;a href=&quot;#宇多田ヒカル-One-Last-K</summary>
      
    
    
    
    <category term="音乐" scheme="https://firmum.top/categories/%E9%9F%B3%E4%B9%90/"/>
    
    <category term="外链播放" scheme="https://firmum.top/categories/%E9%9F%B3%E4%B9%90/%E5%A4%96%E9%93%BE%E6%92%AD%E6%94%BE/"/>
    
    
    <category term="音乐" scheme="https://firmum.top/tags/%E9%9F%B3%E4%B9%90/"/>
    
  </entry>
  
  <entry>
    <title>装13文-长期更新</title>
    <link href="https://firmum.top/2023/12/16/%E8%A3%8513%E6%96%87/"/>
    <id>https://firmum.top/2023/12/16/%E8%A3%8513%E6%96%87/</id>
    <published>2023-12-16T14:30:45.000Z</published>
    <updated>2023-12-16T14:30:45.573Z</updated>
    
    <content type="html"><![CDATA[<p>我不怕我不爱你，只怕你不爱我</p><p>关于我有多富有，举个例子，我吃番茄只吃番茄中间的籽</p><p>对于填词音乐来说，词和曲同样重要，有的歌曲词更好，显得曲不行，有的歌曲曲更好，显得词不行，每每听到这类音乐，都会心痛，都会遗憾，心痛遗憾为什么不写一个更好的词，为什么不谱一个更好地曲。听到词好曲好的歌曲，就会感叹————绝了！（我想人与人之间的关系也是这样的。）有的曲子，把别的歌曲的词拿来混搭，竟也效果不错。但不知出于什么原因，这一块并没有百花齐放。也许是尊重原创保护版权吧。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;我不怕我不爱你，只怕你不爱我&lt;/p&gt;
&lt;p&gt;关于我有多富有，举个例子，我吃番茄只吃番茄中间的籽&lt;/p&gt;
&lt;p&gt;对于填词音乐来说，词和曲同样重要，有的歌曲词更好，显得曲不行，有的歌曲曲更好，显得词不行，每每听到这类音乐，都会心痛，都会遗憾，心痛遗憾为什么不写一个更好的词，为什</summary>
      
    
    
    
    <category term="随笔" scheme="https://firmum.top/categories/%E9%9A%8F%E7%AC%94/"/>
    
    <category term="日记" scheme="https://firmum.top/categories/%E9%9A%8F%E7%AC%94/%E6%97%A5%E8%AE%B0/"/>
    
    
    <category term="文艺范儿" scheme="https://firmum.top/tags/%E6%96%87%E8%89%BA%E8%8C%83%E5%84%BF/"/>
    
  </entry>
  
  <entry>
    <title>欲望的深渊</title>
    <link href="https://firmum.top/2023/12/16/%E6%AC%B2%E6%9C%9B%E7%9A%84%E6%B7%B1%E6%B8%8A/"/>
    <id>https://firmum.top/2023/12/16/%E6%AC%B2%E6%9C%9B%E7%9A%84%E6%B7%B1%E6%B8%8A/</id>
    <published>2023-12-16T14:29:26.000Z</published>
    <updated>2023-12-16T14:29:26.887Z</updated>
    
    <content type="html"><![CDATA[<h1 id="欲望的深渊"><a href="#欲望的深渊" class="headerlink" title="欲望的深渊"></a>欲望的深渊</h1><p>下午做了一个梦，梦到自己在准备新的高考，进了一所学校，心中的遗憾，渴望，交杂在一起。</p><p>睡之前我看了中汽联官方网站的赛车执照介绍及基础理论知识网课。这个世界上还是有一些我没有发现的乐趣存在的，而且数量应该相当多。这次发现的赛车就是如此，没接触到根本没想法，但是随着对汽车的了解加深，赛车便进入了视野中，我竟然相当的想去体验下。无奈培训费用对我现在的收入而言相当贵，8000-30000的培训费用属实承受不起。钱真是个好东西！</p><p>我觉得我的欲望越来越膨胀了。开始对赚钱充满了渴望，躺平的想法似乎显得如此的苍白无力。一些小众的乐趣不是躺平的人能够享受到的，躺平的人只能接受大众化的生产消费体验。</p><p>欲望是前进方向的始发站，我觉得这是改变的开始。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;欲望的深渊&quot;&gt;&lt;a href=&quot;#欲望的深渊&quot; class=&quot;headerlink&quot; title=&quot;欲望的深渊&quot;&gt;&lt;/a&gt;欲望的深渊&lt;/h1&gt;&lt;p&gt;下午做了一个梦，梦到自己在准备新的高考，进了一所学校，心中的遗憾，渴望，交杂在一起。&lt;/p&gt;
&lt;p&gt;睡之前我看了中汽</summary>
      
    
    
    
    <category term="随笔" scheme="https://firmum.top/categories/%E9%9A%8F%E7%AC%94/"/>
    
    <category term="日记" scheme="https://firmum.top/categories/%E9%9A%8F%E7%AC%94/%E6%97%A5%E8%AE%B0/"/>
    
    <category term="梦" scheme="https://firmum.top/categories/%E9%9A%8F%E7%AC%94/%E6%97%A5%E8%AE%B0/%E6%A2%A6/"/>
    
    
    <category term="前进" scheme="https://firmum.top/tags/%E5%89%8D%E8%BF%9B/"/>
    
  </entry>
  
  <entry>
    <title>openwrt文件共享</title>
    <link href="https://firmum.top/2023/12/16/openwrt%E6%96%87%E4%BB%B6%E5%85%B1%E4%BA%AB/"/>
    <id>https://firmum.top/2023/12/16/openwrt%E6%96%87%E4%BB%B6%E5%85%B1%E4%BA%AB/</id>
    <published>2023-12-16T14:28:56.000Z</published>
    <updated>2023-12-16T14:28:56.016Z</updated>
    
    <content type="html"><![CDATA[<h1 id="Samba与nfs与ftp"><a href="#Samba与nfs与ftp" class="headerlink" title="Samba与nfs与ftp"></a><a href="https://www.lagou.com/lgeduarticle/24211.html">Samba与nfs与ftp</a></h1><h1 id="samba搭建及smb3多网卡叠加"><a href="#samba搭建及smb3多网卡叠加" class="headerlink" title="samba搭建及smb3多网卡叠加"></a><a href="https://www.jianshu.com/p/20d557dc3825">samba搭建及smb3多网卡叠加</a></h1><h1 id="Samba服务（匿名用户访问、本地用户访问、虚拟用户访问）"><a href="#Samba服务（匿名用户访问、本地用户访问、虚拟用户访问）" class="headerlink" title="Samba服务（匿名用户访问、本地用户访问、虚拟用户访问）"></a><a href="https://blog.51cto.com/u_10316297/2118395">Samba服务（匿名用户访问、本地用户访问、虚拟用户访问）</a></h1><h1 id="二级路由器设置图解教程"><a href="#二级路由器设置图解教程" class="headerlink" title="二级路由器设置图解教程"></a><a href="https://www.192ly.com/qiu-zhu/ej-r-sz.html">二级路由器设置图解教程</a></h1><h1 id="局域网两个不同网段互相访问"><a href="#局域网两个不同网段互相访问" class="headerlink" title="局域网两个不同网段互相访问"></a><a href="https://www.cnblogs.com/embedded-linux/p/10200831.html">局域网两个不同网段互相访问</a></h1><h1 id="修改grub文件磁盘标识方式为UUID"><a href="#修改grub文件磁盘标识方式为UUID" class="headerlink" title="修改grub文件磁盘标识方式为UUID"></a><a href="https://support.huaweicloud.com/usermanual-ims/ims_01_0324.html">修改grub文件磁盘标识方式为UUID</a></h1><p>samba共享服务重启</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">/etc/init.d/samba start</span><br></pre></td></tr></table></figure><p>23楼有关samba命令：<a href="https://koolshare.cn/thread-76394-2-1.html">https://koolshare.cn/thread-76394-2-1.html</a></p><h1 id="硬盘休眠"><a href="#硬盘休眠" class="headerlink" title="硬盘休眠"></a>硬盘休眠</h1><p><a href="https://zhuanlan.zhihu.com/p/381394434">多硬盘休眠</a></p><p>检查是否安装hd-idle</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">hd-idle -help</span><br></pre></td></tr></table></figure><p>没有，则安装</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">opkg install hd-idle</span><br></pre></td></tr></table></figure><p>然后编辑配置文件</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vim /etc/config/hd-idle</span><br></pre></td></tr></table></figure><p>原本只有一块硬盘，下面粘贴成两块，保存退出</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">config hd-idle</span><br><span class="line">        option idle_time_unit &#x27;minutes&#x27;</span><br><span class="line">        option idle_time_interval &#x27;10&#x27;</span><br><span class="line">        option enabled &#x27;1&#x27;</span><br><span class="line">        option disk &#x27;sda&#x27;</span><br><span class="line"></span><br><span class="line">config hd-idle</span><br><span class="line">        option enabled &#x27;1&#x27;</span><br><span class="line">        option idle_time_interval &#x27;10&#x27;</span><br><span class="line">        option idle_time_unit &#x27;minutes&#x27;</span><br><span class="line">        option disk &#x27;sdd&#x27;</span><br></pre></td></tr></table></figure><p>重启hd-idle程序</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">/etc/init.d/hd-idle restart</span><br></pre></td></tr></table></figure><p>可以看到可以多控制一个硬盘了。</p><p><img src="https://i.loli.net/2021/08/21/XwtCe7ZayTvKrS8.png" alt="OpenWrt多硬盘休眠"></p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;Samba与nfs与ftp&quot;&gt;&lt;a href=&quot;#Samba与nfs与ftp&quot; class=&quot;headerlink&quot; title=&quot;Samba与nfs与ftp&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.lagou.com/lgeduarticle/242</summary>
      
    
    
    
    <category term="软件" scheme="https://firmum.top/categories/%E8%BD%AF%E4%BB%B6/"/>
    
    <category term="系统" scheme="https://firmum.top/categories/%E8%BD%AF%E4%BB%B6/%E7%B3%BB%E7%BB%9F/"/>
    
    <category term="路由" scheme="https://firmum.top/categories/%E8%BD%AF%E4%BB%B6/%E7%B3%BB%E7%BB%9F/%E8%B7%AF%E7%94%B1/"/>
    
    
    <category term="服务器" scheme="https://firmum.top/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/"/>
    
  </entry>
  
  <entry>
    <title>openwrt系统命令</title>
    <link href="https://firmum.top/2023/12/16/openwrt%E7%B3%BB%E7%BB%9F%E5%91%BD%E4%BB%A4/"/>
    <id>https://firmum.top/2023/12/16/openwrt%E7%B3%BB%E7%BB%9F%E5%91%BD%E4%BB%A4/</id>
    <published>2023-12-16T14:28:30.000Z</published>
    <updated>2023-12-16T14:28:30.944Z</updated>
    
    <content type="html"><![CDATA[<h1 id="openwrt刷机"><a href="#openwrt刷机" class="headerlink" title="openwrt刷机"></a>openwrt刷机</h1><p>openwrt刷机包更新：<a href="https://www.right.com.cn/forum/thread-3708606-1-1.html">https://www.right.com.cn/forum/thread-3708606-1-1.html</a></p><p>openwrt自编译教程：<a href="https://www.youtube.com/watch?v=ZMh-AvQV8n0&amp;t=1s">https://www.youtube.com/watch?v=ZMh-AvQV8n0&amp;t=1s</a></p><p>github源码编译教程：<a href="https://github.com/coolsnowwolf/lede">https://github.com/coolsnowwolf/lede</a></p><p>编译好的固件：<a href="https://drive.google.com/drive/folders/1dqNUrMf9n7i3y1aSh68U5Yf44WQ3KCuh">https://drive.google.com/drive/folders/1dqNUrMf9n7i3y1aSh68U5Yf44WQ3KCuh</a></p><h1 id="软件包升级"><a href="#软件包升级" class="headerlink" title="软件包升级"></a>软件包升级</h1><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">opkg update</span><br><span class="line">opkg list-upgradable | cut -f 1 -d &#x27; &#x27; | xargs opkg upgrade </span><br></pre></td></tr></table></figure><p>固件升级</p><p>进入OpenWrt固件下载主页面：<a href="https://downloads.openwrt.org/">https://downloads.openwrt.org/</a></p><h1 id="写硬盘及分区格式化设置共享教程"><a href="#写硬盘及分区格式化设置共享教程" class="headerlink" title="写硬盘及分区格式化设置共享教程"></a>写硬盘及分区格式化设置共享教程</h1><p><a href="https://koolshare.cn/thread-154153-1-1.html">https://koolshare.cn/thread-154153-1-1.html</a></p><h1 id="硬盘挂载相关命令"><a href="#硬盘挂载相关命令" class="headerlink" title="硬盘挂载相关命令"></a>硬盘挂载相关命令</h1><p>查看所有磁盘分区<code>lsblk -a</code>包括未挂载磁盘；<a href="https://wangchujiang.com/linux-command/c/lsblk.html">lsblk</a>详解</p><p>查看磁盘<strong>uuid</strong><code>blkid</code></p><p><strong>挂载</strong>硬盘<code>mount /dev/分区名称 /mnt/挂载点名称</code></p><p><strong>挂载</strong>所有分区<code>mount -a</code>，该命令会用到/etc/fstab文件，可使修改过的fstab文件立即生效</p><p><strong>卸载</strong>所有磁盘分区<code>umount -a</code>，被占用的盘不会被卸载</p><h1 id="怎样查看Openwrt内核版本？"><a href="#怎样查看Openwrt内核版本？" class="headerlink" title="怎样查看Openwrt内核版本？"></a><strong>怎样查看Openwrt内核版本？</strong></h1><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">cat /proc/version</span><br><span class="line">#或者</span><br><span class="line">uname -a</span><br></pre></td></tr></table></figure><h1 id="ext4-img-gz，squashfs-img-gz，rootfs-tar-gz等几个文件区别？"><a href="#ext4-img-gz，squashfs-img-gz，rootfs-tar-gz等几个文件区别？" class="headerlink" title="ext4-img.gz，squashfs.img.gz，rootfs.tar.gz等几个文件区别？"></a><strong>ext4-img.gz，squashfs.img.gz，rootfs.tar.gz等几个文件区别？</strong></h1><p><a href="https://www.right.com.cn/forum/thread-1425096-1-1.html">https://www.right.com.cn/forum/thread-1425096-1-1.html</a></p><p>这里解释一下该文件夹下各个文件的区别： </p><p>openwrt-x86-generic-combined-ext4.img.gz  </p><p>rootfs工作区存储格式为ext4  </p><p>openwrt-x86-generic-combined-jffs2-128k.img  </p><p>jffs2可以修改，也就是可以自行更换（删除）rootfs的配置文件，而不需要重新刷固件。  </p><p>openwrt-x86-generic-combined-squashfs.img  </p><p>squashfs是个只读的文件系统，相当于win的ghost，使用中配置错误，可直接恢复默认。  </p><p>openwrt-x86-generic-rootfs-ext4.img.gz  rootfs的镜像，不带引导，可自行定义用grub或者syslinux来引导，存储区为ext4。 </p><p>为了更清楚的说明这个问题，可以参考以下文章： <a href="http://wiki.openwrt.org/doc/techref/header">http://wiki.openwrt.org/doc/techref/header</a> 从这里可以看出一个完整的镜像文件至少要包含三个部分</p><p>Loader  </p><p>Kernel  </p><p>RootFS</p><h1 id="OpenWrt编译成功文件说明"><a href="#OpenWrt编译成功文件说明" class="headerlink" title="OpenWrt编译成功文件说明"></a>OpenWrt编译成功文件说明</h1><p><a href="https://wp.gxnas.com/10294.html">https://wp.gxnas.com/10294.html</a></p><table><thead><tr><th>文件名</th><th>描述</th></tr></thead><tbody><tr><td>sha256sums</td><td>固件完整性校验文件</td></tr><tr><td>config.buildinfo</td><td>OpenWrt 编译配置文件</td></tr><tr><td>packages-server.zip</td><td>IPK 软件包归档</td></tr><tr><td>openwrt-x86-64-generic.manifest</td><td>固件内已集成软件包列表</td></tr><tr><td>openwrt-x86-64-generic-generic-rootfs.tar.gz</td><td>RootFS 文件</td></tr><tr><td>openwrt-x86-64-generic-rootfs-ext4.img.gz</td><td>不带引导的 RootFS 镜像</td></tr><tr><td>openwrt-toolchain-x86-64_gcc-8.4.0_musl.Linux-x86_64.tar.bz2</td><td>OpenWrt 工具链</td></tr><tr><td>openwrt-sdk-x86-64_gcc-8.4.0_musl.Linux-x86_64.tar.xz</td><td>OpenWrt SDK</td></tr><tr><td>openwrt-imagebuilder-x86-64.Linux-x86_64.tar.xz</td><td>OpenWrt Image Builder</td></tr><tr><td>openwrt-x86-64-generic-squashfs-combined.vdi</td><td>VDI 虚拟磁盘映像 (Legacy 引导)</td></tr><tr><td>openwrt-x86-64-generic-squashfs-combined.vmdk</td><td>VMDK 虚拟磁盘映像 (Legacy 引导)</td></tr><tr><td>openwrt-x86-64-generic-squashfs-combined-efi.vdi</td><td>VDI 虚拟磁盘映像 (UEFI 引导)</td></tr><tr><td>openwrt-x86-64-generic-squashfs-combined-efi.vmdk</td><td>VMDK 虚拟磁盘映像 (UEFI 引导)</td></tr><tr><td>openwrt-x86-64-generic-squashfs-combined.img.gz</td><td>Squashfs 格式安装 / 升级固件 (Legacy 引导)</td></tr><tr><td>openwrt-x86-64-generic-squashfs-combined-efi.img.gz</td><td>Squashfs 格式安装 / 升级固件 (UEFI 引导)</td></tr></tbody></table><h1 id="网关趣解：什么是网关，网关的作用是什么？"><a href="#网关趣解：什么是网关，网关的作用是什么？" class="headerlink" title="网关趣解：什么是网关，网关的作用是什么？"></a>网关趣解：<a href="https://blog.csdn.net/huangyimo/article/details/82887367">什么是网关，网关的作用是什么？</a></h1><h1 id="开机自启动脚本"><a href="#开机自启动脚本" class="headerlink" title="开机自启动脚本"></a><a href="https://blog.csdn.net/seven_feifei/article/details/88317879">开机自启动脚本</a></h1><p>单次启动：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">/etc/init.d/network start</span><br></pre></td></tr></table></figure><p>开机自启（创建相应软连接）：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ln -s /etc/init.d/network /etc/rc.d/S19network</span><br></pre></td></tr></table></figure><p>S19是启动顺序，数字越小启动优先级越高。可以通过删除软链接来取消自启动</p><p>或者使用系统方法：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">/etc/init.d/done enable</span><br></pre></td></tr></table></figure><p>也可以使用disable来取消（删除软链接）脚本自动启动。</p><h1 id="自动关机"><a href="#自动关机" class="headerlink" title="自动关机"></a>自动关机</h1><p>在系统-&gt;计划任务中，添加下列代码，每天凌晨2:30关机，*代表缺省的选项，从左到右分别是：分时日周月，互相之间要用空格隔开。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">30 2 * * * poweroff</span><br></pre></td></tr></table></figure><h1 id="扩充系统磁盘大小"><a href="#扩充系统磁盘大小" class="headerlink" title="扩充系统磁盘大小"></a>扩充系统磁盘大小</h1><p>首先要有一个已经格式化为ext4格式的磁盘，<code>lsblk</code>查看磁盘分区，其中sdb4即所需磁盘。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">root@OpenWrt:~# lsblk</span><br><span class="line">NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS</span><br><span class="line">sda      8:0    0 298.1G  0 disk</span><br><span class="line">└─sda1   8:1    0 298.1G  0 part /mnt/sda1</span><br><span class="line">sdb      8:16   0 223.6G  0 disk</span><br><span class="line">├─sdb1   8:17   0    16M  0 part /boot</span><br><span class="line">│                                /boot</span><br><span class="line">├─sdb2   8:18   0   500M  0 part /rom</span><br><span class="line">├─sdb3   8:19   0   239K  0 part</span><br><span class="line">└─sdb4   8:20   0 223.1G  0 part </span><br></pre></td></tr></table></figure><p>在系统——挂载点的页面下，添加磁盘分区为根目录<code>/</code>，照页面提示内容操作，操作完成后，等待一段时间，系统会从sdb4启动，此时页面刷新后无法打开，通过ssh重启路由器即可完成磁盘扩充。</p><p>可以看到sdb4磁盘已经挂载上了根目录<code>/</code>，并且同时挂载了/opt/docker，猜测该扩充根目录的原理是通过docker完成的，暂不深入了解，如果有知晓的朋友，欢迎留言。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">root@OpenWrt:~# lsblk</span><br><span class="line">NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS</span><br><span class="line">sda      8:0    0 298.1G  0 disk</span><br><span class="line">└─sda1   8:1    0 298.1G  0 part /mnt/sda1</span><br><span class="line">sdb      8:16   0 223.6G  0 disk</span><br><span class="line">├─sdb1   8:17   0    16M  0 part /boot</span><br><span class="line">│                                /boot</span><br><span class="line">├─sdb2   8:18   0   500M  0 part /rom</span><br><span class="line">├─sdb3   8:19   0   239K  0 part</span><br><span class="line">└─sdb4   8:20   0 223.1G  0 part /opt/docker</span><br><span class="line">                                 /</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;openwrt刷机&quot;&gt;&lt;a href=&quot;#openwrt刷机&quot; class=&quot;headerlink&quot; title=&quot;openwrt刷机&quot;&gt;&lt;/a&gt;openwrt刷机&lt;/h1&gt;&lt;p&gt;openwrt刷机包更新：&lt;a href=&quot;https://www.right.co</summary>
      
    
    
    
    <category term="软件" scheme="https://firmum.top/categories/%E8%BD%AF%E4%BB%B6/"/>
    
    <category term="系统" scheme="https://firmum.top/categories/%E8%BD%AF%E4%BB%B6/%E7%B3%BB%E7%BB%9F/"/>
    
    <category term="路由" scheme="https://firmum.top/categories/%E8%BD%AF%E4%BB%B6/%E7%B3%BB%E7%BB%9F/%E8%B7%AF%E7%94%B1/"/>
    
    
    <category term="服务器" scheme="https://firmum.top/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/"/>
    
    <category term="装系统/刷机" scheme="https://firmum.top/tags/%E8%A3%85%E7%B3%BB%E7%BB%9F-%E5%88%B7%E6%9C%BA/"/>
    
  </entry>
  
  <entry>
    <title>NexT主题配置8.6.1</title>
    <link href="https://firmum.top/2023/12/16/next%E4%B8%BB%E9%A2%98%E9%85%8D%E7%BD%AE/"/>
    <id>https://firmum.top/2023/12/16/next%E4%B8%BB%E9%A2%98%E9%85%8D%E7%BD%AE/</id>
    <published>2023-12-16T14:26:37.000Z</published>
    <updated>2023-12-16T14:26:37.611Z</updated>
    
    <content type="html"><![CDATA[<h1 id="NexT升级"><a href="#NexT升级" class="headerlink" title="NexT升级"></a>NexT升级</h1><h3 id="npm更换镜像源"><a href="#npm更换镜像源" class="headerlink" title="npm更换镜像源"></a>npm更换镜像源</h3><p>因为国外源太慢了，所以更换国内源，下面这是淘宝源。</p><p>临时用</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm --registry https://registry.npm.taobao.org install express</span><br></pre></td></tr></table></figure><p>持久使用</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm config set registry https://registry.npm.taobao.org</span><br></pre></td></tr></table></figure><ul><li>配置后可通过下面方式来验证是否成功<br><code>npm config get registry</code></li><li>或<br><code>npm info express</code></li></ul><h3 id="hexo安装"><a href="#hexo安装" class="headerlink" title="hexo安装"></a>hexo安装</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">npm install -g hexo-cli</span><br><span class="line"></span><br><span class="line">hexo init &lt;folder&gt;</span><br><span class="line">cd &lt;folder&gt;</span><br><span class="line">npm install</span><br></pre></td></tr></table></figure><h3 id="NEXT新版本自定义配置文件建议方案"><a href="#NEXT新版本自定义配置文件建议方案" class="headerlink" title="NEXT新版本自定义配置文件建议方案"></a>NEXT新版本自定义配置文件建议方案</h3><p>A custom config file path can be specified by adding the <code>--config</code> flag to your <code>hexo</code> commands with a path to an alternate YAML or JSON config file, or a comma-separated list (no spaces) of multiple YAML or JSON files.</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"># use &#x27;custom.yml&#x27; in place of &#x27;_config.yml&#x27;</span><br><span class="line">$ hexo server --config custom.yml</span><br><span class="line"></span><br><span class="line"># use &#x27;custom.yml&#x27; &amp; &#x27;custom2.json&#x27;, prioritizing &#x27;custom2.json&#x27;</span><br><span class="line">$ hexo server --config custom.yml,custom2.json</span><br></pre></td></tr></table></figure><p>We strongly recommend you to store your theme configuration in one place. But in case you have to store your theme configuration separately, you need to know the priority of those configurations: The <code>theme_config</code> inside site’s primary configuration file has the highest priority during merging, then the dedicated theme configuration file.<br>The <code>_config.yml</code> file under the theme directory has the lowest priority.</p><p>[next主题官方教程]<a href="https://theme-next.js.org/docs/getting-started/">https://theme-next.js.org/docs/getting-started/</a></p><p>[新版本next自定义样式的建议]<a href="https://theme-next.js.org/docs/getting-started/configuration.html">https://theme-next.js.org/docs/getting-started/configuration.html</a></p><h4 id="安装next主题（npm安装方法）"><a href="#安装next主题（npm安装方法）" class="headerlink" title="安装next主题（npm安装方法）"></a>安装next主题（npm安装方法）</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">cd hexo-site</span><br><span class="line">npm install hexo-theme-next</span><br><span class="line">通过npm安装next</span><br></pre></td></tr></table></figure><h4 id="更新next主题（前提是使用npm安装的）"><a href="#更新next主题（前提是使用npm安装的）" class="headerlink" title="更新next主题（前提是使用npm安装的）"></a>更新next主题（前提是使用npm安装的）</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">cd hexo-site</span><br><span class="line">npm install hexo-theme-next@latest</span><br><span class="line">通过npm更新next（前提是通过npm安装的）</span><br></pre></td></tr></table></figure><p>git安装next方法</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">cd hexo</span><br><span class="line">git clone https://github.com/theme-next/hexo-theme-next themes/next</span><br></pre></td></tr></table></figure><p>git升级next方法</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">cd themes/next</span><br><span class="line">git pull</span><br></pre></td></tr></table></figure><h2 id="重新安装依赖："><a href="#重新安装依赖：" class="headerlink" title="重新安装依赖："></a>重新安装依赖：</h2><h4 id="字数统计"><a href="#字数统计" class="headerlink" title="字数统计"></a>字数统计</h4><p>[Hexo Word Counter]<a href="https://github.com/next-theme/hexo-word-counter">https://github.com/next-theme/hexo-word-counter</a></p><p>site config站点配置文件添加内容</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">symbols_count_time:</span><br><span class="line">  symbols: true</span><br><span class="line">  time: true</span><br><span class="line">  total_symbols: true</span><br><span class="line">  total_time: true</span><br><span class="line">  exclude_codeblock: false</span><br><span class="line">  awl: 4</span><br><span class="line">  wpm: 275</span><br><span class="line">  suffix: &quot;mins.&quot;</span><br><span class="line"></span><br></pre></td></tr></table></figure><p>next theme config自定义文件添加内容</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">post_meta:</span><br><span class="line">  item_text: true</span><br><span class="line"></span><br><span class="line">symbols_count_time:</span><br><span class="line">  separated_meta: true</span><br><span class="line">  item_text_total: false</span><br><span class="line"></span><br></pre></td></tr></table></figure><h4 id="hexo-related-popular-posts近期文章显示"><a href="#hexo-related-popular-posts近期文章显示" class="headerlink" title="hexo-related-popular-posts近期文章显示"></a>hexo-related-popular-posts近期文章显示</h4><p><a href="https://github.com/tea3/hexo-related-popular-posts">https://github.com/tea3/hexo-related-popular-posts</a></p><h4 id="theme-next-pdf预览器"><a href="#theme-next-pdf预览器" class="headerlink" title="theme-next-pdf预览器"></a>theme-next-pdf预览器</h4><p>使用方法，在插入PDF的地方加上</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&#123;% pdf /path/to/your/file.pdf %&#125;</span><br></pre></td></tr></table></figure><p>pdf preview 升级方法</p><p><a href="https://github.com/next-theme/theme-next-pdf">https://github.com/next-theme/theme-next-pdf</a></p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">$ cd hexo-site/source/lib/pdf</span><br><span class="line">$ git pull</span><br><span class="line"></span><br></pre></td></tr></table></figure><h4 id="黑暗模式"><a href="#黑暗模式" class="headerlink" title="黑暗模式"></a>黑暗模式</h4><p>安装</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">npm install hexo-next-darkmode --save</span><br><span class="line"></span><br></pre></td></tr></table></figure><p><a href="https://github.com/rqh656418510/hexo-next-darkmode">https://github.com/rqh656418510/hexo-next-darkmode</a></p><h4 id="Git部署安装"><a href="#Git部署安装" class="headerlink" title="Git部署安装"></a>Git部署安装</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install hexo-deployer-git --save</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">deploy:</span><br><span class="line">  type: git</span><br><span class="line">  repo: &lt;repository url&gt; # https://bitbucket.org/JohnSmith/johnsmith.bitbucket.io</span><br><span class="line">  branch: [branch]</span><br><span class="line">  message: [message]</span><br></pre></td></tr></table></figure><table><thead><tr><th>Option</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>repo</code></td><td>URL of the target repository</td><td></td></tr><tr><td><code>branch</code></td><td>Branch name.</td><td><code>gh-pages</code> (GitHub) <code>coding-pages</code> (Coding.net) <code>master</code> (others)</td></tr><tr><td><code>message</code></td><td>Customize commit message.</td><td><code>Site updated: &#123;&#123; now('YYYY-MM-DD HH:mm:ss') &#125;&#125;</code></td></tr><tr><td><code>token</code></td><td>Optional token value to authenticate with the repo. Prefix with <code>$</code> to read token from environment</td><td></td></tr></tbody></table><h4 id="sftp-依赖安装"><a href="#sftp-依赖安装" class="headerlink" title="sftp 依赖安装"></a>sftp 依赖安装</h4><p>安装</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install hexo-deployer-sftp --save</span><br></pre></td></tr></table></figure><p>在站点配置文件中添加该内容</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">deploy:</span><br><span class="line">  type: sftp</span><br><span class="line">  host: &lt;host&gt;</span><br><span class="line">  user: &lt;user&gt;</span><br><span class="line">  pass: &lt;password&gt;</span><br><span class="line">  remotePath: [remote path]</span><br><span class="line">  port: [port]</span><br><span class="line">  privateKey: [path/to/privateKey]</span><br><span class="line">  passphrase: [passphrase]</span><br><span class="line">  agent: [path/to/agent/socket]</span><br></pre></td></tr></table></figure><p>上面代码内容的解释</p><table><thead><tr><th>Option</th><th>Description</th><th>Default</th></tr></thead><tbody><tr><td><code>host</code></td><td>Address of remote host</td><td></td></tr><tr><td><code>user</code></td><td>Username</td><td></td></tr><tr><td><code>pass</code></td><td>Password</td><td></td></tr><tr><td><code>remotePath</code></td><td>Root directory of remote host</td><td><code>/</code></td></tr><tr><td><code>port</code></td><td>Port</td><td>22</td></tr><tr><td><code>privateKey</code></td><td>Path to a ssh private key</td><td></td></tr><tr><td><code>passphrase</code></td><td>Optional passphrase for the private key</td><td></td></tr><tr><td><code>agent</code></td><td>Path to the ssh-agent socket</td><td><code>$SSH_AUTH_SOCK</code></td></tr></tbody></table><h4 id="加密博文"><a href="#加密博文" class="headerlink" title="加密博文"></a>加密博文</h4><p>安装</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install --save hexo-blog-encrypt</span><br></pre></td></tr></table></figure><p>添加标签password:密码</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line">---</span><br><span class="line">title: Hello World</span><br><span class="line">date: 2016-03-30 21:18:02</span><br><span class="line">password: hello</span><br><span class="line">---</span><br><span class="line"></span><br><span class="line"></span><br></pre></td></tr></table></figure><p>可在文章中直接自定义密码相关显示内容，若要不加密，只需将改为password:””</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line">---</span><br><span class="line">title: Hello World</span><br><span class="line">tags:</span><br><span class="line">- 作为日记加密</span><br><span class="line">date: 2016-03-30 21:12:21</span><br><span class="line">password: mikemessi</span><br><span class="line">abstract: 有东西被加密了, 请输入密码查看.</span><br><span class="line">message: 您好, 这里需要密码.</span><br><span class="line">wrong_pass_message: 抱歉, 这个密码看着不太对, 请再试试.</span><br><span class="line">wrong_hash_message: 抱歉, 这个文章不能被校验, 不过您还是能看看解密后的内容.</span><br><span class="line">---</span><br><span class="line">Use a &quot;&quot; to diable tag encryption.For example,password:&quot;&quot;</span><br><span class="line"></span><br></pre></td></tr></table></figure><p>也可以在站点配置文件中配置，优先级：文章信息头 &gt; <code>_config.yml</code> (站点根目录下的) &gt; 默认配置</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"></span><br><span class="line"># Security</span><br><span class="line">encrypt: # hexo-blog-encrypt</span><br><span class="line">  abstract: 有东西被加密了, 请输入密码查看.</span><br><span class="line">  message: 您好, 这里需要密码.</span><br><span class="line">  tags:</span><br><span class="line">  - &#123;name: tagName, password: 密码A&#125;</span><br><span class="line">  - &#123;name: tagName, password: 密码B&#125;</span><br><span class="line">  wrong_pass_message: 抱歉, 这个密码看着不太对, 请再试试.</span><br><span class="line">  wrong_hash_message: 抱歉, 这个文章不能被校验, 不过您还是能看看解密后的内容.</span><br><span class="line"></span><br><span class="line"></span><br></pre></td></tr></table></figure><p>还可以禁止产生log，在站点文章中增加以下内容</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"># Security</span><br><span class="line">encrypt: # hexo-blog-encrypt</span><br><span class="line">  silent: true</span><br></pre></td></tr></table></figure><p>以及修改主题样式（？？也许是加密的样式更改，应该不会是直接更改页面主题吧）</p><p>具体内容详见：<a href="https://github.com/D0n9X1n/hexo-blog-encrypt/blob/master/ReadMe.zh.md">https://github.com/D0n9X1n/hexo-blog-encrypt/blob/master/ReadMe.zh.md</a></p><h4 id="hexo-leancloud-counter-security阅读次数"><a href="#hexo-leancloud-counter-security阅读次数" class="headerlink" title="hexo-leancloud-counter-security阅读次数"></a>hexo-leancloud-counter-security阅读次数</h4><p>简书，新版修复安全性的leancloud配置方法<br><a href="https://www.jianshu.com/p/e0a719bac963">https://www.jianshu.com/p/e0a719bac963</a></p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install hexo-leancloud-counter-security</span><br></pre></td></tr></table></figure><p><a href="https://github.com/theme-next/hexo-leancloud-counter-security">https://github.com/theme-next/hexo-leancloud-counter-security</a></p><h4 id="hexo-symbols-count-time"><a href="#hexo-symbols-count-time" class="headerlink" title="hexo-symbols-count-time"></a>hexo-symbols-count-time</h4><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install hexo-symbols-count-time</span><br></pre></td></tr></table></figure><h4 id="RSS订阅"><a href="#RSS订阅" class="headerlink" title="RSS订阅"></a>RSS订阅</h4><p><a href="https://github.com/hexojs/hexo-generator-feed">https://github.com/hexojs/hexo-generator-feed</a></p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install hexo-generator-feed --save</span><br></pre></td></tr></table></figure><p>在个人配置文件中添加以下内容：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">feed:</span><br><span class="line">  enable: true</span><br><span class="line">  type: atom</span><br><span class="line">  path: atom.xml</span><br><span class="line">  limit: 20</span><br><span class="line">  hub:</span><br><span class="line">  content:</span><br><span class="line">  content_limit: 140</span><br><span class="line">  content_limit_delim: &#x27; &#x27;</span><br><span class="line">  order_by: -date</span><br><span class="line">  icon: icon.png</span><br><span class="line">  autodiscovery: true</span><br><span class="line">  template:</span><br></pre></td></tr></table></figure><h4 id="站点地图"><a href="#站点地图" class="headerlink" title="站点地图"></a>站点地图</h4><p> Hexo安装sitemap</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">npm install hexo-generator-sitemap --save #sitemap.xml适合提交给谷歌搜素引擎</span><br><span class="line">npm install hexo-generator-baidu-sitemap --save #baidusitemap.xml适合提交百度搜索引擎</span><br></pre></td></tr></table></figure><p><code>hexo cl &amp;&amp; hexo g</code>会在/public目录下生成<code>sitemap.xml</code>和<code>baidusitemap.xml</code>，这就是你的站点地图。</p><p>摘自：<a href="https://www.cnblogs.com/brady-wang/p/8493181.html%E6%96%87%E7%AB%A0%E4%B8%AD%E6%9C%89%E6%9B%B4%E5%A4%9A%E5%85%B3%E4%BA%8E%E7%BD%91%E7%AB%99SEO%E7%9A%84%E5%85%B7%E4%BD%93%E4%BA%8B%E9%A1%B9%EF%BC%8C%E4%BD%86%E4%B8%8D%E5%AE%B9%E6%98%93%E6%93%8D%E4%BD%9C%EF%BC%88%E5%A4%9A%E8%80%8C%E6%9D%82%EF%BC%89%EF%BC%8C%E5%AD%A6%E4%B9%A0%E6%88%90%E6%9C%AC%E8%BE%83%E9%AB%98">https://www.cnblogs.com/brady-wang/p/8493181.html文章中有更多关于网站SEO的具体事项，但不容易操作（多而杂），学习成本较高</a></p><h1 id="npm升级"><a href="#npm升级" class="headerlink" title="npm升级"></a>npm升级</h1><h2 id="自身升级"><a href="#自身升级" class="headerlink" title="自身升级"></a>自身升级</h2><h2 id="升级依赖等"><a href="#升级依赖等" class="headerlink" title="升级依赖等"></a>升级依赖等</h2><h1 id="黑客404页面主题配置"><a href="#黑客404页面主题配置" class="headerlink" title="黑客404页面主题配置"></a>黑客404页面主题配置</h1><p><a href="/data/404-kittens.zip">html页面下载</a></p><h1 id="代码折叠显示功能"><a href="#代码折叠显示功能" class="headerlink" title="代码折叠显示功能"></a>代码折叠显示功能</h1><p>hexo博客代码折叠功能<a href="https://www.toimc.com/hexo-usage-2/%E4%BD%9C%E8%80%85%EF%BC%9ABrian">https://www.toimc.com/hexo-usage-2/作者：Brian</a></p><p>fancybox启用无效，也许需要放上图片才能启用fancybox，进而启动jQuery</p><h4 id="折叠逻辑"><a href="#折叠逻辑" class="headerlink" title="折叠逻辑"></a>折叠逻辑</h4><p>添加<code>code-unfold.js</code></p><p>由于是在<code>next</code>主题中添加js逻辑，所以我们把<code>code-unfold.js</code>放置在了<code>themes/next/source/js/code-unfold.js</code>：</p><p>引用<code>code-unfold.js</code>（全局引用jQuery）</p><p>修改文件<code>themes/next/layout/_scripts/index.njk</code></p><h4 id="添加样式"><a href="#添加样式" class="headerlink" title="添加样式"></a>添加样式</h4><p>创建<code>highlight.styl</code></p><p>可以添加<code>theme/next/source/css/_common/components/highlight.styl</code>文件：</p><h4 id="引用样式"><a href="#引用样式" class="headerlink" title="引用样式"></a>引用样式</h4><p>找到文件<code>themes/next/source/css/_common/components/index.styl</code>：</p><h1 id="hexo的内置标签特性"><a href="#hexo的内置标签特性" class="headerlink" title="hexo的内置标签特性"></a>hexo的内置标签特性</h1><p>Tabs tag</p><p><a href="https://hexo-next.readthedocs.io/zh_CN/latest/next/base/%E6%A0%87%E7%AD%BE%E9%A1%B5%E8%AE%BE%E7%BD%AE/">https://hexo-next.readthedocs.io/zh_CN/latest/next/base/%E6%A0%87%E7%AD%BE%E9%A1%B5%E8%AE%BE%E7%BD%AE/</a></p><p><img src="../images/next%E4%B8%BB%E9%A2%98%E9%85%8D%E7%BD%AE8.6.1/image-20210713202932362.png" alt="image-20210713202932362"></p><p>##############################################</p><p>更新bug：首页之后的第一页页脚歪，表现在sidebar显示的时候，首页页脚也是歪的</p><p>有时莫名其妙又好了</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;NexT升级&quot;&gt;&lt;a href=&quot;#NexT升级&quot; class=&quot;headerlink&quot; title=&quot;NexT升级&quot;&gt;&lt;/a&gt;NexT升级&lt;/h1&gt;&lt;h3 id=&quot;npm更换镜像源&quot;&gt;&lt;a href=&quot;#npm更换镜像源&quot; class=&quot;headerlink&quot; </summary>
      
    
    
    
    <category term="博客" scheme="https://firmum.top/categories/%E5%8D%9A%E5%AE%A2/"/>
    
    <category term="搭建" scheme="https://firmum.top/categories/%E5%8D%9A%E5%AE%A2/%E6%90%AD%E5%BB%BA/"/>
    
    
    <category term="NexT" scheme="https://firmum.top/tags/NexT/"/>
    
    <category term="Hexo" scheme="https://firmum.top/tags/Hexo/"/>
    
  </entry>
  
  <entry>
    <title>Nginx搭建</title>
    <link href="https://firmum.top/2023/12/16/Nginx%E9%9D%99%E6%80%81%E7%BD%91%E9%A1%B5%E9%85%8D%E7%BD%AE/"/>
    <id>https://firmum.top/2023/12/16/Nginx%E9%9D%99%E6%80%81%E7%BD%91%E9%A1%B5%E9%85%8D%E7%BD%AE/</id>
    <published>2023-12-16T14:25:20.000Z</published>
    <updated>2023-12-16T14:25:20.052Z</updated>
    
    <content type="html"><![CDATA[<h1 id="Nginx原理"><a href="#Nginx原理" class="headerlink" title="Nginx原理"></a>Nginx原理</h1><p><a href="https://zhuanlan.zhihu.com/p/31196264">nginx快速入门之基本原理篇</a></p><h4 id="权限错误"><a href="#权限错误" class="headerlink" title="权限错误"></a>权限错误</h4><p>使用该命令查看master进程与worker进程的所有者：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ps aux|grep nginx|grep -v grep</span><br></pre></td></tr></table></figure><p>发现worker的权限为wwwdata。将<code>/etc/nginx/nginx.conf</code>文件中首行的<code>user wwwdata</code>更改为<code>user root</code>便正常访问了。</p><p>以下是问题背景：</p><p>使用腾讯云服务器时，通过root下载了nginx，之后在子用户ubuntu下搭设网站，访问时提示500错误，排查后，在<code>/etc/nginx/nginx.conf</code>的首行的用户（user）更改为root便正常访问了。解决方法来源： <a href="https://www.cnblogs.com/bigbigbigo/p/11067248.html">Linux Nginx的权限——访问本地目录报错403</a></p><h1 id="安装和管理Nginx"><a href="#安装和管理Nginx" class="headerlink" title="安装和管理Nginx"></a>安装和管理Nginx</h1><p><a href="https://www.myfreax.com/how-to-install-nginx-on-ubuntu-18-04/">如何在Ubuntu 18.04上安装Nginx</a></p><h2 id="重定向http到https"><a href="#重定向http到https" class="headerlink" title="重定向http到https"></a>重定向http到https</h2><p><a href="https://www.myfreax.com/redirect-http-to-https-in-nginx/">https://www.myfreax.com/redirect-http-to-https-in-nginx/</a></p><h2 id="try-files指令说明"><a href="#try-files指令说明" class="headerlink" title="try_files指令说明"></a>try_files指令说明</h2><p><a href="https://www.hi-linux.com/posts/53878.html">https://www.hi-linux.com/posts/53878.html</a></p><h1 id="配置防火墙"><a href="#配置防火墙" class="headerlink" title="配置防火墙"></a>配置防火墙</h1><p>ufw</p><p><a href="https://p3terx.com/archives/installing-and-configuring-ufw-in-debian.html">Debian/Ubuntu 中安装和配置 UFW（简单防火墙）</a></p><p><a href="https://zhuanlan.zhihu.com/p/139381645">IP伪装</a></p><h1 id="证书"><a href="#证书" class="headerlink" title="证书"></a>证书</h1><p>3个月的免费证书：<a href="https://www.myfreax.com/secure-nginx-with-let-s-encrypt-on-ubuntu-18-04/">在Ubuntu 18.04上使用Let’s Encrypt加密来保护Nginx</a></p><p>自制证书：<a href="https://www.jianshu.com/p/163f7b4d354a">https://www.jianshu.com/p/163f7b4d354a</a></p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;Nginx原理&quot;&gt;&lt;a href=&quot;#Nginx原理&quot; class=&quot;headerlink&quot; title=&quot;Nginx原理&quot;&gt;&lt;/a&gt;Nginx原理&lt;/h1&gt;&lt;p&gt;&lt;a href=&quot;https://zhuanlan.zhihu.com/p/31196264&quot;&gt;ng</summary>
      
    
    
    
    <category term="博客" scheme="https://firmum.top/categories/%E5%8D%9A%E5%AE%A2/"/>
    
    <category term="搭建" scheme="https://firmum.top/categories/%E5%8D%9A%E5%AE%A2/%E6%90%AD%E5%BB%BA/"/>
    
    
    <category term="Nginx" scheme="https://firmum.top/tags/Nginx/"/>
    
    <category term="服务器" scheme="https://firmum.top/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/"/>
    
  </entry>
  
  <entry>
    <title>vultr换ip记</title>
    <link href="https://firmum.top/2023/12/16/vultr%E6%8D%A2ip%E8%AE%B0/"/>
    <id>https://firmum.top/2023/12/16/vultr%E6%8D%A2ip%E8%AE%B0/</id>
    <published>2023-12-16T14:24:30.000Z</published>
    <updated>2023-12-16T14:24:30.678Z</updated>
    
    <content type="html"><![CDATA[<p>前因：数年后整理草稿，勉强回顾下，这篇文章应该是在搭建个人博客阶段，由于国内需要备案，嫌麻烦，于是想通过国外服务器搭建网页，这样子不用备案。</p><p>一次日本被墙</p><p>一次韩国被墙</p><p>法国的是个诈骗网站IP</p><p>悉尼的是个诈骗网站IP</p><p>洛杉矶直接ping不通</p><p>西雅图也是</p><p>硅谷同样</p><p>日本的这次还不错，可惜是测试机，应该用快照安装的，但是快照安装太慢了</p><p><img src="https://i.loli.net/2021/08/21/HpVEseBfknoAyNz.png" alt="vultr多虚拟机测试IP连通性"></p><p>45.77.132.74x</p><p>108.160.131.241x</p><p>198.13.43.224√</p><p>==45.77.183.169x==重复ip</p><p>45.77.132.74-ping不通</p><p>108.160.131.241x上传速度慢</p><p>==45.77.183.169==x上传速度较慢</p><p>202.182.105.188√</p><p>最终选择202.182.105.188√</p><p>尝试了十余台机器，只记录了8台，以下是我达到满意所花的钱。不排除未来ip被封的越来越多，仅供参考。</p><p><img src="https://i.loli.net/2021/08/21/DjeoRI4ZzVuYOpE.png" alt="vultr达到满意所花费用"></p><p>标准结局：经腾讯对接人员引荐，尝试了下香港轻量服务器，一个月24元，速度非常快，基本和本地没差别，延迟在30-40ms之间。带宽峰值30Mb，流量1000g。不错不错</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;前因：数年后整理草稿，勉强回顾下，这篇文章应该是在搭建个人博客阶段，由于国内需要备案，嫌麻烦，于是想通过国外服务器搭建网页，这样子不用备案。&lt;/p&gt;
&lt;p&gt;一次日本被墙&lt;/p&gt;
&lt;p&gt;一次韩国被墙&lt;/p&gt;
&lt;p&gt;法国的是个诈骗网站IP&lt;/p&gt;
&lt;p&gt;悉尼的是个诈骗网站IP&lt;</summary>
      
    
    
    
    <category term="博客" scheme="https://firmum.top/categories/%E5%8D%9A%E5%AE%A2/"/>
    
    <category term="搭建" scheme="https://firmum.top/categories/%E5%8D%9A%E5%AE%A2/%E6%90%AD%E5%BB%BA/"/>
    
    
    <category term="服务器" scheme="https://firmum.top/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/"/>
    
  </entry>
  
  <entry>
    <title>人生的减法</title>
    <link href="https://firmum.top/2023/12/16/%E4%BA%BA%E7%94%9F%E7%9A%84%E5%87%8F%E6%B3%95/"/>
    <id>https://firmum.top/2023/12/16/%E4%BA%BA%E7%94%9F%E7%9A%84%E5%87%8F%E6%B3%95/</id>
    <published>2023-12-16T13:47:31.000Z</published>
    <updated>2023-12-16T14:05:54.203Z</updated>
    
    <content type="html"><![CDATA[<h1 id="论足球于我"><a href="#论足球于我" class="headerlink" title="论足球于我"></a>论足球于我</h1><p>我很喜欢足球，这可以说是我仅有的不需要任何犹豫就能脱口而出的爱好。</p><p>每个在场球员都是这局游戏的一部分，我们传球，我们秀脚法，我们射门。我们享受进球的快乐，我们享受组织合作的快乐，每一次传球，每一次抢断，每一次射门，都是在场球员参赛的一部分。</p><p>于我而言，进球的快乐并不是唯一，我们在场上跑动，带球，对抗，配合等等，这种团结、友爱的氛围才是我沉醉其中的原因。倘若有人执着于进球而置团队于不顾，那么我会十分的反感，当然，这仅仅是个人的情绪，每个人都有他们各自踢球的意义，不是吗。足球对于我，自然是“快乐足球”，舒展身体，追逐一个球然后表现自我的娱乐方式。进球后的庆祝和肯定，失球后的打气和鼓励，都自然而然的展现出一种自信，一种积极向上的态度，这也强烈地吸引着我，毕竟我也曾自卑过，现在也未能完全摆脱————就像水面上的倒影阳光下的影子一般。</p><p>但是足球让我自信，被汗水湿透的衣服和舒展自由的身体告诉我今天又是快乐足球的一天。虽然没进球，但是这一切并不是毫无意义————精神上生理上都有积极的意义。</p><p>有的人认为踢球是一种责任</p><p>足球作为一项体育运动，能让参与的人强身健体，也能让人意识到团队合作的精神，这对曾经独狼的我而言，更是</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;论足球于我&quot;&gt;&lt;a href=&quot;#论足球于我&quot; class=&quot;headerlink&quot; title=&quot;论足球于我&quot;&gt;&lt;/a&gt;论足球于我&lt;/h1&gt;&lt;p&gt;我很喜欢足球，这可以说是我仅有的不需要任何犹豫就能脱口而出的爱好。&lt;/p&gt;
&lt;p&gt;每个在场球员都是这局游戏的一部分，</summary>
      
    
    
    
    <category term="随想" scheme="https://firmum.top/categories/%E9%9A%8F%E6%83%B3/"/>
    
    
    <category term="孤独" scheme="https://firmum.top/tags/%E5%AD%A4%E7%8B%AC/"/>
    
    <category term="光明的未来" scheme="https://firmum.top/tags/%E5%85%89%E6%98%8E%E7%9A%84%E6%9C%AA%E6%9D%A5/"/>
    
  </entry>
  
  <entry>
    <title>我想成为一个怎样的人</title>
    <link href="https://firmum.top/2023/08/05/%E6%88%91%E6%83%B3%E6%88%90%E4%B8%BA%E4%B8%80%E4%B8%AA%E6%80%8E%E6%A0%B7%E7%9A%84%E4%BA%BA/"/>
    <id>https://firmum.top/2023/08/05/%E6%88%91%E6%83%B3%E6%88%90%E4%B8%BA%E4%B8%80%E4%B8%AA%E6%80%8E%E6%A0%B7%E7%9A%84%E4%BA%BA/</id>
    <published>2023-08-05T04:44:07.708Z</published>
    <updated>2023-08-05T06:45:36.043Z</updated>
    
    <content type="html"><![CDATA[<p>我想成为一个怎样的人，到现在我都还没想明白。</p><p>多年前，我曾想过，人这一生，平平淡淡地过去，柴米油盐酱醋茶，有个自己的爱好，过好生活就行。然而工作20个月以来，这种日子竟是如此的不可及，半躺平的态度竟然无法企及这种生活。想要平淡的过日子，首先得想尽一切办法去拼。</p><p>但是仔细想想，我想象中的生活真的是平淡生活吗？择偶条件如此苛刻，选择起来又如此犹豫，成双成对的机会多次失去。事实是我的要求并不低，但是我的自身条件却并不高————现实版癞蛤蟆想吃天鹅肉。</p><p>所以我需要继续提升自己。做一件事，不认真做就算了，认真做了，就要做好。这是既往的认识和态度，我是否要就此刻的实际情况调整下呢，也算是叠下Buff？在此作出调整：做一件重要的事，需“思前想后”，“左顾右盼”，想触发我做这件事的起因，想我做这件事之后会产生什么影响以及将要付出的代价；左右征求一下看法作为参考。而一旦确认要做这件事，需做好全局打算，并且根据现实情况实时调整，但总方向不变————除非确认了客观条件上的不可能。</p><p>那么在确认做事之前，需要确认自己到底想要什么，自己想成为一个怎样的人。无计划、在个人视角上随机地接触事务，并作出反应，进而成为自身的一小部分，互相影响，成就一个随机的人，并美其名曰这都是命运的安排，这是浪漫的人生，一切的遇见和发生都是命中注定，我无法反抗，无法抗拒，因为我也是由过去的事情影响而造就的，所以我做出的选择也都是受过去影响，我“无法自拔”。主观能动性在我这里的影响非常小，有限的选择，通常是只有这个选择我会去选。让本能去选择，大多数情况是短视的，这是现实告诉我的答案，也是教训————无论是专业选择还是本科就业。但换句话说，这也让我得到了自我谅解和救赎————这就是我这就是我这就是我。承认客观上的自己，然后才能作出“真正”的选择，我愿称之为抉择。是选择不变，还是改变？</p><p>我不满足现在的生活，所以我要做出改变。</p><p>那么，我们先设想好要搭积木的大致模型吧！不考虑可能性，就考虑自己的想法。</p><p>我要有一个大房子，四个人每人都有各自充足的空间，四个人分别是我，妻子，儿子，闺女。这个房子周围要足够安静，同时基础设施齐全。基础设施指健身锻炼场所，教育场所，医疗场所，绿化面积大，自然环境好，水电网全通。房子周围有自己的小花园，可以任意支配。</p><p>附近要有足球场，且足球氛围较好，每周至少两次2小时以上的足球活动。孩子教育水平不低于平均线。</p><p>……</p><p>想要让理想照进现实，我需要有充足的时间，充足的资源。直觉告诉我需要500个w以上。</p><p>假设家庭月收入2个w，刨去成本0.8w，每月留下1.2个w，每年存14.4w，需要存35年。</p><p>假设家庭月收入4个w，刨去成本1w，每月留下3个w，每年存36w，需要存14年。</p><p>……</p><blockquote><p>资本世界，分为三种人，第一是资源者（工薪阶层），第二是配置者（企业家），第三是资本家（金融家）<a href="http://www.xjshifeng.com/news/detail/id/71.html">原文出处</a></p></blockquote><p>我现在需要努力成为第二种人。在这之前我需要再花更多的时间来确认接下来的行进路线。是提升技能的稀缺性，还是……这需要头脑风暴一下。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;我想成为一个怎样的人，到现在我都还没想明白。&lt;/p&gt;
&lt;p&gt;多年前，我曾想过，人这一生，平平淡淡地过去，柴米油盐酱醋茶，有个自己的爱好，过好生活就行。然而工作20个月以来，这种日子竟是如此的不可及，半躺平的态度竟然无法企及这种生活。想要平淡的过日子，首先得想尽一切办法去拼。</summary>
      
    
    
    
    <category term="随笔" scheme="https://firmum.top/categories/%E9%9A%8F%E7%AC%94/"/>
    
    
    <category term="苏格拉底" scheme="https://firmum.top/tags/%E8%8B%8F%E6%A0%BC%E6%8B%89%E5%BA%95/"/>
    
  </entry>
  
  <entry>
    <title>系统迁移</title>
    <link href="https://firmum.top/2023/05/04/%E7%B3%BB%E7%BB%9F%E8%BF%81%E7%A7%BB/"/>
    <id>https://firmum.top/2023/05/04/%E7%B3%BB%E7%BB%9F%E8%BF%81%E7%A7%BB/</id>
    <published>2023-05-04T14:27:55.303Z</published>
    <updated>2023-12-16T14:03:57.722Z</updated>
    
    <content type="html"><![CDATA[<h1 id="系统迁移"><a href="#系统迁移" class="headerlink" title="系统迁移"></a>系统迁移</h1><h2 id="适用范围"><a href="#适用范围" class="headerlink" title="适用范围"></a>适用范围</h2><p>　　如果是Windows的迁移，用Diskgenius等软件可以很方便的迁移。这里是linux系统的迁移。</p><p>　　打包Ubuntu/Linux系统，迁移到其他分区或电脑，也可以迁移到虚拟机，如迁移到VMware。</p><span id="more"></span><h2 id="将系统迁移到实体机"><a href="#将系统迁移到实体机" class="headerlink" title="将系统迁移到实体机"></a>将系统迁移到实体机</h2><p>　　以下步骤或简要摘录，或原文粘贴，按先后顺序展开。经验证，该步骤可以成功迁移Ubuntu20.04系统。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">graph LR</span><br><span class="line">    a((系统迁移))--tar--&gt;b[打包]--gparted--&gt;c[分区]--tar--&gt;d[解压]--boot-repair--&gt;e[修复引导]</span><br><span class="line"></span><br></pre></td></tr></table></figure><h3 id="一、tar命令打包Ubuntu系统"><a href="#一、tar命令打包Ubuntu系统" class="headerlink" title="一、tar命令打包Ubuntu系统"></a>一、tar命令打包Ubuntu系统</h3><p>　　先进入单用户模式：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo init 1</span><br></pre></td></tr></table></figure><p>　　如果想恢复图形界面，键入<code>init 5</code>，或者重启即可。</p><p>　　打包方式列举两种，一种是直接打包，不使用压缩，后缀名为.tar，好处是后续方便追加文件到打包文件；另一种是压缩打包，后缀名为.tar.gz，好处是打包文件更小。当然也有别的压缩方式，此处不展开。</p><p><strong>1. tar命令（直接打包）</strong></p><p>　　假设要将压缩包存储在U盘上，那么插入U盘，创建挂载点文件夹，然后挂载U盘到挂载点文件夹：</p><p>　　<code>lsblk</code>查看挂载点（MOUNTPOINTS），以下仅为示意图，非实际应当展现的内容</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">root@OpenWrt:~# lsblk</span><br><span class="line">NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS</span><br><span class="line">sde      8:64   1 114.7G  0 disk</span><br><span class="line">└─sde1   8:65   1 114.7G  0 part </span><br><span class="line">root@OpenWrt:~#</span><br></pre></td></tr></table></figure><p>　　sde1为U盘分区（通过SIZE容量来判断），创建/mnt/sde1文件夹</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">mkdir /mnt/sde1</span><br></pre></td></tr></table></figure><p>　　挂载该盘到/mnt/sde1：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">mount /dev/sde1 /mnt/sde1</span><br></pre></td></tr></table></figure><p>　　<code>lsblk</code>查看挂载点（MOUNTPOINTS），以下仅为示意图，非实际应当展现的内容</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">root@OpenWrt:~# lsblk</span><br><span class="line">NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS</span><br><span class="line">sde      8:64   1 114.7G  0 disk</span><br><span class="line">└─sde1   8:65   1 114.7G  0 part /mnt/sde1</span><br><span class="line">root@OpenWrt:~#</span><br></pre></td></tr></table></figure><p>　　可以看到已经挂载上了，挂载点为/mnt/sde1文件夹</p><p>　　开始打包系统到U盘，压缩包名称随意，后缀名为tar或tar.gz，以下为backup.tar</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">tar -cvpf /mnt/sde1/backup.tar --exclude=/proc --exclude=/sys --exclude=/media --exclude=/mnt --exclude=/tmp / </span><br></pre></td></tr></table></figure><p><strong>操作介绍</strong></p><ul><li><code>-tar</code> ：Tape Archive. 命令名 </li><li><code>-c</code> ：create. 新建一个压缩文件。</li><li><code>-v</code> ：verbose. 输出详细信息。</li><li><code>-p</code> ：preserve-permissions. 连同文件的权限属性一起打包进去。</li><li><code>-f</code> ：指定要生成的压缩文件。</li><li><code>/</code> ：要打包的对象，为根目录及其所有子目录和文件。</li><li><code>--exclude</code> ： 后面一连串的 exclude 指明了打包过程中需要排除掉的对象。<br>其中需要<em><strong>特别注意</strong></em>的是一定要排除掉生成的压缩文件本身，不然的话，自己打包自己，可能会导致意想不到的错误。这里已经排除掉了，因为压缩文件所在位置在/mnt/sde1中，而/mnt已经被排除掉了。在本例中我们忽略掉了这五个目录以减小压缩文件的大小：/proc /sys /media /mnt /tmp. 忽略掉这五个目录对于我们不会有实际影响，根据启蒙导师鸟哥的说法，这五个目录在 Linux 系统中的作用如下：<ul><li><code>/proc</code>：本身是一个『虚拟文件系统(virtual filesystem)』喔！他放置的数据都是在内存当中， 例如系统核心、行程信息(process)、周边装置的状态及网络状态等等。因为这个目录下的数据都是在内存当中， 所以本身不占任何硬盘。（这段描述很让人晕，本身不占用任何硬盘，但是在打包过程中如果把该目录也打包进去的话，打包过根本无法完成。感兴趣的朋友可以看一下该目录下有一个<code>/proc/kcore</code> 文件，如果使用 ls 命令查看的话，可以看到该文件的大小显示为 128T！）</li><li><code>/sys</code>：这个目录其实跟/proc非常类似，也是一个虚拟的文件系统，主要也是记录与核心相关的信息。 包括目前已加载的核心模块与核心侦测到的硬件装置信息等等。这个目录同样不占硬盘容量</li><li><code>/media</code>：media是『媒体』的英文，顾名思义，这个/media底下放置的就是可移除的装置。 包括软盘、光盘、DVD等等装置都暂时挂载于此。</li><li><code>/mnt</code>：如果你想要暂时挂载某些额外的装置，一般建议你可以放置到这个目录中。 在古早时候，这个目录的用途与/media相同。只是有了/media之后，这个目录就用来暂时挂载用了。</li><li><code>/tmp</code>：这是让一般使用者或者是正在执行的程序暂时放置文件的地方。 这个目录是任何人都能够存取的，所以你需要定期的清理一下。当然，重要数据不可放置在此目录啊！ 因为FHS甚至建议在开机时，应该要将/tmp下的数据都删除。</li></ul></li></ul><p><strong>2. gzip方式（打包并压缩）</strong></p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">tar -cvpzf backup.tar.gz --exclude=/backup.tar --exclude=/proc --exclude=/sys --exclude=/media --exclude=/mnt --exclude=/tmp / </span><br></pre></td></tr></table></figure><ul><li><p><code>-z</code> ：gzip. 使用 gzip 压缩方式。</p><p>  ​    该命令大概会耗费10分钟左右的时间，视打包文件大小和机器性能而定。</p></li></ul><h3 id="二、准备一个-Linux启动盘"><a href="#二、准备一个-Linux启动盘" class="headerlink" title="二、准备一个 Linux启动盘"></a>二、准备一个 Linux启动盘</h3><p>　　现在你已经得到一个 Linux 系统的压缩包了，你可以把它拷贝到 U 盘中。但是要将其还原到另一台机器中的话，我们还需要一个能启动的 Linux-Live U 盘。最好这个 Linux-Live 系统跟你所备份的源系统是同一个操作系统版本，这样的话可以避免一些意想不到的意外。比如说我备份的系统是 Ubuntu-20.04 那么我就用 Ubuntu-20.04 的 Live 系统来进行还原工作。</p><p>　　你可以直接将压缩包放到已经做好的 Live 系统 U 盘中，或者你干脆使用两个 U 盘，这都无所谓。</p><p>　　而至于如何制作 Linux-Live 系统 U 盘，这个在本文中便不做论述。我相信既然你会用 Linux 系统，那这个肯定难不倒你。</p><h3 id="三、硬盘分区"><a href="#三、硬盘分区" class="headerlink" title="三、硬盘分区"></a>三、硬盘分区</h3><p>　　<em><strong>在进行这一步之前，请确保你知道你在做什么。以下教程假设你在一台全新的机器或者不包含需要留存的数据的机器中进行。根据以下教程操作，你将丢失所操作设备上的所有数据！</strong></em></p><p>　　好，我们现在已经进入到了一台新机器上的 Linux-Live 系统。</p><p>　　首先，我们对新的机器进行一下分区。Linux 系统上有一个非常好用的图形化分区工具：gparted.</p><p>　　使用如下命令来安装该程序：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo apt-get install gparted</span><br></pre></td></tr></table></figure><p>　　当然，要确保你的机器已经接入了互联网。</p><p>　　之后，启动该程序。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo gparted</span><br></pre></td></tr></table></figure><p>　　使用该工具，我们将硬盘分成三个区。假设你的机器中装入了一块1024G的硬盘，设备号为 sda，则最终的分区结果如下 <strong>（注意：在后文的描述中，sda 均指代我们要进行操作系统恢复的目标磁盘。读者在操作过程中需视视自身情况选择设备号）</strong>：</p><table><thead><tr><th>分区</th><th>容量</th><th>类型</th><th>说明</th></tr></thead><tbody><tr><td>sda1</td><td>256 MB</td><td>FAT32</td><td>boot 分区</td></tr><tr><td>sda2</td><td>262144 MB</td><td>ext4</td><td>根目录分区</td></tr><tr><td>sda3</td><td>32768 MB</td><td>swap</td><td>交换分区。用于进行虚拟内存的映射，一般推荐大小为内存的两倍</td></tr></tbody></table><p>　　如果内存够大，可以不添加swap交换分区</p><h3 id="四、解压恢复"><a href="#四、解压恢复" class="headerlink" title="四、解压恢复"></a>四、解压恢复</h3><p>　　现在你已经完成分区了，接下来需要将文件从压缩包中提取出来。</p><p>首先，我们将 sda2 分区挂载到系统中。在 Ubuntu 的图形界面中，这一步非常简单，只需要点击一下任务栏中该磁盘的图标就行。</p><p>　　之后我们依然使用 tar 命令来进行解压缩（若使用的是gzip，则需加<code>-z</code>命令）：</p><p>　　<code>lsblk</code>查看挂载点（MOUNTPOINTS），以下仅为示意图，非实际应当展现的内容</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">root@OpenWrt:~# lsblk</span><br><span class="line">NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS</span><br><span class="line">loop0    7:0    0 200.1M  0 loop /overlay</span><br><span class="line">sda      8:0    0 298.1G  0 disk</span><br><span class="line">├─sda1   8:1    0 256.1M  0 part</span><br><span class="line">├─sda2   8:2    0 256.1G  0 part</span><br><span class="line">└─sda3   8:3    0  32.1G  0 part</span><br><span class="line">sde      8:64   1 114.7G  0 disk</span><br><span class="line">└─sde1   8:65   1 114.7G  0 part /mnt/sde1</span><br><span class="line">root@OpenWrt:~#</span><br></pre></td></tr></table></figure><p>　　请参照第一步的挂载方法，将系统盘挂载到一个文件夹，如将sda2挂载到/mnt/sda2文件夹。</p><p>　　解压系统压缩包到/mnt/sda2挂载点：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo tar -xvpf /mnt/sde1/backup.tar -C /mnt/sda2/ --numeric-owner</span><br></pre></td></tr></table></figure><ul><li>-x：extract. 表示进行解压缩操作。<br>/media/cdrom/backup.tar.gz ：解压缩的文件，具体视你所存放的路径而定。</li><li>-C /media/ubuntu/XXXX：将文件解压到该目录下，具体视你的 sda2 分区挂载的路径而定。</li><li>–numeric-owner：表示连同压缩包中文件的权限一块提取出来。</li></ul><pre><code>    该命令同样需要耗费大概10分钟左右的时间，视解压文件大小和机器性能而定。​    还记得之前打包时被我们忽略掉的那几个目录吗？解压完成之后，我们将手动创建这几个目录。</code></pre><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">cd /mnt/sda2/  # 切换路径到 sda2 分区</span><br><span class="line"># 注意由于 sda2 分区并不是当前 Linux-Live 系统的根目录，因此在此处请使用相对路径创建</span><br><span class="line">sudo mkdir proc sys media mnt tmp </span><br></pre></td></tr></table></figure><h3 id="五、修正分区uuid"><a href="#五、修正分区uuid" class="headerlink" title="五、修正分区uuid"></a>五、修正分区uuid</h3><p>　　通用唯一识别码（Universally Unique Identifier,UUID），用于计算机体系中以识别信息的一个128位标识符。具有唯一性。重复UUID码概率接近零，可以忽略不计。<br>这里是要把系统文件里原分区的uuid改为当前分区的uuid，若不修改则会在开机的时候找不到对应分区，表现为卡在开机图标界面。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">chroot /mnt/sda2#切换系统目录到sda2，相当于现在/mnt/sda2是你的根目录/</span><br><span class="line">blkid   #查看各分区uuid</span><br><span class="line">sudo gedit /etc/fstab  #编辑fstab文件，将uuid值替换为对应分区的正确uuid</span><br></pre></td></tr></table></figure><p>　　以下为文件示例，总共有六项，第二项是挂载点，第三项是分区类型，一般来讲改一下UUID即可，更详细内容请自行搜索fstab文件相关内容查阅。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"># /etc/fstab: static file system information.</span><br><span class="line">#</span><br><span class="line"># Use &#x27;blkid&#x27; to print the universally unique identifier for a</span><br><span class="line"># device; this may be used with UUID= as a more robust way to name devices</span><br><span class="line"># that works even if disks are added and removed. See fstab(5).</span><br><span class="line">#</span><br><span class="line"># &lt;file system&gt; &lt;mount point&gt;   &lt;type&gt;  &lt;options&gt;       &lt;dump&gt;  &lt;pass&gt;</span><br><span class="line">#根目录挂载</span><br><span class="line">UUID=ae4eafa4-b60d-4b26-bec1-103adde1b7be / ext4 errors=remount-ro 0 1</span><br><span class="line">#swap挂载</span><br><span class="line">UUID=11968e8b-d84a-4404-923c-f56fc5406564 none swap sw 0 0</span><br><span class="line">#引导挂载</span><br><span class="line">UUID=3CC2-136F /boot/efi vfat defaults 0 1</span><br></pre></td></tr></table></figure><h3 id="六、修复系统引导"><a href="#六、修复系统引导" class="headerlink" title="六、修复系统引导"></a>六、修复系统引导</h3><p>　　第一步进入ubuntu liveCD模式，</p><p>　　第二步安装boot-repair</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">sudo add-apt-repository ppa:yannubuntu/boot-repair &amp;&amp; sudo apt-get update</span><br><span class="line">sudo apt-get install -y boot-repair &amp;&amp; boot-repair</span><br></pre></td></tr></table></figure><p>　　等待一会就会出先boot-repair的界面<br>点击Recommended repair，修复过程中它可能会要求你去执行一些命令，按照他的要求，打开终端，执行命令，执行完毕后，点击forward（下一步）</p><p>　　在boot-repair修复完成后，重新启动，就可以见到久违的启动菜单了</p><p>　　如果开机直接进入bios，没有正确的uefi引导选项，可以尝试再次进入liveCD模式，安装后，选择高级选项，手动选择efi分区，进行修复。</p><h3 id="七、添加、修改交换空间"><a href="#七、添加、修改交换空间" class="headerlink" title="七、添加、修改交换空间"></a>七、添加、修改交换空间</h3><p>　　成功进入迁移好的Ubuntu系统后，可以根据需要添加一个交换空间，或者调整其大小来适应当前硬件，如果不需要交换空间，那么可以跳过该步骤。</p><ol><li>查看是否已经存在swapfile <figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo swapon --show</span><br></pre></td></tr></table></figure></li><li>若无任何输出，这意味着系统当前没有可用的交换空间。</li></ol><ol start="3"><li><p>修改swapfile<br> 如果第一步存在swapfile，则需要先禁用</p> <figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo swapoff /swapfile</span><br></pre></td></tr></table></figure></li><li><p>修改swapfile空间的大小为8G</p> <figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo dd if=/dev/zero of=/swapfile bs=1M count=8192</span><br></pre></td></tr></table></figure></li><li><p>设置文件为swapfile类型</p> <figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo mkswap /swapfile</span><br></pre></td></tr></table></figure></li><li><p>修改权限<br> 我们需要锁定文件的权限，以便只有具有root权限的用户才能读取内容。 这可以防止普通用户访问该文件，这会产生重大的安全隐患。<br> 通过键入以下内容使该文件只能由root访问：</p> <figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo chmod 600 /swapfile</span><br></pre></td></tr></table></figure><p> 键入以下命令验证权限更改：</p> <figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">tungee@tungee-Macmini:~$ ls -lh /swapfile</span><br><span class="line">-rw------- 1 root root 8.0G Jan  5 14:29 /swapfile</span><br></pre></td></tr></table></figure></li><li><p>启用swapfile</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo swapon /swapfile</span><br></pre></td></tr></table></figure></li><li><p>使交换文件永久化</p><p> 我们最近的更改已启用当前会话的交换文件。 但是，如果我们重新启动，服务器将不会自动保留交换设置。 我们可以通过将交换文件添加到/etc/fstab文件来更改此设置。</p><p> 备份/etc/fstab文件，以防出现任何问题：</p> <figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo cp /etc/fstab /etc/fstab.backup</span><br></pre></td></tr></table></figure><p> 键入以下命令，将交换文件信息添加到/etc/fstab文件的末尾：</p> <figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">echo &#x27;/swapfile none swap sw 0 0&#x27; | sudo tee -a /etc/fstab</span><br></pre></td></tr></table></figure></li><li><p>接下来，我们将查看一些我们可以更新的设置以调整我们的交换空间。</p><ul><li><p>调整Swappiness属性<br>将数据从RAM交换到交换空间的频率。数值（0-100）越高，越可能发生磁盘交换。</p><p>  设置方法：</p>  <figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">cat /proc/sys/vm/swappiness #查看当前值</span><br><span class="line">sudo gedit /etc/sysctl.conf #打开文件编辑</span><br></pre></td></tr></table></figure><p>  在底部添加<code>vm.swappiness=10</code>（根据自身情况选择合理数值）</p></li><li><p>调整缓存压力设置<br>  <a href="http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=849389">vfs_cache_pressure</a>，该文件表示内核回收用于directory和inode cache内存的倾向；缺省值100表示内核将根据pagecache和swapcache，把directory和inode cache保持在一个合理的百分比；降低该值低于100，将导致内核倾向于保留directory和inode cache；增加该值超过100，将导致内核倾向于回收directory和inode cache。</p><p>  设置方法：</p>  <figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">cat /proc/sys/vm/vfs_cache_pressure #查看当前值</span><br><span class="line">sudo gedit /etc/sysctl.conf #打开文件编辑</span><br></pre></td></tr></table></figure><p>  在底部添加<code>vm.swappiness=10</code>（根据自身情况选择合理数值）</p></li></ul></li></ol><h3 id="八、双系统时间修复"><a href="#八、双系统时间修复" class="headerlink" title="八、双系统时间修复"></a>八、双系统时间修复</h3><p>先说下两个概念：</p><ul><li>UTC即Universal Time Coordinated，协调世界时（世界统一时间）</li><li>GMT 即Greenwich Mean Time，格林尼治平时</li></ul><p>Windows 与 Mac/Linux 看待系统硬件时间的方式是不一样的：</p><ul><li>Windows把计算机硬件时间当作本地时间(local time)，所以在Windows系统中显示的时间跟BIOS中显示的时间是一样的。</li><li>Linux/Unix/Mac把计算机硬件时间当作 UTC， 所以在Linux/Unix/Mac系统启动后在该时间的基础上，加上电脑设置的时区数（ 比如我们在中国，它就加上“8” ），因此，Linux/Unix/Mac系统中显示的时间总是比Windows系统中显示的时间快8个小时。所以，当你在Linux/Unix/Mac系统中，把系统现实的时间设置正确后，其实计算机硬件时间是在这个时间上减去8小时，所以当你切换成Windows系统后，会发现时间慢了8小时。就是这样个原因。OK！既然知道原因了，就好解决了。</li></ul><p>这里提供两种解决方法:</p><ol><li>在Ubuntu中把计算机硬件时间改成系统显示的时间，即禁用Ubuntu的UTC。这又有另一个需要注意的地方：在 Ubuntu 16.04 版本以前，关闭UTC的方法是编辑/etc/default/rcS，将UTC=yes改成UTC=no， 但在Ubuntu 16.04使用systemd启动之后，时间改成了由timedatectl来管理，所以更改方法是<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">timedatectl set-local-rtc 1 --adjust-system-clock</span><br><span class="line">#执行后重启Ubuntu，应该就没有问题了。</span><br></pre></td></tr></table></figure></li></ol><ol start="2"><li>修改 Windows对硬件时间的对待方式，让 Windows把硬件时间当作UTC.打开命令行程序，在命令行中输入下面命令并回车</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1</span><br></pre></td></tr></table></figure><h2 id="将系统迁移到虚拟机"><a href="#将系统迁移到虚拟机" class="headerlink" title="将系统迁移到虚拟机"></a>将系统迁移到虚拟机</h2><p>　　通过以上tar获得系统压缩包后，然后创建虚拟机，选择稍后安装操作系统（空sata硬盘），硬件选项中USB控制器选择正确的版本（2.0还是3.1），然后启动虚拟机，挂载linux系统镜像，选择“试用ubuntu”，打开终端，输入命令进入单用户模式：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo init 1</span><br></pre></td></tr></table></figure><p>　　查看硬盘编号（一般为/dev/sdx，x为a-z）</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">lsblk</span><br></pre></td></tr></table></figure><p>　　格式化vm空sata磁盘为ext4</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">mkfs.ext4 /dev/sda</span><br></pre></td></tr></table></figure><p>　　挂载该磁盘到一个位置</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">mkdir /mnt/sda</span><br><span class="line">mount /dev/sda /mnt/sda</span><br></pre></td></tr></table></figure><p>　　如果系统压缩包在另一个移动设备中，请按照同样的方法挂载在不同的地方，如/mnt/u-disk：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">mkidr /mnt/u-disk</span><br><span class="line">mount /dev/sdb /mnt/u-disk</span><br></pre></td></tr></table></figure><p>　　然后和前文解压方式一样，此处不再赘述：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">tar -xvpf /dev/sda/backup.tar -C /mnt/sda/ --numeric-owner</span><br></pre></td></tr></table></figure><p>　　gzip解压请加上<code>-z</code>选项。</p><p>　　之后的操作，请自行衔接上文的第五步骤及以后。</p><h2 id="参考来源"><a href="#参考来源" class="headerlink" title="参考来源"></a>参考来源</h2><blockquote><p><strong><a href="https://tickrain.com/archives/185">https://tickrain.com/archives/185</a></strong>  打包、分区、解压参考来源</p></blockquote><blockquote><p><strong><a href="https://www.cnblogs.com/zxhyJack/p/9165919.html">https://www.cnblogs.com/zxhyJack/p/9165919.html</a></strong>  引导修复参考来源</p></blockquote><blockquote><p><strong><a href="https://www.zhihu.com/question/46525639/answer/157272414">https://www.zhihu.com/question/46525639/answer/157272414</a></strong>  时间修复参考来源</p></blockquote><blockquote><p><strong><a href="https://www.vanjay.cn/2019/01/05/Ubuntu-18-04-%E6%B7%BB%E5%8A%A0%E3%80%81%E4%BF%AE%E6%94%B9%E4%BA%A4%E6%8D%A2%E7%A9%BA%E9%97%B4/">https://www.vanjay.cn/2019/01/05/Ubuntu-18-04-%E6%B7%BB%E5%8A%A0%E3%80%81%E4%BF%AE%E6%94%B9%E4%BA%A4%E6%8D%A2%E7%A9%BA%E9%97%B4/</a></strong>  添加修改交换空间参考来源</p></blockquote><blockquote><p><a href="https://zhuanlan.zhihu.com/p/83921782">https://zhuanlan.zhihu.com/p/83921782</a>  补充理解资料</p></blockquote><blockquote><p><a href="https://www.jianshu.com/p/47e3c90e9ac7">https://www.jianshu.com/p/47e3c90e9ac7</a>  补充理解资料</p></blockquote>]]></content>
    
    
    <summary type="html">&lt;h1 id=&quot;系统迁移&quot;&gt;&lt;a href=&quot;#系统迁移&quot; class=&quot;headerlink&quot; title=&quot;系统迁移&quot;&gt;&lt;/a&gt;系统迁移&lt;/h1&gt;&lt;h2 id=&quot;适用范围&quot;&gt;&lt;a href=&quot;#适用范围&quot; class=&quot;headerlink&quot; title=&quot;适用范围&quot;&gt;&lt;/a&gt;适用范围&lt;/h2&gt;&lt;p&gt;　　如果是Windows的迁移，用Diskgenius等软件可以很方便的迁移。这里是linux系统的迁移。&lt;/p&gt;
&lt;p&gt;　　打包Ubuntu/Linux系统，迁移到其他分区或电脑，也可以迁移到虚拟机，如迁移到VMware。&lt;/p&gt;</summary>
    
    
    
    <category term="软件" scheme="https://firmum.top/categories/%E8%BD%AF%E4%BB%B6/"/>
    
    <category term="系统" scheme="https://firmum.top/categories/%E8%BD%AF%E4%BB%B6/%E7%B3%BB%E7%BB%9F/"/>
    
    <category term="Linux" scheme="https://firmum.top/categories/%E8%BD%AF%E4%BB%B6/%E7%B3%BB%E7%BB%9F/Linux/"/>
    
    
    <category term="装系统/刷机" scheme="https://firmum.top/tags/%E8%A3%85%E7%B3%BB%E7%BB%9F-%E5%88%B7%E6%9C%BA/"/>
    
    <category term="虚拟机" scheme="https://firmum.top/tags/%E8%99%9A%E6%8B%9F%E6%9C%BA/"/>
    
    <category term="Ubuntu" scheme="https://firmum.top/tags/Ubuntu/"/>
    
  </entry>
  
  <entry>
    <title>大学毕业后的梦</title>
    <link href="https://firmum.top/2023/05/04/%E5%A4%A7%E5%AD%A6%E6%AF%95%E4%B8%9A%E5%90%8E%E7%9A%84%E6%A2%A6/"/>
    <id>https://firmum.top/2023/05/04/%E5%A4%A7%E5%AD%A6%E6%AF%95%E4%B8%9A%E5%90%8E%E7%9A%84%E6%A2%A6/</id>
    <published>2023-05-04T14:27:49.548Z</published>
    <updated>2023-12-16T14:06:10.482Z</updated>
    
    <content type="html"><![CDATA[<div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="Oh, this is an invalid password. Check and try again, please." data-whm="OOPS, these decrypted content may changed, but you can still have a look.">  <script id="hbeData" type="hbeData" data-hmacdigest="283418925856feebfb5846afb6916c8aeb548c58c30a6301d0c44ccaf57ae0cf">05b67397d9fb43c0170015b166d79be8e45f200ad6c5531d6a9d9e3c022efbc80c544bf4db14b5a6efd5cf307605d9eed58aca50addb51f549be80d2e4c64caa714ef5a9d167329da61f830ac1a29d02ef091ef2eeefb9f24c4996c8cebd76ca638eaecd99a9cd235f4e32394cc1b6084eb9237787ec2aae88769cc5f9fe663fe27cc3acff7380a95b9a71c729edcf8830840da02afa41cbd6e399d8af8f433fa76f906a0b709d933352089eac916f409db0d7151b9333367f44018d7aa41eee24dfb36217f96fa16b96566751cde04de49dde5fe62497847114a0e7b5e77ea0f2bdd8c16a14ca31435d5f5e3ca418e917a4e435aec72025f9baeb29f51aadfeb8ec95862b4f43e4e803297ea2e7556927ff980b9e4d82a5e8abcec921ec15f89dee13ad6080b554a006b5c512126834130b0a99e4ce676894b788eeb325c8d81f09c1de4af6dec5d6b48f037e4821c84eee84ab368ac2f2b5a2d362d86102a73fc930586c4dba554fbac48e36d3c6d2316015ff7b2c33046621353227d8032e41390db168588a6f534227e19851a5d8805b3f838164f27d2b793212b6c978b51735c673d6fa65af81167f4b01cc59d1f3091ba61c6d64bd620d2213a95f3d7b5883178d2163ab0448829eed1eddc352629e55741674b06cf285db3fbfde3a4d4ae18050c1c428acae4783efd3b10e97feff8692bdebd158ec5dcb3dbf14e0f35430a3aca69428298d409e3cf252fa1550b8262bddbb84b18c4630b21ee8e6637ea3b70e83fa1956bb7e6684f5691fcfbdba6a1ff9a2d796d4b6c37c759b516c29719c365087676a8f3bbaa074af719afca06fb359a9429f38585932e5230deb7ffcea78e5cebf9e47f0bbe15f774fe8e48bbd2304e1fb93a7f34306a53dcf02226849eaf3d786b52d5d2d916cd2245b04675d7c1f9446f0ac20b513192f60f72214f7bc3980d5cf0265e85bd77f664a06e101319096613e89856f9c41eb466840571651e0a2f457e060dc6e3b4a5a9172495d06196bff4cbbcfc7ea2a48a98778e51975a1569a01d82b6c48d7e39d562d16265edefba14d2cbbd0ce417f9e5c370f0ebedd70f6eac4153ec3481d12acd993e834ed83bd9dce807eb2106117326b5d82360e58d1357b19d19953669f237a2f82688f9da8e2f480c8023161002c03d2efea4b3de2bc7a401decb98cfd5df29b2b5999470cca45c0d8e29d6c989680618478a0a83f431f98116e813444657831e1d5e06d33728120fad11790b4ae15d246d44d72f1493b3d648e1ab573aea58ea25adf2d3572a40a906aff4b736aed79de1639e21caf9fbcf7adb31a4323d7190b2c0a625db4ea579fd378a208f053b9b83ea01480f662053568c392d87dc6deb1e27c2e760445df4269384fd31014f5d5cffef3ab028d83b18febb419d7d55166db4ed00d2a1b7b7ed098eaa93cb52070927fcf889f54c9ccc2d259793268b06fb2cc23bc95221132764664a0b104a35461c8b7c94bce64b5648e29826e3a71a5a70465555ab25f529c682b1168b611c09bee20d29e7efba8ef3197c59939f647305b09d387a543570d6dfaa81af1119c82026c6cf9863e1150e45e84dd608e09ab3b23e6b6dd351a6739d80a9fe1727bbb1e457f9ba8e5929d2fd15713f0d544dc53558d584f2f8c51c9c2898ddc971400a703695512e4c77b2125c1e68db29227e6573544bf4a428e40f15a9fe25c4ac927eba0e6798ac919cce8cbd9801a7ae8ee2b88cd3cd2195faf1a2f408d70be80c5e9ae4c7f03ffe920068db0d058346ba3d5ebd53aa7d9b59dccf8042d17b18eb1d93b741e596cb0fbc987c830d830d866ada901d772d95ca77be87153175700102b6fbcdd8680ddfdcf871bc24796ae49e4717161b73ae3784a30e8aa5bb9af4afc9196846de40dff873b5bf2a91ff286482430423f8d8b32a21784ca38ed6546dab60f331ff2e226c3ee195ed17ab928620967fb5878ff1c30d68f2afecb75c3f296bb713c5cc8185f18e423c144113ea38fe3b87dc1bcc021a7e673101f3c7b0fee45051379fb6d4a021558c612fdf2ce2197a197b41e1d84461ff7445d6e364e69b9068a3a747a30c602c53aa2a3ebb7f294b5610427cc538fa50d46e5c718a0e070f5e76db59dd7ebf4fc8406d800d1cd23a0fdf8ce278a3023a1694c105656b0114e645572d1f908cb2dc1d6217ebd5b1587f7038106dda86e067e90b25cb32b7ab1eac5f0d9b4d4916d525cfcc58bebc30130b621116946f1e9441eec6fa3a1e2c36f584e8ea24c866234db56aa3886970984b16c5d33124f0d559dc046c48c4a4bb4613fb356c7608f2607513d244ec0f69a73d717d2d4a71aec3b2c02f9fdbeef3b609a182aa946c536b67142361737da71b592f0a2959839477cba0952193a2e1f2847e67e25e95f348ae8da54cd75d219d1e0b8724d8be9ce8a7d1d50e6983e1fbf584a49a1b902f82d118eb67640b6beeda2e62b25947f3e2e170ee328366684601a351306ea645bce8b981df5d7118936e7e334a2282c8cea9fc68dfb30bf5b571bcac720711a33b49f951421525fd911e17446dd10fc5ae11f12c6447564a698e4f2d4fa2fc973118eba5bf25c1a6d0262eb3ddf8a1370d3a99153f005a8738488cd8a6a75309262edd43bac2b494c54b5842243fdaff8dbb5c0590860347891db648c9b86513b2c8a34fe79798f73c4ef428c42105065ecb26416be872117b69ff757899a4c06ca3a40ca60bdf8dfbf4cf8159f7f80d94e321c3100196356cd19ceeda8c3f09edc2a817931a2808b0bea25ca2480f0192cdee38061c063758441a96909464fcec7421c1b3442b4ab2240a0f2f38ae69e4f9ce62a888c28949c07f5f0e6d51082965e0fbfdcb048aa70eaa5097dc403e06905ae171d4bc1e7e52d539a1d04f0c88ebf345bef5e4964cae26136940523c826f4638ec0de029d6fd2a86ced34060970d845fc54ef5a3a4de913ab9a3bdeb9b2136c4617ba5c64f395f56d1004e95ca39b5ccf798d106017be3fd4bdede68723ecb7d52433d4ef0722e27b3d556b199fdf4343ca38adddc5f5fdb028f895fa8e2605ab14facf97cd4fac2a276ee58794fe25a716700761f812d93ab9dd00ac22d56e7e5597b7e57c0872a0d231bb58d3a216146a0ee70578d95e67da3b024f5a742774323b4ec0f3eac2dbfb8040edc1eef8b0e8514e94c51a70906f71db0ff64f942d241e4e1dbe723b70c01c50cca92701c05aec71de4ef189b0dc628394fdd371c79da6608e222e0f6ebcad5645acda0e5dfcc0dd93b4438dab25d3e764aec440148675099fdd267f5097f84a82b7c628a90908862fdedd0ac47054855aaf294246a95ce05d210e493b53079b5f93f7c2a00e6aba59783cdf3aa2786f8cce5b6e91d6811476c4666e8a514b66011415a6cd03c0758797e87557ab90ced0388534a0b961b56730a6cae21e21df8739ca566aba5878fa13656ac3fef87d1068362ea99b7a61ef5fd3fd1dcb57bd52ab5a1910a4547402ae5d5050996be3d0b4b06a39630dfceb20b865e9fc51782ad2dc61be029a710934c88a88b1ea37a3412d7a7c8e047d00f5473813d52100bae3a7665593a423fde43809151badaf39bdb5b8e2f71ec1c28ae9bfd2f277ddf841fd58e97372a7d790e9618c672f9b8f0b22f53ade51f887dbacf192dbbc40fe755927969204d48b441447d7e04db3f4ede2896bb2bdc57d49659e22123e7e63171689941bb194b928ea8b0363d17e5076a4a10a169e3582f479c642cba14473424f9521c44e1b9d366fba51ab7e398ace188e99da0f67def5866430d4ddec13fd241402e2b8983a2f9ce4f136cb0d791d046374399c65a3daa2f7865301e87fc56ec7376e6036d3c150de0efd1ed2b310baadf5943f74d2191880ed3c5df86990877091d2966958ca1ba21e8b310d06f3297ebd3f74cb388e14c0fd395ab0ee4bcf08306c9e85bded188b3323452bbadfedae469f160594ddaac3e09fa62f28f66d086220501b131a0e68ecf50eb2e9780540b7629e7516852020f6e3bd2dd50426301a94222cbea2eb3fcc9b94d7246d4ce9a449e23369475b5ca6a79bda8871eb60ee855357f18bdcdc2db11e56289521cf5bf528592f4ee719fc7ca48813d3266fe69fb3e430999847991d3285c0ac8d5a5c39d4cd52705e704565bbc35fd80a77e9f66577f21a6cad842e998f236e258b9221c9fbb2abd669e9b342c544b323b1839f0cfe72fca1d99fb7afb8e258bea8676db38950fca27657b70b078b1801bd31acf99c135705864a2bba5c3bc33e1093f1328e44a9ce760ef97a4266c341056ff72656bcacf58272742378922f972809ac7bfb3e8f16f2b5e8536b83d86c770842c1fc368bfa45ba01ee5bcea86dda413828ed9dbd2c1d481c5df8ffda9ae205977e1030238a76b774c0</script>  <div class="hbe hbe-content">    <div class="hbe hbe-input hbe-input-default">      <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass">      <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass">        <span class="hbe hbe-input-label-content hbe-input-label-content-default">Hey, password is required here.</span>      </label>    </div>  </div></div><script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css">]]></content>
    
    
    <summary type="html">Here&#39;s something encrypted, password is required to continue reading.</summary>
    
    
    
    <category term="随笔" scheme="https://firmum.top/categories/%E9%9A%8F%E7%AC%94/"/>
    
    <category term="日记" scheme="https://firmum.top/categories/%E9%9A%8F%E7%AC%94/%E6%97%A5%E8%AE%B0/"/>
    
    <category term="梦" scheme="https://firmum.top/categories/%E9%9A%8F%E7%AC%94/%E6%97%A5%E8%AE%B0/%E6%A2%A6/"/>
    
    
    <category term="暗恋" scheme="https://firmum.top/tags/%E6%9A%97%E6%81%8B/"/>
    
  </entry>
  
  <entry>
    <title>自建本地服务器汇总篇（Ubuntu Server）</title>
    <link href="https://firmum.top/2023/05/04/%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%AE%89%E8%A3%85ubuntu-server-20-04/"/>
    <id>https://firmum.top/2023/05/04/%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%AE%89%E8%A3%85ubuntu-server-20-04/</id>
    <published>2023-05-04T14:27:49.547Z</published>
    <updated>2023-12-16T14:02:50.948Z</updated>
    
    <content type="html"><![CDATA[<ul><li>用途：博客发布、文件存放等</li></ul><p>本文按时间顺序展开，从安装server开始，到能够用SSH登陆结束。</p><p><em><strong>本文并不是手把手教程，仅是记录了一个大致流程，谨慎观看。</strong></em></p><span id="more"></span><p>本文是一个合集，链接为内容，简介为框架。建议食用方法：先大体看完全文，然后再按顺序展开操作。</p><h1 id="Ubuntu-Server的安装"><a href="#Ubuntu-Server的安装" class="headerlink" title="Ubuntu Server的安装"></a>Ubuntu Server的安装</h1><p>　　建议关闭网络连接，<del>对没错，就是拔网线</del>，或者准确的说是，关闭公网的连接。当然你也可以先设置个强度大、不容易破解的密码，至于为什么，请看<a href="#%E5%AE%89%E5%85%A8%E6%8F%90%E9%86%92">文末</a>。</p><p>安装参考网站：</p><ul><li><p>[UbuntuServer-18.04 U 盘安装教程]: <a href="https://www.jianshu.com/p/da49cd69e8ff">https://www.jianshu.com/p/da49cd69e8ff</a>    “(作者：RJ_Hwang)”</p></li><li><p>[如何安装Ubuntu 20.04 LTS服务器的图文教程]: <a href="https://www.a5idc.net/helpview_906.html">https://www.a5idc.net/helpview_906.html</a>    “(作者：A5互联)进入</p></li></ul><p>　　系统后的固定IP设置”</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">ip addr　　#Show addresses assigned to all network interfaces. 展示本机IP等信息</span><br><span class="line">ip neigh#Shows the current neighbour table in kernel. 展示网络邻居IP</span><br><span class="line">ip route#Show  table routes. 展示路由信息</span><br></pre></td></tr></table></figure><p>　　通过<code>ip addr</code>查看本机IP地址，<code>ip route</code>查看路由地址</p><p>　　修改配置文件</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo vi /etc/netplan/xxxx.yaml </span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">network:</span><br><span class="line">    version: 2</span><br><span class="line">    ethernets:</span><br><span class="line">        # 网卡型号，可通过`ip addr`查看</span><br><span class="line">        enp37s0:</span><br><span class="line">            # 关闭dhcp</span><br><span class="line">            dhcp4: false</span><br><span class="line">            dhcp6: false</span><br><span class="line">            # 可同时设多个，对于 IP4 每个值为 &quot;IP地址/掩码长度&quot;</span><br><span class="line">            addresses: [192.168.123.4/24, &#x27;fe80:0:0:0:0:0:c0a8:64d3&#x27;]</span><br><span class="line">            # 网关</span><br><span class="line">            gateway4: 192.168.123.1</span><br><span class="line">            # 设置 DNS</span><br><span class="line">            nameservers:</span><br><span class="line">                addresses: [192.168.123.1]</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo netplan apply # 完成修改后执行命令使配置生效</span><br></pre></td></tr></table></figure><h1 id="Git-bash安装"><a href="#Git-bash安装" class="headerlink" title="Git bash安装"></a>Git bash安装</h1><p>　　Windows直接安装exe文件就行了，<del>一路点到底就可以</del>。放个<a href="https://git-scm.com/downloads">官网链接</a></p><p>　　安装完成，右键点空白区域，有“Git Bash Here”选项，点开就有终端了。</p><p>另外不用gitbash也可以，只要是能够远程登录的终端就行，Xshell之类的，<strong>Windows CMD也可以</strong>。</p><p>　　详细教程就不放了。下文也有<a href="#%E5%A4%A7%E4%BD%93%E6%B5%81%E7%A8%8B%EF%BC%88%E4%B8%AD%E6%96%87%E5%8F%82%E8%80%83%EF%BC%89">参考文章</a>可以看看。</p><hr><h1 id="SSH配置"><a href="#SSH配置" class="headerlink" title="SSH配置"></a>SSH配置</h1><p>　　下文是整个步骤流程概括，可作参考，<a href="#SSH%E5%AE%89%E8%A3%85%E5%8F%8A%E9%85%8D%E7%BD%AE%EF%BC%88%E8%8B%B1%E6%96%87%EF%BC%89">第一篇内容</a>大体为ssh的安装和配置文件的编辑（/etc/ssh/sshd_config），全在服务器端完成；<a href="#%E5%85%AC%E7%A7%81%E9%92%A5%E7%9A%84%E4%BD%BF%E7%94%A8%EF%BC%88%E8%8B%B1%E6%96%87%EF%BC%89">第二篇内容</a>介绍了SSH中密钥的部分，服务端和客户端都有参与。两篇需要结合看。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line">graph LR</span><br><span class="line">    a((客户端))--生成--&gt;b[SSH私钥]</span><br><span class="line">    b[SSH私钥]--提取--&gt;c[公钥]</span><br><span class="line">    c[公钥]--拷贝--&gt;d[服务器]</span><br><span class="line">    d[服务器]--&gt;e[开启私钥登录]</span><br><span class="line"></span><br><span class="line">    f&#123;私钥登录&#125;--no--&gt;c[公钥]</span><br><span class="line">    subgraph 验证私钥登录有效</span><br><span class="line">        e[开启私钥登录]--&gt;f&#123;私钥登录&#125;</span><br><span class="line">    end</span><br><span class="line">    subgraph 验证密码登录无效</span><br><span class="line">        f&#123;私钥登录&#125;--yes--&gt;g[关闭密码登录]</span><br><span class="line">        g[关闭密码登录]--&gt;h&#123;密码登陆&#125;</span><br><span class="line">        h&#123;密码登陆&#125;--yes--&gt;g[关闭密码登录]</span><br><span class="line">    end</span><br><span class="line">h&#123;密码登陆&#125;--no--&gt;i([SSH基础配置结束])</span><br></pre></td></tr></table></figure><p>简要流程：客户端生成SSH私钥，提取公钥，密码登陆服务器，拷贝公钥给服务器，编辑sshd_config开启私钥登录，退出，私钥登陆，验证私钥登录有效，关闭密码登录，退出，密码登陆，验证密码登录无效。然后适当关闭一些选项以提高安全性。</p><p>大体印象：SSH的配置基本上都是编辑sshd_conf，该文件在/etc/ssh/目录下<br>。建议阅读官方文档（见下方链接）。</p><h2 id="SSH安装及配置（英文）"><a href="#SSH安装及配置（英文）" class="headerlink" title="SSH安装及配置（英文）"></a>SSH安装及配置（英文）</h2><p>　　按这个介绍来安装、配置，服务器应该很安全0.0</p><ul><li>[SSH/…/Configuring]:<a href="https://help.ubuntu.com/community/SSH/OpenSSH/Configuring">https://help.ubuntu.com/community/SSH/OpenSSH/Configuring</a> “(ubuntu 官方文档)”</li></ul><h2 id="公私钥的使用（英文）"><a href="#公私钥的使用（英文）" class="headerlink" title="公私钥的使用（英文）"></a>公私钥的使用（英文）</h2><p>　　客户端生成SSH私钥，提取公钥，将公钥传给服务端。</p><ul><li>[SSH/OpenSSH/keys]: <a href="https://help.ubuntu.com/community/SSH/OpenSSH/Keys">https://help.ubuntu.com/community/SSH/OpenSSH/Keys</a>    “(ubuntu官方文档)”</li></ul><h2 id="大体流程（中文参考）"><a href="#大体流程（中文参考）" class="headerlink" title="大体流程（中文参考）"></a>大体流程（中文参考）</h2><p>　　这篇文章可作参考：</p><ul><li><p>[SSH配置公钥登录]: <a href="https://zhuanlan.zhihu.com/p/89872671">https://zhuanlan.zhihu.com/p/89872671</a>    “(作者：镜子)”</p><p>  ​    再做补充：</p><p>  ​    可以指定公私钥的加密强度，默认2048bit，这里设置成4096bit，可以更难被暴力破解。</p></li></ul><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ssh-keygen -t rsa -b 4096</span><br></pre></td></tr></table></figure><p>　　个人认为，“本地制作公私钥，然后拷贝到服务器”是一种更为安全的方法，可以降低私钥泄露的风险：先开启SSH密码登录选项（删掉#），然后拷贝公钥到服务器，SSH密钥登录成功后，再关闭密码登录。</p><p>　　以下是拷贝命令：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ssh-copy-id &lt;username&gt;@&lt;host&gt;</span><br></pre></td></tr></table></figure><h2 id="密钥详解"><a href="#密钥详解" class="headerlink" title="密钥详解"></a>密钥详解</h2><p>　　未来接触软件多了，也许会遇到密钥需要转换格式才能匹配并使用的情况，这时候转换格式就行，不需要再次生成。</p><p>下文可作参考，密钥处理（私钥生成、公钥提取、格式转换）及其相关知识：</p><ul><li>[RSA密钥格式解析]: <a href="https://www.jianshu.com/p/c93a993f8997">https://www.jianshu.com/p/c93a993f8997</a>    “(作者：消逝在大夜里)”</li></ul><h2 id="我的配置文件"><a href="#我的配置文件" class="headerlink" title="我的配置文件"></a>我的配置文件</h2><p>　　这是仅开启密钥登录的配置，具体就不介绍了，上文的官方文档里需要改动的基础部分基本都有。</p><p>　　另外由于我在内网中，所以监听端口仍然是22，不过路由器监听的外网端口更改过了。如果你们的服务器在外网中的话，最好改一改默认端口，推荐10000以上，因为10000以内的端口有可能会被本地软件使用，从而造成冲突。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br></pre></td><td class="code"><pre><span class="line">#$OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $</span><br><span class="line"></span><br><span class="line"># This is the sshd server system-wide configuration file.  See</span><br><span class="line"># sshd_config(5) for more information.</span><br><span class="line"></span><br><span class="line"># This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin</span><br><span class="line"></span><br><span class="line"># The strategy used for options in the default sshd_config shipped with</span><br><span class="line"># OpenSSH is to specify options with their default value where</span><br><span class="line"># possible, but leave them commented.  Uncommented options override the</span><br><span class="line"># default value.</span><br><span class="line"></span><br><span class="line">Include /etc/ssh/sshd_config.d/*.conf</span><br><span class="line"></span><br><span class="line">#Port 22</span><br><span class="line">#AddressFamily any</span><br><span class="line">#ListenAddress 0.0.0.0</span><br><span class="line">#ListenAddress ::</span><br><span class="line">ListenAddress 0.0.0.0:22 #监听端口22</span><br><span class="line"></span><br><span class="line">HostKey /etc/ssh/ssh_host_rsa_key</span><br><span class="line">#HostKey /etc/ssh/ssh_host_ecdsa_key</span><br><span class="line">#HostKey /etc/ssh/ssh_host_ed25519_key</span><br><span class="line"></span><br><span class="line"># Ciphers and keying</span><br><span class="line">#RekeyLimit default none</span><br><span class="line"></span><br><span class="line"># Logging</span><br><span class="line">SyslogFacility AUTH</span><br><span class="line">LogLevel VERBOSE</span><br><span class="line"></span><br><span class="line"># Authentication:</span><br><span class="line"></span><br><span class="line">LoginGraceTime 2m</span><br><span class="line">PermitRootLogin prohibit-password</span><br><span class="line">#PermitRootLogin yes</span><br><span class="line">StrictModes yes</span><br><span class="line">MaxAuthTries 3</span><br><span class="line">MaxSessions 5 </span><br><span class="line"></span><br><span class="line">PubkeyAuthentication yes</span><br><span class="line"></span><br><span class="line"># Expect .ssh/authorized_keys2 to be disregarded by default in future.</span><br><span class="line">AuthorizedKeysFile  .ssh/authorized_keys </span><br><span class="line"></span><br><span class="line">#AuthorizedPrincipalsFile none</span><br><span class="line"></span><br><span class="line">#AuthorizedKeysCommand none</span><br><span class="line">#AuthorizedKeysCommandUser nobody</span><br><span class="line"></span><br><span class="line"># For this to work you will also need host keys in /etc/ssh/ssh_known_hosts</span><br><span class="line">HostbasedAuthentication no</span><br><span class="line"># Change to yes if you don&#x27;t trust ~/.ssh/known_hosts for</span><br><span class="line"># HostbasedAuthentication</span><br><span class="line">IgnoreUserKnownHosts no</span><br><span class="line"># Don&#x27;t read the user&#x27;s ~/.rhosts and ~/.shosts files</span><br><span class="line">IgnoreRhosts yes</span><br><span class="line"></span><br><span class="line"># To disable tunneled clear text passwords, change to no here!</span><br><span class="line">PasswordAuthentication no</span><br><span class="line">PermitEmptyPasswords no </span><br><span class="line"></span><br><span class="line"># Change to yes to enable challenge-response passwords (beware issues with</span><br><span class="line"># some PAM modules and threads)</span><br><span class="line">ChallengeResponseAuthentication no</span><br><span class="line"></span><br><span class="line"># Kerberos options</span><br><span class="line">#KerberosAuthentication no</span><br><span class="line">#KerberosOrLocalPasswd yes</span><br><span class="line">#KerberosTicketCleanup yes</span><br><span class="line">#KerberosGetAFSToken no</span><br><span class="line"></span><br><span class="line"># GSSAPI options</span><br><span class="line">#GSSAPIAuthentication no</span><br><span class="line">#GSSAPICleanupCredentials yes</span><br><span class="line">#GSSAPIStrictAcceptorCheck yes</span><br><span class="line">#GSSAPIKeyExchange no</span><br><span class="line"></span><br><span class="line"># Set this to &#x27;yes&#x27; to enable PAM authentication, account processing,</span><br><span class="line"># and session processing. If this is enabled, PAM authentication will</span><br><span class="line"># be allowed through the ChallengeResponseAuthentication and</span><br><span class="line"># PasswordAuthentication.  Depending on your PAM configuration,</span><br><span class="line"># PAM authentication via ChallengeResponseAuthentication may bypass</span><br><span class="line"># the setting of &quot;PermitRootLogin without-password&quot;.</span><br><span class="line"># If you just want the PAM account and session checks to run without</span><br><span class="line"># PAM authentication, then enable this but set PasswordAuthentication</span><br><span class="line"># and ChallengeResponseAuthentication to &#x27;no&#x27;.</span><br><span class="line">UsePAM yes</span><br><span class="line"></span><br><span class="line">#AllowAgentForwarding yes</span><br><span class="line">AllowTcpForwarding no </span><br><span class="line">#GatewayPorts no</span><br><span class="line">X11Forwarding no</span><br><span class="line">#X11DisplayOffset 10</span><br><span class="line">#X11UseLocalhost yes</span><br><span class="line">#PermitTTY yes</span><br><span class="line">PrintMotd no</span><br><span class="line">PrintLastLog yes</span><br><span class="line">TCPKeepAlive yes</span><br><span class="line">#PermitUserEnvironment no</span><br><span class="line">Compression yes</span><br><span class="line">ClientAliveInterval 120 #120秒发送一次包确认客户端是否活跃</span><br><span class="line">ClientAliveCountMax 20 #超过20次那么关闭会话，也就是说40分钟不活跃，才会断开连接 ，这样能顾保持较长的连接时间而不至于断开</span><br><span class="line">UseDNS no</span><br><span class="line">PidFile /var/run/sshd.pid</span><br><span class="line">MaxStartups 10:30:100</span><br><span class="line">#PermitTunnel no</span><br><span class="line">#ChrootDirectory none</span><br><span class="line">#VersionAddendum none</span><br><span class="line"></span><br><span class="line"># no default banner path</span><br><span class="line">#Banner none</span><br><span class="line"></span><br><span class="line"># Allow client to pass locale environment variables</span><br><span class="line">AcceptEnv LANG LC_*</span><br><span class="line"></span><br><span class="line"># override default of no subsystems</span><br><span class="line">Subsystem sftp/usr/lib/openssh/sftp-server</span><br><span class="line"></span><br><span class="line"># Example of overriding settings on a per-user basis</span><br><span class="line">#Match User anoncvs</span><br><span class="line">#X11Forwarding no</span><br><span class="line">#AllowTcpForwarding no</span><br><span class="line">#PermitTTY no</span><br><span class="line">#ForceCommand cvs server</span><br><span class="line"># PasswordAuthentication no</span><br><span class="line"></span><br></pre></td></tr></table></figure><h1 id="安全提醒"><a href="#安全提醒" class="headerlink" title="安全提醒"></a>安全提醒</h1><p>　　到此，服务器基本非常安全了：平时注意私钥不要泄露除去，那么基本没问题。</p><p>　　放一个近期的log来看看有没有异地登录，一看还真有尝试登录的，不过非常少，一周内只有两个，一个韩国的，在白天尝试登录，另一个是荷兰的，大半夜的来尝试登录。这是换了端口的情况，不换端口，应该会特别多。</p><center><img src="https://i.loli.net/2021/08/21/YiucOqRCZDrkMtI.png" alt="服务器ssh被攻击记录"></center><p>　　记得之前刚建服务器的时候，前后流程走得太慢了，学一步走一步，导致从拷贝公钥到关闭密码登录之间的时间太长，然后端口也没更改，<del>中间还去吃了顿饭</del>，前前后后有四五个小时吧。后来整好后，看了下log，发现满屏都是尝试登录的，IP地址来源大部分是荷兰（<a href="https://serverfault.com/questions/559200/what-does-normal-shutdown-thank-you-for-playing-preauth-in-ssh-logs-mean/563303">Normal Shutdown, Thank you for playing [preauth]</a>），自己登录的次数反而寥寥，有部分来自德国的，用户名竟然是拼音，这就过分了哈。</p><p>　　<strong>以下仅为我的猜测，没有经实际验证过：</strong>从你的服务器暴露在公网开始，攻击就已经开始了，所以自建服务器，最好先在局域网设置好，比如把端口映射先关闭，或者直接暂时断开公网，然后将局域网内的电脑互相设置好，再开启端口映射，这样在设置期间是绝对安全的。</p><p>　　如果时间允许，可以再整个fail2ban之类的软件，禁掉多次登录失败的IP，这里就不多展开了。</p>]]></content>
    
    
    <summary type="html">&lt;ul&gt;
&lt;li&gt;用途：博客发布、文件存放等&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本文按时间顺序展开，从安装server开始，到能够用SSH登陆结束。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;本文并不是手把手教程，仅是记录了一个大致流程，谨慎观看。&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;</summary>
    
    
    
    <category term="软件" scheme="https://firmum.top/categories/%E8%BD%AF%E4%BB%B6/"/>
    
    <category term="系统" scheme="https://firmum.top/categories/%E8%BD%AF%E4%BB%B6/%E7%B3%BB%E7%BB%9F/"/>
    
    <category term="Linux" scheme="https://firmum.top/categories/%E8%BD%AF%E4%BB%B6/%E7%B3%BB%E7%BB%9F/Linux/"/>
    
    <category term="服务器" scheme="https://firmum.top/categories/%E8%BD%AF%E4%BB%B6/%E7%B3%BB%E7%BB%9F/Linux/%E6%9C%8D%E5%8A%A1%E5%99%A8/"/>
    
    
    <category term="服务器" scheme="https://firmum.top/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/"/>
    
    <category term="SSH" scheme="https://firmum.top/tags/SSH/"/>
    
    <category term="密钥" scheme="https://firmum.top/tags/%E5%AF%86%E9%92%A5/"/>
    
  </entry>
  
  <entry>
    <title>Linux命令</title>
    <link href="https://firmum.top/2023/05/04/Linux%E5%91%BD%E4%BB%A4/"/>
    <id>https://firmum.top/2023/05/04/Linux%E5%91%BD%E4%BB%A4/</id>
    <published>2023-05-04T14:27:49.546Z</published>
    <updated>2023-12-16T14:04:08.265Z</updated>
    
    <content type="html"><![CDATA[<h1 id="Linux命令"><a href="#Linux命令" class="headerlink" title="Linux命令"></a>Linux命令</h1><p>　　本文长期更新，仅更新我接触到的、想记录的命令。嘿嘿没错，就是篇个人笔记。</p><span id="more"></span><h1 id="grep-命令"><a href="#grep-命令" class="headerlink" title="grep 命令"></a>grep 命令</h1><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">grep <span class="string">&quot;被查找的字符串&quot;</span> 文件名</span><br></pre></td></tr></table></figure><p>　　查找SSH连接IP记录：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">grep Connection\ from /var/log/auth.log</span><br></pre></td></tr></table></figure><p>　　递归查找：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">grep -r <span class="string">&quot;被查找的字符串&quot;</span> 文件目录名</span><br></pre></td></tr></table></figure><p>　　例如，查找指定目录/etc/acpi 及其子目录（如果存在子目录的话）下所有文件中包含字符串”update”的文件，并打印出该字符串所在行的内容，<code>grep -r update /etc/acpi </code></p><p>　　来源菜鸟教程：<a href="https://www.runoob.com/linux/linux-comm-grep.html">https://www.runoob.com/linux/linux-comm-grep.html</a></p><h1 id="scp命令"><a href="#scp命令" class="headerlink" title="scp命令"></a>scp命令</h1><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">scp [可选参数] file_source file_target </span><br><span class="line"></span><br><span class="line">scp local_file remote_username@remote_ip:remote_folder </span><br><span class="line">或者 </span><br><span class="line">scp local_file remote_username@remote_ip:remote_file </span><br><span class="line">或者 </span><br><span class="line">scp local_file remote_ip:remote_folder </span><br><span class="line">或者 </span><br><span class="line">scp local_file remote_ip:remote_file </span><br></pre></td></tr></table></figure><ul><li>-r： 递归复制整个目录。</li><li>-P port：注意是大写的P, port是指定数据传输用到的端口号</li><li>-p：保留原文件的修改时间，访问时间和访问权限。</li></ul><p>　　使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限，否则scp命令是无法起作用的。</p><p>　　从远程目录拉取文件到本地：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3 </span><br><span class="line">scp -r www.runoob.com:/home/root/others/ /home/space/music/</span><br></pre></td></tr></table></figure><p>　　指定远程端口号：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#scp 命令使用端口号 4588</span></span><br><span class="line">scp -P 4588 remote@www.runoob.com:/usr/local/sin.sh /home/administrator</span><br></pre></td></tr></table></figure><h1 id="特权与普通用户的切换方法"><a href="#特权与普通用户的切换方法" class="headerlink" title="特权与普通用户的切换方法"></a>特权与普通用户的切换方法</h1><p>　　也就是用户之间切换的方法。摘自：<a href="https://cloud.tencent.com/developer/article/1434461">Ubuntu中root用户登录、普通用户切换到root身份及root用户切换至普通用户方法</a></p><p>　　问题背景：使用腾讯云进入ubuntu系统，默认用户使用命令<code>cd ~</code>时，无法进入ubuntu用户的<code>/home/ubuntu/</code>目录。</p><p>　　进入特权（root）模式：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo -i</span><br></pre></td></tr></table></figure><p>　　然后切换到该用户（登录式切换：会通过读取目标用户的配置文件来重新初始化）</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">su - username</span><br></pre></td></tr></table></figure><p>　　切换完成，所在目录为该用户的home目录，即<code>/home/username</code></p><h1 id="Ubuntu添加和删除用户"><a href="#Ubuntu添加和删除用户" class="headerlink" title="Ubuntu添加和删除用户"></a>Ubuntu添加和删除用户</h1><p>　　摘自：<a href="https://www.myfreax.com/how-to-add-and-delete-users-on-ubuntu-20-04/">如何在Ubuntu 20.04上添加和删除用户</a></p><p>　　适用于20.04版本，其他版本未知。</p><ol><li>添加用户：</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo adduser username</span><br></pre></td></tr></table></figure><p>　　系统会询问您一系列问题。 输入并确认新的用户密码，其他问题是选填的。</p><ol start="2"><li>仅删除用户（保留主目录和邮件）：</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo deluser username</span><br></pre></td></tr></table></figure><ol start="3"><li>删除用户及其主目录和邮件：</li></ol><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo deluser --remove-home username</span><br></pre></td></tr></table></figure><h1 id="修改主机名称（Ubuntu）"><a href="#修改主机名称（Ubuntu）" class="headerlink" title="修改主机名称（Ubuntu）"></a>修改主机名称（Ubuntu）</h1><p>　　<a href="https://cloud.tencent.com/developer/article/1649332">如何在 Ubuntu 20.04 上修改主机名(中文)</a></p><p>　　<a href="https://linuxize.com/post/how-to-change-hostname-on-ubuntu-20-04/">原版英文文章</a></p><p>　　显示当前主机名</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">hostnamectl</span><br></pre></td></tr></table></figure><p>　　修改系统主机名</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">sudo hostnamectl set-hostname host.example.com</span><br><span class="line">sudo hostnamectl set-hostname &quot;Your Pretty HostName&quot; --pretty</span><br><span class="line">sudo hostnamectl set-hostname host.example.com --static</span><br><span class="line">sudo hostnamectl set-hostname host.example.com --transient</span><br></pre></td></tr></table></figure><p>　　你不应该在同样的网络不同的机器上使用相同的主机名。</p><p>静态主机名被存储在<code>/etc/hostname</code>,并且 pretty 主机名被存储在<code>/etc/machine-info</code>文件。</p><p>　　在大多数系统中，主机名在<code>/etc/hosts</code>中被映射到<code>127.0.0.1</code>。打开文件，并且修改旧的主机名到新的主机名。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">127.0.0.1   localhost</span><br><span class="line">127.0.0.1   neptune.linuxize.com</span><br><span class="line"></span><br><span class="line"># The following lines are desirable for IPv6 capable hosts</span><br><span class="line">::1     localhost ip6-localhost ip6-loopback</span><br><span class="line">ff02::1 ip6-allnodes</span><br><span class="line">ff02::2 ip6-allrouters</span><br></pre></td></tr></table></figure><h1 id="自动脚本执行"><a href="#自动脚本执行" class="headerlink" title="自动脚本执行"></a>自动脚本执行</h1><p>　　执行脚本方法：<a href="https://www.huaweicloud.com/articles/835bb36656221b454a6c656be7104c2d.html">执行脚本四种方法</a>与<a href="http://docs.linuxtone.org/ebooks/C&CPP/c/ch31s02.html">Shell如何执行命令</a></p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line">#第一种方法：绝对路径执行</span><br><span class="line">/root/mysh/test.sh #需要有执行权限</span><br><span class="line"></span><br><span class="line">#第一种方法：相对路径执行</span><br><span class="line">cd /root/mysh/</span><br><span class="line">./test.sh #需要有执行权限</span><br><span class="line"></span><br><span class="line">#第三种方法</span><br><span class="line">bash test_bash.sh #执行bash shell脚本，不需要执行权限，甚至第一行指定bash路径的也可以不要</span><br><span class="line"></span><br><span class="line">sh test_sh.sh #执行sh shell脚本，不需要执行权限，甚至第一行指定bash路径的也可以不要</span><br><span class="line"></span><br><span class="line">#第四种方法</span><br><span class="line">#还有一种暂时不常用</span><br><span class="line">. hello.sh</span><br><span class="line"></span><br><span class="line">source hello.sh</span><br></pre></td></tr></table></figure><p>　　关于sh shell 和bash shell的区别，详情参考：<a href="https://www.cnblogs.com/easonjim/p/6850319.html">二次文章</a>与<a href="http://blog.chinaunix.net/uid-27037833-id-3431985.html">一次文章</a></p><h2 id="bash脚本：循环"><a href="#bash脚本：循环" class="headerlink" title="bash脚本：循环"></a>bash脚本：循环</h2><p>　　<a href="https://www.cnblogs.com/EasonJim/p/8315939.html">https://www.cnblogs.com/EasonJim/p/8315939.html</a></p><p>　　<a href="https://www.runoob.com/linux/linux-shell-process-control.html">https://www.runoob.com/linux/linux-shell-process-control.html</a></p><h2 id="开机运行脚本"><a href="#开机运行脚本" class="headerlink" title="开机运行脚本"></a>开机运行脚本</h2><p>　　详情参考：<a href="https://cloud.tencent.com/developer/article/1711876">https://cloud.tencent.com/developer/article/1711876</a></p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">#重启后的执行任务</span><br><span class="line"></span><br><span class="line">crontab -e</span><br><span class="line">@reboot /root/mysh/test.sh</span><br></pre></td></tr></table></figure><h2 id="用shell脚本监控进程是否存在-不存在则启动"><a href="#用shell脚本监控进程是否存在-不存在则启动" class="headerlink" title="用shell脚本监控进程是否存在 不存在则启动"></a>用shell脚本监控进程是否存在 不存在则启动</h2><p>　　来源：<a href="https://www.cnblogs.com/zdz8207/p/linux-shell-processString.html">大自然的流风</a>与<a href="https://jingyan.baidu.com/article/59a015e3a3a404f795886542.html">百度知道</a></p><p>　　适配变体：</p><p>　　①检查OpenWrt中某广告过滤软件是否运行，未运行则启动该软件</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br></pre></td><td class="code"><pre><span class="line">#!/bin/sh</span><br><span class="line">ps -fe|grep /usr/share/koolproxy/koolproxy |grep -v grep</span><br><span class="line"></span><br><span class="line">if [ $? -ne 0 ]</span><br><span class="line">then</span><br><span class="line">echo &quot; &quot;</span><br><span class="line">echo &quot;&gt;&gt;&gt;&gt;koolproxy or godproxy not running, trying start&quot;</span><br><span class="line">echo &quot; &quot;</span><br><span class="line"></span><br><span class="line">/etc/init.d/koolproxy start</span><br><span class="line"></span><br><span class="line">        if [ $? -eq 0 ]</span><br><span class="line">        then</span><br><span class="line">        echo &quot;****************************&quot;</span><br><span class="line">        echo &quot;    successfully running    &quot;</span><br><span class="line">        echo &quot;****************************&quot;</span><br><span class="line"></span><br><span class="line">        fi</span><br><span class="line"></span><br><span class="line">else</span><br><span class="line">echo &quot; &quot;</span><br><span class="line">echo &quot;&gt;&gt;&gt;&gt;koolproxy or godproxy is running, very well&quot;</span><br><span class="line">echo &quot; &quot;</span><br><span class="line"></span><br><span class="line">fi</span><br></pre></td></tr></table></figure><p>　　之后添加到开机启动项中，解决重启后不自动运行的问题。</p><p>　　②检查虚拟机OpenWrt是否运行，未运行则启动</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br></pre></td><td class="code"><pre><span class="line">#!/bin/bash</span><br><span class="line">for((i=0;i&lt;6;i++));</span><br><span class="line">do</span><br><span class="line"></span><br><span class="line">ps -fe|grep  /usr/bin/kvm\ -id\ 100\ -name\ OpenWrt|grep -v grep</span><br><span class="line"></span><br><span class="line">if [ $? -ne 0 ]</span><br><span class="line">then</span><br><span class="line">echo &quot; &quot;</span><br><span class="line">echo &quot;&gt;&gt;&gt;&gt;OpenWrt not running, trying start&quot;</span><br><span class="line">echo &quot; &quot;</span><br><span class="line"></span><br><span class="line">pvesh create /nodes/pve/qemu/100/status/stop</span><br><span class="line"></span><br><span class="line">        if [ $? -eq 0 ]</span><br><span class="line">        then</span><br><span class="line">        echo &quot;****************************&quot;</span><br><span class="line">        echo &quot;    successfully running    &quot;</span><br><span class="line">        echo &quot;****************************&quot;</span><br><span class="line"></span><br><span class="line">        fi</span><br><span class="line"></span><br><span class="line">else</span><br><span class="line">echo &quot; &quot;</span><br><span class="line">echo &quot;&gt;&gt;&gt;&gt;OpenWrt is running, very well&quot;</span><br><span class="line">echo &quot; &quot;</span><br><span class="line"></span><br><span class="line">fi</span><br><span class="line"></span><br><span class="line">sleep 30</span><br><span class="line"></span><br><span class="line">done</span><br></pre></td></tr></table></figure><p>　　结合上文“开机运行脚本”，将其加入重启后执行的任务中，这里用了root权限。</p>]]></content>
    
    
    <summary type="html">&lt;h1 id=&quot;Linux命令&quot;&gt;&lt;a href=&quot;#Linux命令&quot; class=&quot;headerlink&quot; title=&quot;Linux命令&quot;&gt;&lt;/a&gt;Linux命令&lt;/h1&gt;&lt;p&gt;　　本文长期更新，仅更新我接触到的、想记录的命令。嘿嘿没错，就是篇个人笔记。&lt;/p&gt;</summary>
    
    
    
    <category term="软件" scheme="https://firmum.top/categories/%E8%BD%AF%E4%BB%B6/"/>
    
    <category term="系统" scheme="https://firmum.top/categories/%E8%BD%AF%E4%BB%B6/%E7%B3%BB%E7%BB%9F/"/>
    
    <category term="Linux" scheme="https://firmum.top/categories/%E8%BD%AF%E4%BB%B6/%E7%B3%BB%E7%BB%9F/Linux/"/>
    
    <category term="命令" scheme="https://firmum.top/categories/%E8%BD%AF%E4%BB%B6/%E7%B3%BB%E7%BB%9F/Linux/%E5%91%BD%E4%BB%A4/"/>
    
    
    <category term="终端操作" scheme="https://firmum.top/tags/%E7%BB%88%E7%AB%AF%E6%93%8D%E4%BD%9C/"/>
    
  </entry>
  
  <entry>
    <title>远程桌面登录Ubuntu</title>
    <link href="https://firmum.top/2023/05/04/teamviewer-%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2-Ubuntu/"/>
    <id>https://firmum.top/2023/05/04/teamviewer-%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2-Ubuntu/</id>
    <published>2023-05-04T14:27:49.544Z</published>
    <updated>2023-12-16T14:05:45.704Z</updated>
    
    <content type="html"><![CDATA[<p>　　通过teamviewer可以实现远程登录Ubuntu系统，这很常见，但是本文是关于teamviewer登录<strong>无显示器</strong>的Ubuntu。</p><p>　　正常情况下，Ubuntu未接显示器时，teamviewer连接过去是黑屏，这时候只需要安装一款虚拟显示器用来欺骗Ubuntu输出显示内容即可。当然，网上还有说可以花个十元买个显卡欺骗器，但是能不花钱，那就不花呗，还不用占用一个接口。</p><span id="more"></span><p>　　注意，实现这个操作还是需要有显示器的，只不过成功以后可以拔掉显示器。另外还有缺点，Ubuntu关机以后，再重启，登录时，teamviewer会显示正在初始化显示参数。</p><!-- <img src="../data/image_uploads/teamviewer%E5%88%9D%E5%A7%8B%E5%8C%96%E6%98%BE%E7%A4%BA%E5%8F%82%E6%95%B0_%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2_%E6%97%A0%E6%98%BE%E7%A4%BA%E5%99%A8Ubuntu.png" alt="teamviewer初始化显示参数_远程桌面_无显示器Ubuntu" style="zoom: 50%;" /> --><p><img src="/data/image_uploads/teamviewer%E5%88%9D%E5%A7%8B%E5%8C%96%E6%98%BE%E7%A4%BA%E5%8F%82%E6%95%B0_%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2_%E6%97%A0%E6%98%BE%E7%A4%BA%E5%99%A8Ubuntu.png" alt="teamviewer初始化显示参数_远程桌面_无显示器Ubuntu"></p><p>　　这时候还需要通过ssh连接，将这个虚拟显示器进程杀掉（该进程会自动重启），然后就可以登录进去正常使用了。也就是说，目前来讲，想要完全拔掉显示器，还需要进行ssh的配置才可以。</p><p>　　下面开始进入正题。</p><h1 id="初步准备"><a href="#初步准备" class="headerlink" title="初步准备"></a>初步准备</h1><p>　　首先，两端都要安装teamviewer，Ubuntu安装的是teamviewer host版本，只能被连。为什么不装正经版本，因为太麻烦，官网的安装包不能直接安装在20.04上，缺少依赖，host既然够用，那么就选host版本的了。</p><p>　　安装好后进行一次初次连接，然后将设备都绑定到账号，下次就不用了ID登录了。</p><p>　　自己去<a href="https://www.teamviewer.cn/cn/download/">官网</a>下啦~</p><h1 id="SSH的配置"><a href="#SSH的配置" class="headerlink" title="SSH的配置"></a>SSH的配置</h1><p>　　有关SSH的配置，详见我的另一篇文章：<a href="https://firmum.top/2021/07/15/%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%AE%89%E8%A3%85ubuntu_server_20.04/">自建本地服务器汇总篇（Ubuntu Server）</a>，不过并不是教程，而是流程，但里面贴了教程链接，请自行寻找。</p><h1 id="安装虚拟显示器"><a href="#安装虚拟显示器" class="headerlink" title="安装虚拟显示器"></a>安装虚拟显示器</h1><p>　　我参考的方法是这篇文章的，非常简洁明了，大家可以自行观看。</p><ul><li><a href="https://www.xiaoledeng.cn/2020/09/19/ubuntu-screen-remote-control/">Xiao-Le Deng-Ubuntu虚拟显示器且远程控制（无显示器接入）</a></li></ul><p>　　不过为防止链接失效，我会把原文贴出。除了配置文件是别的地方CP来的，其他都是原文贴出。偷懒就不重新编排了哈哈。</p><h2 id="问题说明"><a href="#问题说明" class="headerlink" title="问题说明"></a>问题说明</h2><p>　　当连接Ubuntu的显示器关闭时，即无显示器接入，通过Teamviewer和Anydesk等远程控制软件无法正常访问该Ubuntu系统。</p><h2 id="解决方案"><a href="#解决方案" class="headerlink" title="解决方案"></a>解决方案</h2><p>　　使用虚拟显示器，而后就能正常访问。</p><p>　　1.安装Ubuntu虚拟显示器的软件(xserver-xorg-video-dummy)：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">sudo apt-get install xserver-xorg-core</span><br><span class="line"></span><br><span class="line">sudo apt-get install xserver-xorg-video-dummy</span><br></pre></td></tr></table></figure><p>　　or</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo apt-get install xserver-xorg-video-dummy  --fix-missing</span><br></pre></td></tr></table></figure><p>　　2.修改/创建配置文件（<strong>慎用，默认就会使用虚拟显示器</strong>，而不是显示连接好的外接屏幕)：这里我插两句，这个意思就是说，这里配置文件配好，保存后，可能显示屏就直接黑屏了，所以在这之前一定要将SSH配置好，或者你要确定teamviewer一定能够连接上。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo gedit /etc/X11/xorg.conf</span><br></pre></td></tr></table></figure><p>　　or</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo gedit /usr/share/X11/xorg.conf.d/xorg.conf</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><span class="line">Section &quot;Device&quot;</span><br><span class="line">    Identifier &quot;DummyDevice&quot;</span><br><span class="line">    Driver &quot;dummy&quot;</span><br><span class="line">    VideoRam 256000</span><br><span class="line">EndSection</span><br><span class="line"></span><br><span class="line">Section &quot;Screen&quot;</span><br><span class="line">    Identifier &quot;DummyScreen&quot;</span><br><span class="line">    Device &quot;DummyDevice&quot;</span><br><span class="line">    Monitor &quot;DummyMonitor&quot;</span><br><span class="line">    DefaultDepth 24</span><br><span class="line">    SubSection &quot;Display&quot;</span><br><span class="line">        Depth 24</span><br><span class="line">        Modes &quot;1920x1080_60.0&quot;</span><br><span class="line">    EndSubSection</span><br><span class="line">EndSection</span><br><span class="line"></span><br><span class="line">Section &quot;Monitor&quot;</span><br><span class="line">    Identifier &quot;DummyMonitor&quot;</span><br><span class="line">    HorizSync 30-70</span><br><span class="line">    VertRefresh 50-75</span><br><span class="line">    ModeLine &quot;1920x1080&quot; 148.50 1920 2448 2492 2640 1080 1084 1089 1125 +Hsync +Vsync</span><br><span class="line">EndSection</span><br></pre></td></tr></table></figure><p>　　注释：</p><ul><li>Section “Device” # 显卡信息</li><li>Section “Monitor” # 显示器的信息</li><li>Section “Screen” # 显卡和显示器</li></ul><p>　　3.重启电脑即可。<strong>注意：重启之后，即使接入了显示器，也不会输出信号到显示器上。</strong></p><p>解决思路：</p><ul><li>1）不需要虚拟显示器时，把/etc/X11/xorg.conf移动到桌面；</li><li>2）需要虚拟显示器时，从桌面移动到/etc/X11/xorg.conf；</li></ul><p>命令：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">sudo mv /etc/X11/xorg.conf /home/shalom/Desktop/xorg.conf</span><br><span class="line"></span><br><span class="line">sudo mv /home/shalom/Desktop/xorg.conf /etc/X11/xorg.conf</span><br></pre></td></tr></table></figure><h1 id="尝试连接"><a href="#尝试连接" class="headerlink" title="尝试连接"></a>尝试连接</h1><p>　　使用teamviewer尝试连接，成功后，重启Ubuntu，这时候应该无法连接显示器了。</p><p>尝试ssh远程登录，杀掉进程，再次连接。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ps -aux | grep X</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">passioki     844  0.0  1.8 1370128 64256 tty2    Sl+  22:33   0:01 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3</span><br><span class="line">passioki    2750  0.0  0.0  17672   736 pts/0    S+   23:08   0:00 grep --color=auto X</span><br></pre></td></tr></table></figure><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">kill 844</span><br></pre></td></tr></table></figure><p>　　这时候再尝试登陆桌面，不出意外，你会看到<del>一只ubuntu豹子</del></p><center><img src="https://i.loli.net/2021/08/21/f9Y4cygl2izbOjS.png" alt="teamviewer-Ubuntu桌面图像"  /></center><p>　　如果是有两个屏幕那就很爽了，一个屏幕主机，另一个屏幕远程桌面；然后还能拖放东西，共享一套鼠标键盘。生产力upupup~</p>]]></content>
    
    
    <summary type="html">&lt;p&gt;　　通过teamviewer可以实现远程登录Ubuntu系统，这很常见，但是本文是关于teamviewer登录&lt;strong&gt;无显示器&lt;/strong&gt;的Ubuntu。&lt;/p&gt;
&lt;p&gt;　　正常情况下，Ubuntu未接显示器时，teamviewer连接过去是黑屏，这时候只需要安装一款虚拟显示器用来欺骗Ubuntu输出显示内容即可。当然，网上还有说可以花个十元买个显卡欺骗器，但是能不花钱，那就不花呗，还不用占用一个接口。&lt;/p&gt;</summary>
    
    
    
    <category term="软件" scheme="https://firmum.top/categories/%E8%BD%AF%E4%BB%B6/"/>
    
    <category term="远程登录" scheme="https://firmum.top/categories/%E8%BD%AF%E4%BB%B6/%E8%BF%9C%E7%A8%8B%E7%99%BB%E5%BD%95/"/>
    
    
    <category term="服务器" scheme="https://firmum.top/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/"/>
    
    <category term="远程登录" scheme="https://firmum.top/tags/%E8%BF%9C%E7%A8%8B%E7%99%BB%E5%BD%95/"/>
    
    <category term="SSH" scheme="https://firmum.top/tags/SSH/"/>
    
    <category term="Ubuntu" scheme="https://firmum.top/tags/Ubuntu/"/>
    
  </entry>
  
  <entry>
    <title>红米AC2100刷机经验分享</title>
    <link href="https://firmum.top/2023/05/04/%E7%BA%A2%E7%B1%B3AC2100%E5%88%B7%E6%9C%BA%E8%BF%87%E7%A8%8B/"/>
    <id>https://firmum.top/2023/05/04/%E7%BA%A2%E7%B1%B3AC2100%E5%88%B7%E6%9C%BA%E8%BF%87%E7%A8%8B/</id>
    <published>2023-05-04T14:27:49.543Z</published>
    <updated>2023-12-16T13:25:08.456Z</updated>
    
    <content type="html"><![CDATA[<p>　　本文非教程，仅仅是一篇个人经验的记录，希望对你有所帮助。</p><p>　　不是教程！不是教程！不是教程！</p><span id="more"></span><h3 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h3><p>　　小米的路由器真好用，刷不坏，毕竟有官方救砖软件。不过我本次折腾的是红米AC2100，有可能买来会有坏块，对于仅仅是买来玩玩的我，这也是唯一需要担心的了。幸运的是，经检测路由器使用的是ESMT闪存，并未有坏块出现。</p><p>　　步骤网上有非常多，就不介绍了，推荐B站许迎果的视频，讲的比较详细，跟着步骤走，基本不会错。我这边直接把视频中提到的文件什么的都放在这里了。</p><iframe src="//player.bilibili.com/player.html?aid=243758242&bvid=BV1Fv411z7KV&cid=212149049&page=1&high_quality=1&danmaku=0 &autoplay=0" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" > </iframe><p><a href="/data/%E7%BA%A2%E7%B1%B3AC2100%E5%88%B7%E6%9C%BA%E5%8C%85.rar">刷机教程</a></p><p>　　里面有救砖工具、原厂含漏洞固件备份以及最主要的刷机包和教程等。</p><hr><h3 id="红米AC2100刷机心得"><a href="#红米AC2100刷机心得" class="headerlink" title="红米AC2100刷机心得"></a>红米AC2100刷机心得</h3><p>　　本次说说刷机心得吧。</p><p>　　不是教程！不是教程！不是教程！</p><h4 id="熟悉信号灯"><a href="#熟悉信号灯" class="headerlink" title="熟悉信号灯"></a>熟悉信号灯</h4><p>　　首先对路由器不同颜色的信号灯一定要搞清楚表示什么意思。这样才能从容将路由器断电。不然刷机的过程可能会很煎熬。因为你不知道这个过程在干吗，或者说这个过程是否超过了它应该有的时间。比方说，刷机重启闪黄灯这个时候是刷机过程，理应数分钟内解决并亮蓝灯的，但是我这边却等了数十分钟也不见亮蓝灯，我是后来才知道有官方救砖工具的，所以这时候我害怕路由器变砖，就傻兮兮的放那边闪了一天一夜。其实这个时候不用怕，因为有救砖工具，直接断电重刷官方包，再来一遍。如果官方救砖也卡，那就再断电重刷一遍。</p><h4 id="刷回原版-漏洞固件方法"><a href="#刷回原版-漏洞固件方法" class="headerlink" title="刷回原版/漏洞固件方法"></a>刷回原版/漏洞固件方法</h4><p>　　刷回漏洞固件才好进行匹配的刷机过程，不然可能需要更改IP之类的。</p><ul><li>可以通过救砖工具直接刷，刷机包直接选1.0.14版本的刷就行，红米的是rm2100。</li><li>也可以登录网页管理后台刷：进入后台 192.168.31.1-&gt;常用设置-&gt;系统状态-&gt;手动升级<br>加载固件，清除配置数据-&gt;开始升级</li></ul><p>　　救砖工具也可 自行到官网下载：<a href="http://miwifi.com/miwifi_download.html">http://miwifi.com/miwifi_download.html</a></p><h4 id="检查闪存坏块"><a href="#检查闪存坏块" class="headerlink" title="检查闪存坏块"></a>检查闪存坏块</h4><p>　　刷入padavan后，右上角点击“log”按钮，出现地浮窗里是系统日志</p><p>　　或者左侧”高级设置”–&gt;”系统日志”中查看</p><p>　　有坏块，那么检查坏块位置在哪里，如果比较靠前，那么后续使用很可能会遇到问题，可以刷回官方引导，然后退换货即可。如果坏块位置比较靠后，那么问题不大。</p><p>　　闪存检查就在这附近，可以在该页面按“Ctrl+F”，搜索“bad”这个词看是否有坏块</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line">Jan  1 00:00:05 kernel: MediaTek NAND driver init, version v2.1</span><br><span class="line">Jan  1 00:00:05 kernel: MTK NFI: NAND ID [C8 D1, 80 95 40 7F]</span><br><span class="line">Jan  1 00:00:05 kernel: MTK NFI: NAND chip found in MTK table: F59L1G81MB</span><br><span class="line">Jan  1 00:00:05 kernel: NAND device: Manufacturer ID: 0xc8, Chip ID: 0xd1 (ESMT NAND 128MiB 3,3V 8-bit), 128MiB, page size: 2048, OOB size: 64</span><br><span class="line">Jan  1 00:00:05 kernel: Scanning device for bad blocks</span><br><span class="line">Jan  1 00:00:05 kernel: MTK NFI: success load FACT_BBT from block 1023</span><br><span class="line">Jan  1 00:00:05 kernel: Creating 9 MTD partitions on &quot;MT7621-NAND&quot;:</span><br><span class="line">Jan  1 00:00:05 kernel: 0x000000000000-0x000000080000 : &quot;Bootloader&quot;</span><br><span class="line">Jan  1 00:00:05 kernel: 0x000000080000-0x000000100000 : &quot;BootEnv&quot;</span><br><span class="line">Jan  1 00:00:05 kernel: 0x000000100000-0x000000600000 : &quot;Factory&quot;</span><br><span class="line">Jan  1 00:00:05 kernel: 0x000000600000-0x000000780000 : &quot;Kernel&quot;</span><br><span class="line">Jan  1 00:00:05 kernel: 0x000000780000-0x000003600000 : &quot;RootFS&quot;</span><br><span class="line">Jan  1 00:00:05 kernel: 0x000003600000-0x000003700000 : &quot;Config&quot;</span><br><span class="line">Jan  1 00:00:05 kernel: 0x000003700000-0x000003b00000 : &quot;Storage&quot;</span><br><span class="line">Jan  1 00:00:05 kernel: 0x000003b00000-0x000007f80000 : &quot;RWFS&quot;</span><br><span class="line">Jan  1 00:00:05 kernel: 0x000000600000-0x000003600000 : &quot;Firmware_Stub&quot;</span><br><span class="line">Jan  1 00:00:05 kernel: tun: Universal TUN/TAP device driver, 1.6</span><br><span class="line">Jan  1 00:00:05 kernel: tun: (C) 1999-2004 Max Krasnyansky &lt;maxk@qualcomm.com&gt;</span><br></pre></td></tr></table></figure>]]></content>
    
    
    <summary type="html">&lt;p&gt;　　本文非教程，仅仅是一篇个人经验的记录，希望对你有所帮助。&lt;/p&gt;
&lt;p&gt;　　不是教程！不是教程！不是教程！&lt;/p&gt;</summary>
    
    
    
    <category term="硬件" scheme="https://firmum.top/categories/%E7%A1%AC%E4%BB%B6/"/>
    
    <category term="路由器" scheme="https://firmum.top/categories/%E7%A1%AC%E4%BB%B6/%E8%B7%AF%E7%94%B1%E5%99%A8/"/>
    
    
    <category term="装系统/刷机" scheme="https://firmum.top/tags/%E8%A3%85%E7%B3%BB%E7%BB%9F-%E5%88%B7%E6%9C%BA/"/>
    
  </entry>
  
  <entry>
    <title>Hello World</title>
    <link href="https://firmum.top/2023/05/04/hello-world/"/>
    <id>https://firmum.top/2023/05/04/hello-world/</id>
    <published>2023-05-04T14:27:49.541Z</published>
    <updated>2021-07-15T12:20:24.000Z</updated>
    
    <content type="html"><![CDATA[<div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="Oh, this is an invalid password. Check and try again, please." data-whm="OOPS, these decrypted content may changed, but you can still have a look.">  <script id="hbeData" type="hbeData" data-hmacdigest="5e9f09f0d3405e95bf9398d848f97449a273b0dbc7f1752b8c06f36bd47bdb6d">10d79030e8222445804370796b90fca1cf7dd2ee01010d95413afa643c36d75c6da7dc8584583c53132d123565a83bc482d57efe09dbb13f6be1ebadf67b396c5e9af14ae37a94b87d779719bc8c1cd1a95420a6d53586101970b6bd1e11383c5fb9eb6a2afd2dfd764940c736e232c31819ba63da4a7c6eb6c1003cc6443dcf2082b9f749ca03a1484b87b08c908b3c310d7b631064a7fc3f9ca36177e4c3059978875c3caa78a7dceb6037a9522caf5c4adf858dd97440561f76a5ba5e4fd77e9898dfeb4cad54c4bb643f9c0ecbaef49a3431bdd2455830a88255232397afbbe9b23eb9395dfae6f0824e03416bc0b3804386abdc6c923976a913424fdbf1ba89bde972822239ac5e9109f398b65ae65ef00629508a203d30649f6408e1f61f5f6e73d99349907d745bd4c4ef0763621826913a2677273e3b66ae19439d1940d9ebcc45d324738506f0ac5dca5093adf45b82a24da2d49432e9f7cea3b56d73ea8b80628014008c75e6df0aa070ccdaa53907f1adc5e6234b2ab2f7f8485fb9383dc64927d631e20713c7d719815ed85511d4f3fc608bf58e73980feec79a5a034b1603177bdb3234ce36f5bfe79e6319314209a343dee0a1520163be141ddaa98f2724145f9dbcae8dd790f7bb88ebd84c867b72037283d9cad163785b66e1f9251474623115658a84db63e7bb95720a9909854aa8ffc036cf6385a73c71eabaea75d46421c494252853a38f94940e8474cfc39b3be49c34a489d9703f8fcc4ca554d597d0cc971d78c440f870cb23e159ce8b9524d14eeb9cd9c727a22d33974698c60f333b037f4ed04e069a54886ffed9e4030b7378d99efec8d214a3210d79d10ccaeb17462cd8118d83d47792b0e631791bdfeb4cefbcb09be7953dd80f94d4ad69b0cad943b854523834f062e4eb2cc2c67c4c2cf54118ab5863a5a96dde39430cc1127762116faa24d2b498f5bbadbc5aba696329e1d3dd300e3ed8c3fa03901fb2a46137b7a90f39c383decbee7684e6efc8189fd608e416e4e8c05ed51040f3a923cf8c1a4d079434281bce2fc098677fef0bddb68b5b5e800d4480ff7eee1ccd2cad3f59481afe81db92626a0044ebdcbf9eb705ea59271bc78b343b1a7676d67b3402ca5870ce19a79159776acaa5a844f4377cd38f201392c56c95ca3c969a3d9ed6f3d72df8b62cbe32493da4fe34ede03ef8893a16dd397b1aaa17fe72057a5d5257c4555aefeb29e5a767718d9ea9d372222678959a13bcdce9ccbb231386e8d6b960c73961fad79d38c0bed9a399e59cc2738e51648de00bb6215c11bd4c14cc3bdd18c2a6b490c1daa7d688770e7483e0ffea75af2938beadd4d5eb4a4bdc6e0dbb8b095babf2a4e9c4ceca34430e309afde34d121b2dd7b8c2e271424698420fb28e8ead5ca5240b5ff3d26aa03423bc686153f0b848b0fecc3777cf9244de038dd253ed7bcbb4a6784a653095356b6db45e7ba25902cda7e35d752383b9a6ab0762d733cd0abfb4f635a492ae79db60ab9937989320526609a2c7243e91c65dc1d5a33907d93a4b4a77d126cd8a8774871fd6d82c59f893192c294ba7d1e422c064a4edcc37ccb03234e280cb3deb9c3857e67591b6acc2b7fe5f1456bab17c5321dc52aae78b7d4c338460837de808925829c154e0f29787cabcb186d6c6ca7ec128ae44cf422cb80458b94c5e1a31d0741c30364d07faaa8b684798441e016d80e2dd81ec02fcc0a2bc479e11771b6253a707f69ca51c0f9fdcd566370fc3b83167576f0642602c9b8aea2bab996d592db631ad5fc8f29aac1233f97d9753aa5124e7deacf9ec4af572d80a56f634dacd902f1366e0b1b5457cd59e420d480c486a82e8dffb6fed9f5f49f672755404eb485cb9296b6f2745a416c9f7bfb864a3f686646f297625c4e19de07e814dfd09f11edea90cc0687e1f876e31d4431675275fe693efa9c2d021034fc3fe8dfeeffcbc3625185f6246d27fbd9dda170c3e5a12a49a29114edf8dddda1d0f6dac1d120309032ed31f030b091da28eae18cb8ceeeb029c09d24e1df1de61a0b3cc84651a35550da53dc6b5730568b8329b309fbe551e7bcd707beadb89c5e050df69c0d229fb526624e21391c8628f9c92d8a69d503e913a145ceed34769f3747dc31d60d475542773be81df3b54c9899d87c0193dbad733508ff37017955200df924464e69d2d800c78594fbf452542e69880c8cc9189c923202ed9989c3f4e9e95e8f42dca74944b0c90fe73c1978fc8e6748b0e0deacf093676782aad0492be731d914e7733189cd259cd6fa44fdec98789829a9188f15f729fccd537128c43a00b114ebd5530caac7302fea8b0a434b24bb1bdbbfea32694903bc2cdf7787789a1a0cac3e5125cb0618ce2a5ce6f9c276dde8b50fbd5828c627d0088d70ee5b5425fccea593350a9cc3187ead38f1450dac57633eefdeaad86895278f00832f79b1575894508d61bc505cb6f4cabaf694b5bd6bf710c7639e10746957ed2ffe448c2aa43de5cad059bb516616156acb04b4015e5dd26a780abcfce8d93bb36e4844199b2f6748d4bcbc51f8ce0812358faac10f7c47159e90b1988f1b911710c57f93d8630bf5487af0a30850c636bfed14904e221f94fbe032a3e38a29d463415d670cf43c7ab4e16bce0e1e2e70c26ff44a1665edb92f8195117da841fb7b41378c510160b33905d5b50cdb6307157022d53d9aa946f42cb9849201d26974e51f6c16e2d4382a1da7b729f204bddbfc875139850fe2353baa994aea8be793c25485ea1ab187afdc8ed2a9bec0246b8811bcf27bcd752662e3485325fc0f65d02ece2183853f6ba772bcc75a4393239a4539ab17e0ce03c3022bfca20adb7acf4ceb3aadc3d42c7e7b373c313a8558e1be299845fbf0a358c99bfd3ef81a74636e2d3929a57417a16db41675cebb05d8639e2da26b33b3afb2b22bc5aefea4d8d3b962467a21bc290104ad956048c62d224548aae315745c548b80305aa27285bb8251003f7a12f358c798e0a7da6300eae51bcc38767f3ab3e157e96d4c2d58d62ae6ae5be3b89ea7979df7e00410164e9960bb141bffd90d3ccf93aba339a490ef815a229c0631def3ae55ff5b1d90a7ee1df0e5f1a1d4ed04df223763cc4d613fbf41251b7b5b55e96d0bfb55b2efe690a648a206642ad4e56dc2771f7cbe259492e8275804c7d3b4bb661dfb4153dae8be3f54cc7f3a0392ebf6d61141e201eb6baa3f10b7eb57034c9e2b1a5b47e113c9ae040416285e7005188b6f191cde0d9ad12cdbe9a7ab8eaf4f189995ba5067340d74f8358338f7a56832fafd7204a29bc44e934554161760d6836c77facb6e3e928090984d4ae1b61fe96f999a6f0d7a3fa73c7df5d9047e131eb0552505a03fc244d405731e9b730d49158827db8e7441461a219aee0b2f89a6249d977f90cd3dc0cd957017d326ce046543f36ff3b07fb2f9cc5450a907e68877907650c52aaa6a52d18794ad6d63caf6022c2b7a62a538ff8117622a9a8e88c22117b26792ded8a018d5b5396c139e5dda0441a8dff975c158970875cd0195a6944a08e262390d510bc729873bf8cba22bad30e752c3416dd6ef673493083af623b5655c7d4406d83d3fc50979db80501855c717ef23ca278082803be86038e9fae62dd1518af8954eb48bfdb2dbeb664e7a1960f87e4828c6b7d9e54eba3d6c8a38089d5e6fb6d5edc885e794c3013a1293679800a2797777ae1b3b2a8f9cce99182ecbc9671c1b366c81867f04f856dbcdaebb48887cccb5ebc63258334c7d277f28d27f9f387c273d25dbf6f61448410a2282e5d4e4526f2a09042264232cc15fa6ebbd44a89ad61646273e2b3fcc16155671e73f8ca4e359c2403d4c4c62dc19d77d137f584f6003b7d98217138a00521236d2b99a008e873fc4ae8ec14d4b3cba77712eb0fa537d17a10404c549d6d1f699c705f3298669a2a998e9404633da8fb859400ac382a99649073721915100ddee1360d53b265b2c9b17684c6a7a0829c2f640dd673fc697897054a426410443b04dacaefa88559a7e5a256d241cb677786a603c5918959b055e7aca6574a7a4cf7e31f8ee4867f9e5fa76788da210a5ca2dc477aa23c63dda6b570f774501d802615ed0c88b9a14b31692c050fffac19a925fe008aec303e9a3e34cf7a231f117f8662cc656cce79698b030a55777a097b00a027dc134c4114e121c58b26b973baa954f7c7f47b8c25d776b0280793e8d3dfd877d8964de4ee01816f7e488932a4df85b4fc097ac5b117f67d8124932054a777346f4b3c47126e21261867381ed67f4e18cc69fc58cc5080ec2d9a904f4ade4b92580270bda839cba5bb688c77fa03c97b522d12ca1e3ed02c7517ab247c221b48fdcfa19a022d0b6432645f6a1669ad9f5a70ca22d6ad9f0cd67fc73a234ad2a225ac90f7f51d48e10a90e3e794ac9a18c586ac11f174032874dc2554e66dab0fcd60d7e7d1ec675b1e5c79e2710487281ca83b4ff7a0a8f97ca7cc0aeff66f685f045b03d664bb70413e3b7594b89a5a6cee922f44a289d12864a53179adccfa5e6a6284b342250536896e6557a0e0c4a631848cc23468ade57c9c7780f290207a899826faa9df2ce9deaf8c161317555fa12dee56df29a9ed48852a83b993f8fc331c051790a914fa72640f8f9c59b2559625900a4514d45a145dc0d110121173492da169fa847cb13d1cd5b83cb25ef6ceea633ff7bd7f2b9af24b8fba1958f7344dbff32654858d458d93d332fbdde990f7a78853318709e62b8b601156691bd0ad871479459e33fed2b150c35151860d6c9081be258d42f78c73a7f38e15a641dda1c66a8226483fd5702d7f8131a5937d9bc420b5734e0e24d652ec3ec102b98a50c8df4b8c34ae18dcfba0c3dbd1cdf0d7c6283084292210f65a9094a2b3bba33c039a2c556a94d990b6b0fa57f63a7fe1b98ad2d6abb1321b0a5e1cccffffcc61d66bd0d27d57efdc6a3f772695c7d828944d16a8f3696d9df0e342b9eee6f5fa4f143e7b059317e3623dc19394313163798c61c1af6ad0b150c944a65981c814c7abb307855e8ee5b7e826b194d91151f92b72dc4ec579e3fcc8ae5c1be9e095fb6d0ae1471722742e3ec1aa32c8c1ad9c325850ac2538f26be4361b69c4fdccb14a99c8920c10f7eac1ba7b74d220a3e74945faa6bbaea5e6b985876e82c2fa066340fbb7f864ad45fdd274bf5fec75bfdb926a30eecba1bbc30bf26c7b2d75c69daf9570a5aa3b7bca0a9b8c33f8711c3137703595ec1a6566042752075a296650cbb51daf3847151ae17cfba995dd005a9bdbbe155af56308ccbc45187bb7209903b5c2711ef344ae27c43cc69fdf864d59463f7730dc78d211ed59dea3ebbd1180b46479004ed960a99618b2129e174239ae5b5c81262048f7e7e47d4cc4da46451addaf8780b552d4c94111b5c91478802a470ffca082ff3d8c2e2988601d6118fec9d03200b28a5b07bf468fc36abb01f6e2d96918a33f5a51ceb4105740af713d0bd0648d3cab896e7ce40a37383d64e1c3e714322fa18e3678099a20714ee3e137780be7cef237c4255b005798d2a2f2b886c155b7d13720bf045bd5208393942b576592d4e9ca7fda2c08aa31b92828e85c33bbc3dc9ec27d65c890e4324c5e3cfbee711937ca53d020755e929961a9035479816763681631d3b822f12fc9a0a94e2d35cb322d0baaa71e5b22a33c3ea8192bb3597afb7ec072224dc4322c4739bf579e51a33c75de92e7b409ee9533d5224d7b23c9abd2f8f5f5aeb86c6a76488bea3de4cb388154b28d88b8370c4417314b11d3093a745088c187a785b2f27da55568655b05e7d00a6008802da871c34f5a98c484415ff5584f7cae707552386b216ed4311259aa08fbb5503a432a4cc03d35f62c0b9e0b6b9e872fa93a8968e533d797293f071729563d6b097ebee27c76c3ab8b43c1e5e10a040b47e5d6bed47a91ed9d2defbc0e0d442c0b06de649e1558d5bc6804d660d79cb07efbc0726e4a84ecffae952a679f1bf98317aeeff9ffcf63dfaeb475f55b8854c0978c204ac29b98a6b3533712009835c610c099a51c487d46be9dcf66cce5a519c1bff779360aa8d8e74fbb6a9cff6a81c3c3bbc0a0eb47a86b5c40e5e48dedd08fafb61d321d0686de74f065000ca445eaa510fad078356ba32f56a2a82211302bce70de8f2ccd88be852edf2732d1ee66c88f6d11e0ec912ec4bb11e372e256c455688ce815900025b12d98d049d38f433c116e48596bb2f568a66d8cc5f2696fb4adb7ffc75d3e91caf46abd63fb5df82b5ca3702d60b4e9dfdd86e8d845f3721aa109607f0f6d4288baba84f2ab53e75f7514b71e3b73c4a6f952a42be79b44f9a07da84040c63bb28556ab79d898c7c03f0329c2f36ec88a6c0fcb0e8f8599e6a83a375daf9f89a3336231b2e32ae6bc59a2d6aea7c726cbc37e5cc3fc51d0263871cd07d176d2c741f20ead8d519c33792d622a1ce9389a088b3e9dcb3a6ad95a141de9d2ff12892634ae14b760b5c2f726c4e9af4471f3984f9f6cde3aa1dead0fdbdd1144c0d20bd13ea76d402333bc2c677a9d6f12e78495e1686c78ec55e5d72b8e6a65a6986bb88166d2238158c6b620c1cc1d6f3c1673156e8f25a0ad7eaa6f12a4b125f37e593297263480010ec6ea3d4bb5259bdb88dcfde93be7138193ff63409164fd517a29459d7a071472aa8bf4a58d64da35d27196224b702f68083d1e924cc1988da8a32cd9046f6a0e11a261947ecf87463307de6c121e1b299ff5ddc4e03ccdd2ef77f9c88394bf48aba2025d01d684e05789b03f1b2836fcaa5d6981a7538e18283ae9dcfbf0c1b11f0e70e10bbbcc315cf837115963a07e5b78108413b6de0e9aeaf446246edb1eb933421d1ca4aba4faf1377e7409b7f13ff0e785a408071a6ad39017da2ad32d5c6764f592f91d121b8db12d695a2c39b73a5b9012f6886af4bf342188e2da622f836b6553e2b2c8ba1a7a8cbc5594226454fc0255616b7254a337ae729f14073caf9176bd9e58de560a3fca6d59c587e24bd4cdf3817b6bf037fdb66ba4e95511be2ba46eaad0ebdfef4566ea8af333c695038bf8cf126c74f1b9642fa5fa946f6b3f7ec62906dec3ed0e5536f55a07291a17cdc0b6c78383ed5bdbb411fe0c864b6184c6936bb61f3725930be6add1c00be4ef2e9e94a64aaf3213ebb83cc013122c028046e15d7956911a4eb9a16119efedac50113af9b7e55a9d269c3f4f12ebbfc6646287b9714c5b39b9aa9f7a354dc13ed3cd1405b2fba7179f2a39a2ea44e7c21e94f31ca2a54f098f3398ae83611ccbc78211f9b30c541246b49842f3ca323d8d138de7982eef697c42a1ffa82cdc7906e526b5fc70e0d7b090744e08edc6e55d1c80d75ab8f14c38f0b5765e9af5af71b249e658808646938cdaeeee1bf1291a39c1c4ef889a8649d0d2b7bfee0a7e90260a24e37e46bdb4837ec28b006bce7c53088277f8c50b1722a1e2694e4fed5217fcc06e8f166299a43dd535b3ccd35accdd7778b1baa9b2a821bdf58f4c3e0c6a4d855e91533a17b36ed0adddda74900c0e885847cc83884dea490f486ae1ddbaac722de103cbe0bab85477319d66ebd369f4ff5db5ac839793db9b738d7391b5d96a03f3ddd198e2105a83fcdcbd7a2249c90096dd8a98c6562d553ecabceaaf87a1e5ed87f3334cc983def67ba46ef1b603016cdc86d8500518d4eb3054ca01385ccc61a8b45f984a64887235eeaf3b52473e46574412e5f8c70f60532e154dfe0453bbcd25c7b70b9176a5d0c0a747acafc5dda61531daac40645b60f616105ef628cda5b190e14899db94172e0f56bd721e168a369adfb13b56b9b1abac9e4094f3cc09db9044ddc69f7189ce7dbb5394efe6e51dfe5ca72bfca7420cf0355d051ee61b12325a6d93ee1292fab6fc4fd88388d243cd42d5b59e7dedb7d66c7f5bb7ab0c417c778ec5bd76d537b64d0f806f2dcfef664851c391c883131b131ee445219a57a21ac9f05cdf18439abe1c4cfe3a99a584c55ec055113978b66e94012280bbc3e9d1b2d60f8207f46e5649e33d2f721f8ec56a69c2c0345a4e06946b9b13f0bebeb10630bf2f3a6678109c5afe2c1c07c4264e00b1c60ddaa03d8cf12e1e3150a937e2f6ebeaa992c35160a4daa0f8c160c08d876ad0860e361876bc88a7ad64ac0a14510d4d4cf99ab36b69d2b931ec1fbbec709b20c8d33ea44658aecf045445e5a1d166d60dd3167a50c89bedec77fa85aca1003e232908c229f49517c115c8fbf3167ef0919a3bbf08fa91137092c07bd25c7f1f41e7c275322648d44bb45a753f75e61111bdc711648d150cee9cc2aa841f0abd84b714979540a7f5ac93fe16a82ae2d1a379116853db731d5e739ab6b90b73e7777a893ef00f7e390450161cc4de3a4db0b8305b115d15bacba0055c101bbe6d83fff1dd3de6cdf2e75489a5118926e6eb442d4380d77b36335f0b388eda070e2e1134bd0681a5315bf4ab011c2d178fe2b8f46273a2a9274f903ba8c9cdf917c24e1343b52a2de3c2c0901fd69b24b391e00f26c072a0ad1ec11f56db4fde38d7f065f9d9490ca4f371675fddcb484485b9e92e764691c96982f1352b42ddde8209b16d0cc8e53821630b9063708eb383a4c900ba4685ced706928f181bbab0972e6d73aba90827e14f3b4dad76eeeedc0672dfddf69b78114b963c0e6c03b0ec85b38839b0389bd612b54cb9959a8dcebcec9a1bcb80eba8318dc297a322b25ed9bd39534b81f440ac3b55543cdaca8f5b32b7fe21b68165909c9521c8c326fcac413d02fa9cb6a13e2acddfa3f890a48aeea664f76b1db4536d2e6d5571ce8d3e7685e3848cb40309cbb00bce6508793dae5b6fe52e4083c11166e5a5b36e6ede3dc4d07f87868b1b8e4073dec61d673df3c6785f3adea8dd3cbcdc37c858a85bc3bf93b72f88ff5f6bfa1c922b8487a5caeed762a8fa756d654ccc3b68da1ec982e3dfdc4819ba81a84803bfd6338286c37d76f83af0f1ae027d3cf575b2e9066fa85300b29b812a66736e8a31fd2a2c3043f8515548291ef5868125e0d390ed3bd4026cfb323ff323b8445cbec647bceb3cb2f4af14c5a69ea9bb86dd7b259e8b73636904bda4d6eaf43445e88f38470d558c06a40bdedff504a166fe821419d1b1e8997ecb5fad3ada481594cc8f7fd703fa49236e749057293f62692c2a6cc36cf05788cc09757a80eb3297a322d74e46864ae16e265b3cb471463572850e1972cdbf9a3c458ea7e6dbe3553b409e46074fea3ca53bfdda8f81061ed3d3d8ea68315f7f7441a730716c62055dca8c9a815c836215765e4d5e9ca251d0984d28c5560dbd291ce7257165a1702121a4c5ff1cacb8c57d7fac8ae75eef08d9b8da7b62608d873409f62d7bbbbaa71e2a033595a56e4883c75f888c1e31e162b5b954a8f119df010f6131e6b1dd50d9f2b5e70841ed0ee0a9c672baff566f03226c940257d6094a5cdeee9e14f6f340f11e609072941b2a3691131db6e60b41e075df432b92b481d33ca2a4c9941c148fe349416d2f026c057cb99ee882a0b52117e6bd0bd6ccba9641054a80839dab45627d9b28f06f5c297b3954dddb5b97be606dc1cd11e5d0b6c810713d01a757d9db7824a5ea481b197286464bccac9214626d858b2c171bbd116a32d29131c76b52f042f27f3e31a1eeeb7d926fa7c61da65f6a4f3a25937036f303f139abc2fceb87f488344b99e560fca46d65132c9cfbcc3f95c8f6efacee243abd8e55a47f32ac1b26a30b19c303d80325f7251f1f8b7a2530043c143ec37d4163930ae02df866ee02803449b37be9486c00d65523ea3d5c629b7d7aa645cd34fe3b54ba1f66ad61507dd534fa928d3265518dec83821d393ed544574de3c5e8c10b2fec1d9491be1fd15fc65101842f2ee2eaec6bf0a40fd359dc0d32c992f7cc3f5345652b560b224547f927edcdb449c37621fa5a0346f0d87c87de7e0001c2fce0c06c9f56db4915d0ceb14c5c19fad69c585d8f4715c6e9942a43cadc76a157f4ad086bef0324f476c30e1d775963381d0ef7226fa06a75ba94fede46a1a851518b8eb007baab04dfd3bb1ac5eb6de32ae39fba5c1e76af0042885ad54e1560e0411a32c644df558d59c3d0e00416d1748bb47a05d63533ffb4f366f58076f321a6415a40bfef74dd659a6d37bdc9a87021c6719d3407c4b8afbd43f20f4157241bd834de49e3717c0030b6626b568989c7a2d13ba202d0d465110ad11446b7697ba4c10e1eb9da854d35ab29b9569ae9ae4927cfb30a068e04f9b64a1d651927ca6f77ae631d673d7abdda3eb6fc0f4cdb9f8628abd6d5885001bbaeb29714ba4a2c0b9ab02751f2c65929df4f98af7e58bf197e9bc3d2a19de98c79508c17de09d9022db0c04b9f571b3871efd3fb00ec793d0f65a2cfa2aa9e06256f047249c956a5a3948f3f535a5f5e2a9931dceeb09ad5324de1eebcd1672ad2d98f64bd7327a177150bb1cacd850bdb3644ca4f0f17dadcf1bc9b80acd674115d31f12e78cf635e9fc7baad89f3e664b5247a89f7c7b127f969a0a604b70788f5dee566f04e3496c157128ca24e384f7d99f518258eab86526c21b1b7fd54aae024c7095a0f7b6d4dd0a13f68f909eeda29a21e965482a881a7c02b12118151da68b9929e4a81d61cfbca666b2cbed5e789fc18966909087300a5b1c6cf784aae4d1475d76ffb74a81deb0d354468a97faab45f03832832aa5081da56d5a7eda436559db286debff9f4dc7c2a1c895604bf97b071b695a3a0e29873bc3c51bb49509e11779209d4c30bd2385a48c37ea5373c72a0d0cbe6d5313c45f1ae24315211a9eaaa3a44946774f094f291b81e0e25956dd250e27bd98af559e5aecd0c6bd9d1bc5ffd5c172dab00aedb3a98b91c0c53a7ad3c24f117d5be826b7f5bf54fa51f6610096e4527f6080450750e5ea1dc7844d9b557cf49a0c9ec685dcbd23a9ab543a8c900184ec60c049d0366f16ae5dfbdcde20daf7d5f1e0b1a62cdd35a397c52e69d788e0847fb1b07172b8f453ba44c7adae4c65b636efeab1ea73ae7d7467dc68ced6ad6e0a92608be9132606ff8995cb2cb697b9abd41dbe8cebd9854a7652a3e970b8d3c15101fc9a87ff83edbf57358a28d18e91e098cd3b95fe7ba8b941ffdbc7181c5a40734c4e16520ba6be78eee7e5610cee80ccb96887bceeb695b85d236a2ca154847f00cb6d0789ca78b63d30772c20cceb3dfacab7d3fafd51f103eb572fd553022ff6b355e3c3a882e8e86f6710f64e8784f9c5329a6f23b46533b0446c4ef8893a6442e430bfd1fe8ae072efa98e2ab931bbd8fb5816ec48b508d1316d44f3ea21d02dc820401b6b54884</script>  <div class="hbe hbe-content">    <div class="hbe hbe-input hbe-input-default">      <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass">      <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass">        <span class="hbe hbe-input-label-content hbe-input-label-content-default">Hey, password is required here.</span>      </label>    </div>  </div></div><script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css">]]></content>
    
    
    <summary type="html">Here&#39;s something encrypted, password is required to continue reading.</summary>
    
    
    
    <category term="Hello World" scheme="https://firmum.top/categories/Hello-World/"/>
    
    <category term="First Blog" scheme="https://firmum.top/categories/Hello-World/First-Blog/"/>
    
    
    <category term="Hello World" scheme="https://firmum.top/tags/Hello-World/"/>
    
  </entry>
  
  <entry>
    <title>软路由安装踩坑经历</title>
    <link href="https://firmum.top/2023/05/04/%E8%BD%AF%E8%B7%AF%E7%94%B1%E5%AE%89%E8%A3%85%E8%B8%A9%E5%9D%91%E7%BB%8F%E5%8E%86/"/>
    <id>https://firmum.top/2023/05/04/%E8%BD%AF%E8%B7%AF%E7%94%B1%E5%AE%89%E8%A3%85%E8%B8%A9%E5%9D%91%E7%BB%8F%E5%8E%86/</id>
    <published>2023-05-04T14:27:12.688Z</published>
    <updated>2023-12-16T13:54:33.899Z</updated>
    
    <content type="html"><![CDATA[<p>　　个人日记、随笔，非技术文章。</p><span id="more"></span><p>　　主要硬软件：openwrt-200ge-A320</p><ul><li><p>踩坑1：<br>  认为镜像文件和windows、linux镜像一样，只需要写入U盘然后在bios引导U盘开机就可以写系统。于是此次开不了机，费了很长时间尝试不同的镜像文件，也许有包装好引导的镜像文件，但是在官网发布的那里我没有找到。</p></li><li><p>踩坑2：<br>  wepe写盘要写到FAT32格式的盘里才能成功进入，我先是用windows自带的磁盘工具格式化为NTFS、exFAT，都没进pe系统。</p></li><li><p>踩坑3：<br>  wepe安装到U盘后，文件是看不到的，我格式化了好几次，没看到U盘里有内容，怀疑人生了半天，还找了不同来源的wepe试了下，最后在互联网的汪洋里的一个小角落里看到文件是不显示的。U盘来来回回插拔我都怕给弄坏了-。-</p></li><li><p>踩坑4：<br>  我真的是脑子抽了（死抠死抠），为什么想着把软路由塞进虚拟机（不舍得linux又想要软路由）。一开始还用img，诶，怎么必须要iso（VMware快支持img啊），诶，怎么没开启虚拟化（接显示器调bios），wacao，原来要用vmdk？？我这就归西。什么！原来最后的调整网络才是最复杂的（linux摸虾玩家）。</p></li><li><p>踩坑5：<br>  pe界面用diskimg将img镜像写入系统硬盘前，需要用diskimg将其格式化/清盘，我这边情况是里面有个linux系统，写了很多遍，都提示什么error，sector 2048之类的。</p></li><li><p>踩坑6：<br>  想把img转成iso直接安装到虚拟机，找了个ccd2img，根本转不成。网上看到有很多和我一样遭遇的，那就不是偶然事件，这样说来，作者太那啥了，要么是软件没写好，要么是教程没写好，浪费了很多（人）的时间。</p></li></ul><p>　　镜像文件质量参差，数量又繁多，让我眼花缭乱。尝试了很多镜像、以及不适合的刷系统方法，碰壁碰的全身无力。这就是小白的路吗，够曲折！</p><p>　　其实我一开始就看到了什么WEPE进入系统然后直接刷入硬盘的方法，但是我直接忽略了它————相比传统的直接引导刷系统来讲这太繁琐了。然而最后却因此丧失了更多时间和精力。也没什么好说的，就是不知道这玩意儿，俺知之甚浅，俺认栽。所以但是如果也许最后，我还是用了这种方法，也是在快放弃的时候，又刷到了相关的pe类的方法，勉强试了试，结果成功了。。</p><p>　　这篇文章是：软路由系统（OpenWrt）的安装与设置 - 富士山下的文章  <a href="https://zhuanlan.zhihu.com/p/147707090">https://zhuanlan.zhihu.com/p/147707090</a></p><p>　　步骤很简洁。</p><p>　　对于我来说，折腾这么久（9个小时多吧），早已精疲力尽，能开机就是我最大的奢望了，如今成功开机，那我终于可以“安眠”了。不然我折腾这么久，连系统都没进去，那真是太说不过去了。</p><p>　　这九个小时大概是这么组成的：</p><p>　　下午4点到晚上9点，我一直在想着怎么把openwrt装进Ubuntu里的虚拟机（VMware），然后Ubuntu接网络，把网络转进虚拟机，虚拟机再转发流量到另一个网口，将路由器接到这个网口上，到最后，终于发现凭我当前的水平是无法在短时间内这种操作的，网络这方面看得我头大，尤其是没什么理论知识储备，那就更头大了。虽然有教程，但是也有风险啊，什么也不懂，顺着命令打下来，万一不成，那可就更浪费时间，而且会把现有的系统配置弄乱。</p><p>　　晚上9点到11点：然后，我降低了要求，想着把Ubuntu变成路由器，转发流量，网上也有挺多例子的。但是深入了解后，发现现实没有那么轻松。首先，这个配置并没有那么简单，其次，Ubuntu（linux）是很强大，基本什么都能胜任，但是相比openwrt这类专门针对路由相关的软件来讲，Ubuntu想要达到这样轻松易用，功能齐全的程度，那也要付出相当的代价。我佛了。</p><p>　　半夜11点到凌晨1点40，开始决定直接把Ubuntu毁了，整机装openwrt（心态炸了，我就不信我看不到界面），这时候开始找别人包装好的镜像下载了，不像之前那样，还“妄想”：我要用原版镜像（妈的，这官网的包怎么这么多我脑袋蒙了到底该选哪个？？？）！我要用源码编译（什么，这wiki界面的教程这么简略还到处跳转页面，我编个锤子给你）！我tm要睡觉，我要洗澡！好，先去洗个澡吧，嗯。。。洗完澡回来老老实实开始找别人包装好的镜像，然后找了些安装教程，终于在凌晨2点左右躺上了床。</p><p>　　我一开始的目标：流畅的文件共享，强力的广告屏蔽，跑满带宽的科学xx。</p><p>　　最后：球球你，快进入系统吧，嘤嘤嘤。</p><hr><p>　　windows、linux等系统作为桌面（服务器）系统，安装较为简便。而路由系统，由于种种原因，或许是需要适配的种类过多，标准没有那么统一，简便安装对于需要去适配这么多机型的人来说简直就是极大的负担；亦或许路由一开始就是刷机（直接写入硬盘）来升级系统的，openwrt虽然是其中最大的软件系统之一，但是仍然属于路由行列，刷机这一方法自然也没有多向桌面系统看齐（历史原因？）。总之，这次折腾下来，给我的感觉就是：当openwrt用她那靓丽的目光望向了你，那么请你：不要回答！不要回答！不要回答！</p>]]></content>
    
    
    <summary type="html">&lt;p&gt;　　个人日记、随笔，非技术文章。&lt;/p&gt;</summary>
    
    
    
    <category term="硬件" scheme="https://firmum.top/categories/%E7%A1%AC%E4%BB%B6/"/>
    
    <category term="路由器" scheme="https://firmum.top/categories/%E7%A1%AC%E4%BB%B6/%E8%B7%AF%E7%94%B1%E5%99%A8/"/>
    
    
    <category term="装系统/刷机" scheme="https://firmum.top/tags/%E8%A3%85%E7%B3%BB%E7%BB%9F-%E5%88%B7%E6%9C%BA/"/>
    
  </entry>
  
</feed>
