记一次代理转发问题的排查与解决

<p>:::info{title=&quot;注意&quot;}<br> 以下内容通过 AI 整理汇总。<br> :::</p> <h2>背景</h2> <p>最近我遇到了一个看似简单,但实际上颇为棘手的网络问题。事情是这样的:</p> <p>我在国内工作,手上有一个海外的HTTP代理服务,格式是 <code>http://username:password@proxy.example.com:31212</code>。由于众所周知的原因,这个代理在国内是直接访问不了的。不过,我还有一台位于海外的VPS服务器(IP:x.x.x.x),国内是可以正常访问的。</p> <p>我的想法很简单:既然我能访问海外VPS,VPS能访问代理,那我就在VPS上搭建一个转发服务,让流量走这样的路径:</p> <pre><code>本地电脑(中国) → 海外VPS → HTTP代理 → 目标网站 </code></pre> <p>听起来是不是很合理?我当时也是这么想的。</p>

2025/6/19
阅读更多

PVE DataCenter Manager 端口号跳转错误修复

<p>我有好几个集群,用 <code>PVE DataCenter Manager</code> 管理的时候,发现跳转有 bug。</p> <p>比如我用 <code>https://pve.xxxx.com</code> (不用 8006 端口号),我在前端点 <code>Open WebUI</code> 跳转自动给我带上了 8006。</p> <p>解法是登录到服务器,修改 <code>/usr/share/javascript/proxmox-datacenter-manager/index.hbs</code>,在 <code>head</code> 标签下面加入这个 <code>script</code> 标签。</p>

2025/4/16
阅读更多

k8s + jenkins + gitlab 触发器

<h2>背景</h2> <p>因为工作需要,需要在一台新集群上部署 jenkins + k8s agent 并结合 gitlab 做一下自动流水线,最后也发部到 k8s 中。</p> <p><img src="https://pic.mereith.com/2025/04/11/lark.png" alt=""></p>

2025/4/11
阅读更多

【转载】没有编程生产力这样的东西

<blockquote> <p>颇有感触,记录一下。 转载自: <a href="https://www.benrady.com/2012/11/theres-no-such-thing-as-software-productivity.html">theres-no-such-thing-as-software-productivity</a></p> </blockquote> <p>正如马丁·福勒(Martin Fowler)所观察到的那样,程序员的编程生产力无法有效地衡量,因为它不存在。</p> <p>软件开发并不是一项必然会产生任何东西的活动。</p> <p>假设你有两个开发人员在同一个项目上工作,并且偶然地,他俩在同一天接受了相同的任务。</p> <p>甲写了一个1000行的框架,完美地解决了这个问题。代码编写良好,并经过充分测试,每一步都有详细记录。</p> <p>乙则是当天去了公园,一边喂鸽子一边思考问题,然后漫步回到办公室,删除了100行代码,部署了更改......问题就解决了。</p> <p>请问谁的生产力更高?</p> <p>回答是,这不重要。重要的是乙解决了问题,同时降低了团队的长期维护成本。甲也解决了这个问题,但是他通过增加代码,增加了维护成本,因此(在其他条件相同的情况下)他的解决方案较差。</p> <p>我们能说,乙具有更高的生产力吗?显然,很难找到编程生产力的正确衡量指标。</p> <p>我认为,优秀的软件开发者所做的就是解决问题。但是,生产力的衡量指标,比如代码、文档、数据等等,都只是解决问题的工具,并不是解决问题本身。</p>

2024/12/23
阅读更多

【后续】居然被 ddos 了

<p>书接上文,被攻击后最终我决定举报!</p> <p><a href="https://www.189.cn/suggestions/index.html">电信举报地址</a></p> <p><img src="https://pic.mereith.com/2024/11/19/202411192024855.png" alt=""></p> <p>没想到效率非常高,很快就给了电话反馈,我也短信告知了 ip。</p> <p>保险期间,我把七牛云的 CNAME 给取消了,但是奇怪的事情来了。</p> <p><strong>过了 3天,我的七牛云还在受攻击,而且基本上只有那一个 ip 在打</strong></p> <p>不是,大哥,我 dns 都切走了,你 dns 缓存不刷新的吗?人家都不访问了,怎么只有你访问???</p> <p>到这里我基本可以判断,大概率是 CDN 厂商自己搞得事情,那我就不爽了呀。</p> <blockquote> <p>最后我换成了自建 minio 图床(一主一备),上了 waf (雷池)防火墙🫡,关了我 vps 所有多余的端口,关闭了 icmp 协议</p> </blockquote>

2024/11/19
阅读更多

居然被 ddos 了

<p>笑死,我居然被 ddos 了。 我把图床放对象存储加了 cdn,前几天发现流量狂涨,发现是一个江苏电信的 ip 一直打请求。 于是我就把它拉到黑名单了,过了两天发现换了个 ip 又开始给我打。</p> <p><img src="https://pic.mereith.com/img/7e64fd7d1e6bc1f646175f6b107c51a8.Google%20Chrome%202024-11-15%2023.53.41.webp" alt="Google Chrome 2024-11-15 23.53.41.png"></p>

2024/11/15
阅读更多

Tagger - 让版本标签管理更简单

<h1>Tagger - 让版本标签管理更简单</h1> <p>平时开发经常需要根据特定的 tag 来触发 github/gitlab/jenkins 流水线,但是版本管理比较麻烦,手动找 tag 经常搞得很随意,也不想每一个项目都配置一遍脚本,于是就写了个通用的工具(下面的文章主体是 AI 根据项目 README 生成的 👍)。</p> <blockquote> <p>项目地址: https://github.com/Mereithhh/tagger</p> </blockquote> <p><img src="https://pic.mereith.com/img/tagger.gif" alt=""></p>

2024/11/7
阅读更多

openclash 开启后端口转发失效

<p>最近看了一下我服务的访问日志,发现 ip 都是内网的 ip,经过一番排查总算是修好了,心路历程记录一下。</p>

2024/4/26
阅读更多

nextjs 启动时执行代码

<p>在 <code>Next.js</code> 的 <code>next.config.js</code> 文件中开启 <code>experimental.instrumentationHook</code> 功能,然后在项目根目录创建 <code>instrumentation.ts</code> 文件,并在其中导出一个 <code>register</code> 函数。这个 <code>register</code> 函数会在 <code>Next.js</code> 服务启动时被执行。</p> <blockquote> <p><a href="https://nextjs.org/docs/app/api-reference/file-conventions/instrumentation">官方文档</a></p> </blockquote> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-comment">// next.config.js</span> <span class="hljs-keyword">const</span> nextConfig = { <span class="hljs-attr">experimental</span>: { <span class="hljs-attr">instrumentationHook</span>: <span class="hljs-literal">true</span>, }, } <span class="hljs-variable language_">module</span>.<span class="hljs-property">exports</span> = nextConfig </code></pre> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-keyword">export</span> <span class="hljs-keyword">async</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">register</span>(<span class="hljs-params"></span>) { <span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">&quot;do something&quot;</span>) } </code></pre>

2024/4/10
阅读更多

买了太多VPS不知道干什么,干脆做个网站

<p>如题,我有一堆 VPS。节选如下:</p> <p><img src="https://pic.mereith.com/img/33062f85a215506c66137dff882a629f.image.webp" alt="image.png"></p> <p>最近压力大,就喜欢逛论坛,看到优惠的 vps,就想买一台。但问题是我买这么多我干啥用啊?</p> <p>干脆做个评测站吧……</p>

2024/3/14
阅读更多

juhost Level-1 测评

<p>最近上头买了一堆小鸡,实际上没啥用,不如做点测评,供大家参考:</p> <h2>简介</h2> <p>测评时间:2024-03-06 18:13:31</p> <ul> <li><a href="https://members.juhost.com/aff.php?aff=372">购买链接(含aff)</a></li> <li>产品:Level-1</li> <li>2.99刀,要啥自行车。 6折优惠码 <code>helloworld</code>(3月30日前有效)</li> </ul>

2024/3/6
阅读更多

VMISS CN - Hong Kong - BGP II 测评

<p>最近上头买了一堆小鸡,实际上没啥用,不如做点测评,供大家参考:</p> <h2>简介</h2> <p>测评时间:2024-03-06 07:24:15</p> <ul> <li><a href="https://app.vmiss.com/aff.php?aff=758">购买链接(含aff)</a></li> <li>产品:CN - Hong Kong - BGP II</li> <li>月付差不多 22 人民币,性价比还可以,8折优惠码: 20%off</li> </ul>

2024/3/6
阅读更多

VMISS JP - Tokyo - BGP 测评

<p>最近上头买了一堆小鸡,实际上没啥用,不如做点测评,供大家参考:</p> <h2>简介</h2> <p>测评时间:2024-03-06 07:22:06</p> <ul> <li><a href="https://app.vmiss.com/aff.php?aff=758">购买链接(含aff)</a></li> <li>产品:JP - Tokyo - BGP</li> <li>月付差不多 22 人民币,性价比还可以,8折优惠码: 20%off</li> </ul>

2024/3/6
阅读更多

VMISS CN - Hong Kong - BGP - AMD 测评

<p>最近上头买了一堆小鸡,实际上没啥用,不如做点测评,供大家参考:</p> <h2>简介</h2> <p>测评时间:2024-03-06 07:20:12</p> <ul> <li><a href="https://app.vmiss.com/aff.php?aff=758">购买链接(含aff)</a></li> <li>产品:CN - Hong Kong - BGP - AMD</li> <li>月付差不多 22 人民币,性价比还可以,8折优惠码: 20%off</li> </ul>

2024/3/6
阅读更多

HomeLab 的终点是

<p>HomeLab 的终点是 IDC,所以我卖掉了我的 homelab(还没卖出去),找了个机房,直接托管去了。<br> 为啥不搞 homelab 了</p> <ul> <li>因为我家总是偶尔停电,每次都怕丢数据</li> <li>虽然有公网 ip,但是不给开80,443端口,还是动态 ip,得 ddns ,麻烦,难堪大用</li> <li>云服务器太贵了,自己托管便宜,带宽高</li> <li>以前云服务器,年年被迫迁移,真的不想再折腾了</li> <li>以后搬家,也不用考虑服务器的问题,也不吵了</li> </ul>

2023/11/20
阅读更多

最近在做的事情

<p>已经有好久没更新博客了,今天有时间,随便写一写</p> <h2>最近在做什么</h2> <p>其实绝大部分时间还是在工作😂,现在的工作每天10点到晚上10点,到家要10点半了,然后洗洗睡觉,周六常态化加班。 我也想多搞点好玩的东西,但大部分空闲时间,不是特别想打开电脑。</p> <h2>关于 vanblog 更新</h2> <p>先立 flag,我从没打算放弃 vanblog。这几个月的停更,一方面是因为工作确实很忙;另一方面是每天想着更新让我很有压力,我想休息一阵子。</p> <p>有时候看看 issue,看看反馈群里的问题,不知不觉时间就过去了。但回过头来,我真的做了什么事情吗?</p> <ul> <li>大多数反馈的问题,其实都可以自己找到答案</li> <li>提 bug 或者 feature 的,我暂时也没时间更新</li> <li>收到大家的 push(催功能),让我很有压力</li> </ul> <p>其实核心就是,之前很忙,我想休息一下。写 vanblog 的过程应该是快乐的,我不想带着压力去写。</p> <p>我感觉现在自己休息的还 ok,所以接下来一段时间会陆续回复更新的。</p>

2023/11/20
阅读更多

手撸一个nodejs分布式爬虫,还要可视化

<p>曾经我最开始入编程就是从爬虫开始的,后来很久都么接触过相关的技术。最近我有一堆 vps 闲置,配置都不高,不知道干什么用,好像就是 ip 资源比较值钱,为啥不做个爬虫呢?</p> <p>它必须是分布式的,比如有日志,有重试机制,有任务管理,有可视化看板,还要能检测源站状态。</p> <p>以前其实学过一些爬虫框架,但现在我想试试以目前的水平能不能手撸一个,毕竟温习原来的框架也需要时间不是。</p> <p>断断续续写了大半天,写完了,还配了个看板,大概这样子:</p> <p><img src="https://pic.mereith.com/img/b1079a16dd6ff94ae9d08ee52b0e1d69.spider.webp" alt="spider.png"></p> <p>写完了盯着自己的看板,一种成就感不予言表。 不知不觉我好像真的具有了用代码来完成一整个事情的能力🤨(以前只能完成某件事的一部分),所以写一篇文章纪念一下。</p>

2023/6/30
阅读更多

HomeLab 分享

<p>作为一名从初中就开始自己装机的垃圾佬,工作之后当然要组一台服务器放家里了!(不然为什么我们两个人我要租三居室,当然是一个拿出来做书房放🐔箱了呀!)</p> <p><img src="https://pic.mereith.com/img/31030104a2ee8cb11bb4ae5b7848589d.image.webp" alt="image.png"></p>

2023/6/28
阅读更多

我的个人工作流——开源项目推荐

<p>没事的时候我经常会翻翻 github 有什么新鲜的开源项目,部署下来把玩一番,不知不觉发现我平时的学习工作生活已经离不开它们了。<br> 而经过一番折腾,我也形成了具有我个人特色的一套工具体系,或者说工作流? 本文稍微总结一下我是怎么管理我折腾/开发中所需要的各种工具的。</p>

2023/6/28
阅读更多

动手写一个超简单的编译器

<p>不知不觉已经写了两年代码了,每过一阵子回头看看原来的代码,都觉得有不少值得改进的地方,这真是一件高兴的事。<br> 原来我从来不会关心编译原理这种东西,感觉离自己很远,但做项目的过程中,操作了一些 AST,杂七杂八的接触过一些相关的知识,又发现了一个很好的教程,就跟着写了一遍,颇有收获。<br> 在此把大概的步骤和思路记下来。</p> <blockquote> <p>教程: <a href="https://citw.dev/tutorial/create-your-own-compiler">Create Your Own Compiler</a><br> 代码: https://github.com/Mereithhh/simple-compiler</p> </blockquote>

2023/6/28
阅读更多

safari 插件开发 Safari Extensions Preferences 按钮无响应

<p>全局搜索 <code>extensionBundleIdentifier</code>,把它改成正确的值就好了。</p> <blockquote> <p>参考资料:<a href="https://stackoverflow.com/questions/73824045/quit-and-open-safari-extension-preferences-button-not-working-while-converti">&quot;Quit and Open safari extension preferences&quot; button not working. (While converting Chrome extension to Safari Web Extension)</a></p> </blockquote>

2023/6/28
阅读更多

设置移动端软键盘回车按钮文案

<blockquote> <p><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/enterkeyhint">mdn 相关文档</a></p> </blockquote> <p>可以通过标签 <code>&lt;textarea/&gt;</code> 或 <code>&lt;input/&gt;</code> 的 <code>enterkeyhint</code> 属性来控制:</p> <table> <thead> <tr> <th>关键字</th> <th>文案描述</th> </tr> </thead> <tbody> <tr> <td>enter</td> <td>回车</td> </tr> <tr> <td>done</td> <td>完成</td> </tr> <tr> <td>go</td> <td>前往</td> </tr> <tr> <td>next</td> <td>下一个</td> </tr> <tr> <td>previous</td> <td>上一个</td> </tr> <tr> <td>search</td> <td>搜索</td> </tr> <tr> <td>send</td> <td>发送</td> </tr> <tr> <td>enter</td> <td>回车</td> </tr> </tbody> </table>

2023/6/28
阅读更多

nginx proxy manager 非标准端口反代 Host 不对

<p>我自己家的用了 <code>nginx proxy manager</code> 作为提供服务的统一出口,因为没办法用 <code>443</code> 端口,所以用的 <code>8443</code>,也没改 <code>nginx proxy manager</code> 的默认端口,直接路由器端口转发到了 <code>8443</code> 上,这时候其实 <code>Host</code> 的请求头是错误的。</p> <p>具体而言会导致我用最新版本的 <code>code-server</code> 的 <code>origin</code> 校验失败,报错 <code>1006</code>,因为 <code>host</code> 端口号不对。</p>

2023/4/27
阅读更多

监控 k8s ingress 自动添加域名 DNS 解析

<p>平时有时候会突然想写一个小网页,或者部署一个服务到集群里,但添加解析让我很苦恼。我需要手动去 Dnspod 扫码登录,然后点击我的域名,然后点添加,一套下来很繁琐。</p> <p>能不能让 k8s 的 ingress 有变化的时候,自己添加域名解析啊?这样配合 Traefik Ingress 来自动签发证书,我就能解放很大一部分的双手了。</p> <p>(实际上我现在使用 Rancher 来管理我的几个集群,如果上面的能实现,那我完全可以图形化的页面里点点点,一套服务就创建好了,想想就很好)</p> <h2>思路</h2> <p>我没找到现成的工具,那就自己写一个吧,大概的需求和思路是这样的:</p> <ol> <li>监控 K8S ingress 的变化</li> <li>找到对应 ingress 对应的 service</li> <li>找到对一个 service 的 pod,看一下 pod 在哪个节点上</li> <li>给对应的节点和 ingress 对应的域名增加一条解析</li> </ol>

2023/4/25
阅读更多

使用 ingress 注解给 traefik ingress 添加中间件

<p>我自己的集群一直都用的 <code>traefik ingress controller</code>,感觉挺好用的, 还能自动签发管理 <code>https 证书</code>。<br> 然后我一般都用 <code>rancher</code> 图形化的管理我的服务,很少手动去写 <code>yaml</code> 了,所以 <code>ingress</code> 我也是直接图形化创建的,这时候想用中间件,就需要用 <code>ingress 注解</code>的方式了。</p> <h2>注解规则</h2> <p>比如我有一条 <code>ip-whitelist</code> 的中间件,在 <code>default</code> 命名空间,那就这么写 <code>ingress</code> 注解:</p> <pre><code>traefik.ingress.kubernetes.io/router.middlewares: &quot;default-ip-whitelist@kubernetescrd&quot; </code></pre> <p>没错,就是 <code>&lt;命名空间&gt;-&lt;中间件名字&gt;@kubernetescrd</code></p>

2023/4/25
阅读更多

使用流水线功能为文章添加固定结尾

<p>:::info{title=&quot;流水线功能&quot;}<br> 自从 VanBlog v0.49.0 后,增加了流水线功能。</p> <p>流水线功能允许用户在自定义的事件发生后执行任意的自定义 js 代码,甚至改写事件的结果。<br> :::</p> <p>我们可以利用这个功能,在每次文章发布前,自动追加一些自我介绍信息,或者是推荐文章。在这个例子中,我们使用流水线功能,在文章末尾自动追加下面的内容:</p> <blockquote> <p>Powered By VanBlog</p> </blockquote>

2023/3/21
阅读更多

为 VanBlog 添加一个小挂件

<p>自 <code>v0.29.0</code> 后,<code>VanBlog</code> 支持了<a href="https://vanblog.mereith.com/feature/advance/customizing.html">客制化功能</a>,可自定义 HTML、CSS 或 JS 代码。利用这个功能可以实现很多有意思的东西,比如加一个 <a href="https://github.com/dsrkafuu/sakana-widget">Sakana! Widget</a> 挂件。</p> <h2>效果 C#</h2> <p><img src="https://blog-demo.mereith.com/static/img/5543e1fcfee016fd2c5cc9f2570d4847.image.png" alt="image.png"></p>

2023/3/18
阅读更多

如何正确停止 NodeJS 子进程

<h2>前因</h2> <p>最近在写这个 <a href="https://vanblog.mereith.com">博客项目</a> 的时候,因为内嵌了 <code>waline.js</code> 作为子进程,所以有时候需要停止子进程并重启(传递给子进程新的配置)</p> <p>但正常通过 <code>childprocess.exit()</code> 时,发现并没有完全退出,重启会报错 <code>端口被占用</code></p>

2022/9/1
阅读更多

因为选择艰难症,自己写了一套开源博客系统

<p><img src="https://pic.mereith.com/img/1d0dd6572d4487e30d2366b6836eae61.%E5%90%88%E5%B9%B6.png" alt="合并.png"></p> <blockquote> <p>项目主页: <a href="https://vanblog.mereith.com">https://vanblog.mereith.com</a><br/><br> 开源地址: <a href="https://github.com/mereithhh/van-blog">https://github.com/mereithhh/van-blog</a><br/><br> Demo 站: <a href="https://blog-demo.mereith.com">https://blog-demo.mereith.com</a><br/><br> 喜欢的话可以给个 star 哦 🙏</p> </blockquote>

2023/6/30
阅读更多

让威联通、pve 共享 ups 实现断电关机

<p>我租的房子有时候电器功率大了会跳闸,为了防止意外买了一台 UPS,但是一直没配自动关机。 直到出门在外超时强制断电了,才直到自动关机的重要性。</p>

2022/8/16
阅读更多

Ubuntu 配置 samba

<p>在内网搭建了一个专门写代码的服务器,想共享一下目录到 windows 电脑会方便一点。</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>apt install samba -y <span class="hljs-comment"># 仿照案例增加一项配置,可写的话需要配置 writeable = yes 和 valid users = root</span> vim /etc/samba/smb.conf <span class="hljs-comment"># 增加用户</span> smbpasswd -a root <span class="hljs-comment"># 启动服务</span> systemctl <span class="hljs-built_in">enable</span> --now smbd </code></pre>

2022/8/13
阅读更多

antd Password 关闭自动补全

<p>加上 <code>autocomplete=&quot;new-password&quot;</code> 即可</p>

2022/8/4
阅读更多

code-server node not found

<p>在 <code>docker</code> 里脚本安装的 <code>code-server</code> 中运行 <code>code-server</code> 命令会报错:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>/usr/lib/code-server/lib/vscode/bin/remote-cli/code-server: line 12: /usr/lib/code-server/lib/vscode/node: No such file or directory </code></pre> <p>解决方法:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>whereis node <span class="hljs-comment"># 把获取的目录软连接到对应的目录即可</span> <span class="hljs-built_in">ln</span> -s /root/.nvm/versions/node/v16.16.0/bin/node /usr/lib/code-server/lib/vscode/node </code></pre> <p>或者在用 <code>deb</code> 包安装 <code>code-server</code> 也可解决(未尝试)</p>

2022/8/3
阅读更多

pve 无法启动 grub lvmid not found error

<p>买了 <code>UPS</code> 之后一致懒得配置断电自动关机,觉得自己在家马上就能恢复或者手动处理了。结果这次出门跳闸了,然后没人在家。然后 <code>pve</code> 就无法启动了。</p> <p>查了一圈百度,没啥结果。看官方文档,没啥特别好的思路。</p> <p>然后在官方论坛发现了这个帖子:</p> <p><a href="https://forum.proxmox.com/threads/upgrade-pve-6-x-to-7-x-grub-issues.92118/page-2#post-429676">https://forum.proxmox.com/threads/upgrade-pve-6-x-to-7-x-grub-issues.92118/page-2#post-429676</a></p> <p>照着做,最后一步 <code>grub-install</code> 没成功,但是其他的都成功了。</p> <p>然后开机,选择 <code>live-cd</code> 中的 <code>boot rescure</code> ,启动成功!</p> <p>妙不可言,为了方便大家,我翻一下吧</p>

2022/8/6
阅读更多

pve no quorum 错误 || 无法登录

<p>在 pve 集群中,某些些节点离线的情况下会出现 <code>no quorum</code> 错误或者无法登录的情况,这是因为 <code>pve</code> 集群采取了投票判定制,缺席节点的情况会造成投票数达不到决策要求,从而不执行相关行为报错。</p> <p>解决方法:</p> <ol> <li>使所有节点上线</li> <li>或者在好的节点中运行 <code>pvecm expected 1</code> ,改变投票表决数。</li> </ol> <p>参考:</p> <p><a href="https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_quorum">https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_quorum</a></p>

2022/8/2
阅读更多

pve Cannot Initiate CMAP Service

<p>原因是我更新其中一个节点的时候另一个节点离线了。所以 <code>corosync</code> 配置文件中两个节点的 <code>version</code> 号不一致导致的。</p> <p>解决方法: 复制好的节点的 <code>/etc/corosync/corosync.conf</code> 文件到问题节点,然后 <code>systemctl restart corosync</code> 就好了。</p>

2022/8/2
阅读更多

pve 节点删不干净

<p>由于我的一系列僵硬操作,比如在一个节点下线的时候删除另一个节点,导致节点没删干净,<code>web</code> 界面上还是有。这时候可以删除 <code>/etc/pve/nodes/</code> 下对应节点的文件夹,这样就好了。</p>

2022/8/2
阅读更多

PVE 指针(鼠标)漂移

<p>有时候会漂移,在 <code>/etc/pve/qemu-server/xxx.conf</code> 中加入:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-attr">tablet:</span> <span class="hljs-literal">true</span> </code></pre> <p>然后重新启动即可。</p>

2022/8/2
阅读更多

k8s pod 替换策略

<p>今天想给 <code>k8s</code> <code>deployment</code> 中的镜像升级一下版本。发现容器内报错 <code>lockfile 被占用</code>,是因为默认的替换 <code>pod</code> 策略会先创建新的,等新的 <code>healthy</code> 之后再删除老 <code>pod</code> ,在我的场景下是需要先删除老 <code>pod</code> 再创建新 <code>pod</code> 的。根据官方文档:</p> <blockquote> <p>如果 <code>.spec.strategy.type==Recreate</code>,在创建新 Pods 之前,所有现有的 Pods 会被杀死。</p> <p><strong>说明:</strong> 这只会确保为了升级而创建新 Pod 之前其他 Pod 都已终止。如果你升级一个 Deployment, 所有旧版本的 Pod 都会立即被终止。控制器等待这些 Pod 被成功移除之后, 才会创建新版本的 Pod。如果你手动删除一个 Pod,其生命周期是由 ReplicaSet 来控制的, 后者会立即创建一个替换 Pod(即使旧的 Pod 仍然处于 Terminating 状态)。 如果你需要一种“最多 n 个”的 Pod 个数保证,你需要考虑使用 <a href="https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/statefulset/">StatefulSet</a>。</p> </blockquote> <p>解决~</p>

2022/8/17
阅读更多

pve 重启网络

<p>在修改网关之后需要重启网络,不想重启,可以输入:</p> <pre><code>service networking restart </code></pre> <p>搞定。(PVE 7.2.3)</p>

2022/8/1
阅读更多

Dockerfile 给 Ubuntu 换源

<pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>sed -i s@/archive.ubuntu.com/@/mirrors.tuna.tsinghua.edu.cn/@g /etc/apt/sources.list sed -i s@/security.ubuntu.com/@/mirrors.tuna.tsinghua.edu.cn/@g /etc/apt/sources.list </code></pre>

2022/7/31
阅读更多

docker 内访问宿主机

<p>除了常见的使用 <code>bridge</code> 网络和宿主机 <code>ip</code> 之外,在 <code>docker 18</code> 之后的版本可以用:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>host.docker.internal </code></pre>

2022/7/31
阅读更多

docker 删除无用镜像

2022/7/31
阅读更多

用 vuepress 搭建私人知识库

<p>在平时的开发和折腾中,总会遇到各种各样的问题,踩各种各样的坑,原来是都记录在博客上的,但是发现有人搞这种专门的笔记站,感觉不错,所以我也打算搞一个:</p> <h2>技术栈</h2> <ul> <li><a href="https://vuepress.vuejs.org/zh/">vue-press</a></li> <li><a href="https://vuepress-theme-hope.github.io/">vue-press-hope</a></li> </ul>

2022/7/31
阅读更多

混合云部署k3s集群(基于wireguard)

<p>之前经常撸云服务器羊毛,就想搭建 <code>k8s</code>集群,一开始手动搭建太折腾了还有小问题,后来用了<a href="https://github.com/kubesphere/kubekey">kubekey</a>,感觉占用资源太多。</p> <p>后来发现了 <a href="https://github.com/k3s-io/k3s">k3s</a> 这个好东西,占用资源低。</p> <p>后来发现了 <a href="https://www.wireguard.com/">wireguard</a> 这个好东西,混合云组网神器。</p> <p>后来发现了 <a href="https://github.com/gravitl/netmaker/">network-manager</a> 这个好东西,wireguard 组网神器。</p> <p>那就搞吧!</p>

2022/8/9
阅读更多

js 防抖节流中的 this 与箭头函数

<h2>参数问题</h2> <h3>现象</h3> <p>背八股文的时候温习了一下防抖和节流的概念。于是自己随手把网上的版本试了一下,发现不行:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-tag">&lt;<span class="hljs-name">body</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">id</span>=<span class="hljs-string">&quot;debounce&quot;</span>&gt;</span>防抖测试<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">script</span>&gt;</span><span class="language-javascript"> <span class="hljs-keyword">function</span> <span class="hljs-title function_">debounce</span>(<span class="hljs-params">fn, delay</span>) { <span class="hljs-keyword">let</span> timer = <span class="hljs-literal">null</span>; <span class="hljs-keyword">return</span> <span class="hljs-keyword">function</span> (<span class="hljs-params"></span>) { <span class="hljs-built_in">clearTimeout</span>(timer); timer = <span class="hljs-built_in">setTimeout</span>(<span class="hljs-function">() =&gt;</span> { fn.<span class="hljs-title function_">apply</span>(<span class="hljs-variable language_">this</span>) }, delay) } } <span class="hljs-variable language_">document</span>.<span class="hljs-title function_">querySelector</span>(<span class="hljs-string">&quot;#debounce&quot;</span>).<span class="hljs-title function_">addEventListener</span>(<span class="hljs-string">&quot;click&quot;</span>, <span class="hljs-title function_">debounce</span>(<span class="hljs-function">(<span class="hljs-params">ev</span>) =&gt;</span> { <span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(ev) }, <span class="hljs-number">500</span>)) </span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">body</span>&gt;</span> </code></pre> <p>控制台会打印 <code>undefined</code>。</p>

2022/7/31
阅读更多

Node.js 流式编程

<h2>可读流</h2> <p>可读流是<strong>生产数据</strong>用来供程序消费的流。举例:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-keyword">const</span> rs = fs.<span class="hljs-title function_">createReadStream</span>(filePath); process.<span class="hljs-property">stdin</span>.<span class="hljs-title function_">pipe</span>(process.<span class="hljs-property">stdout</span>); </code></pre>

2022/7/26
阅读更多

nginx 301 问题

<p>在起项目用<code>nginx</code>反代的时候,会发现出现意料之外的<code>301</code>,把需要或者不需要的端口号带上。</p> <h2>现象</h2> <p>使用 <code>vanblog</code> 的镜像时使用<code>-p 2333:80</code>,那么:</p> <ol> <li>使用 http://域名:2333 可以正常访问</li> <li>使用 http://域名:2333/admin 无法访问,具体体现为:该请求会返回 301 重定向,Location 为 http://域名/admin</li> </ol>

2022/7/26
阅读更多

css 实现展开收起动画

<p>参考: <a href="https://www.cnblogs.com/WindrunnerMax/p/14346468.html">CSS 实现展开动画</a></p> <p>展开收起效果是比较常见的一种交互方式,通常的做法是控制 display 属性值在 none 和其它值之间切换,虽说功能可以实现,但是效果略显生硬,所以会有这样的需求——希望元素展开收起能具有平滑的效果。</p>

2022/7/26
阅读更多

关于我重写了三次博客项目这件事

<h2>闲话</h2> <p>我喜欢写博客,或者说喜欢有这么一个地方。因为哪怕平时不怎么写,但是有时候看到的好东西偶尔会想着有个放过来。</p> <p>第一次知道个人博客这个东西是刚上大学,那时候搜索一些代码相关的问题,偶尔会搜到别人的博客里,就感觉好酷啊。 在互联网上有这么一个地方,可以抒发自己的见解并且分享知识。于是那时候搜索一番,用<code>hexo</code>写了第一篇博客:</p> <blockquote> <p><a href="https://www.mereith.com/post/129#heading-0">OpenWrt/LEDE 内网转发ipv6</a> 。</p> </blockquote> <p>后续零零散散写了一些,但发现有些不方便:每次写完必须构建然后发布,然后刷新 <code>CDN</code> ,而且很大程度上我必须用常用的那一台电脑写,不然我就要重装环境(那时候还没有 <code>codespace</code>)。</p>

2022/7/24
阅读更多

css flex 布局超出隐藏

<pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-selector-class">.fathor</span> { <span class="hljs-attribute">display</span>: flex; } <span class="hljs-selector-class">.son1</span>{ <span class="hljs-attribute">flex</span>: <span class="hljs-number">1</span>; <span class="hljs-attribute">overflow</span>: hidden;} </code></pre> <p><a href="https://juejin.cn/post/6844904012794298375">其他参考</a></p>

2022/7/21
阅读更多

css 隐藏滚动条

<pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-selector-class">.demo</span>::-webkit-scrollbar { <span class="hljs-attribute">display</span>: none; <span class="hljs-comment">/* Chrome Safari */</span> } <span class="hljs-selector-class">.demo</span> { <span class="hljs-attribute">scrollbar-width</span>: none; <span class="hljs-comment">/* firefox */</span> -ms-<span class="hljs-attribute">overflow</span>-style: none; <span class="hljs-comment">/* IE 10+ */</span> <span class="hljs-attribute">overflow-x</span>: hidden; <span class="hljs-attribute">overflow-y</span>: auto; } </code></pre>

2022/7/21
阅读更多

css 文字超出隐藏并显示省略号

<pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-attribute">overflow</span>: hidden; <span class="hljs-attribute">text-overflow</span>: ellipsis; <span class="hljs-attribute">white-space</span>: nowrap; </code></pre>

2022/7/21
阅读更多

css 填充 svg 颜色

<p>需要使用 <code>fill: #fff</code> 才行,<code>color</code> 与 <code>background</code> 是没用的。</p>

2022/7/21
阅读更多

css 黑白滤镜

<p>可以使用:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-attribute">filter</span>: <span class="hljs-built_in">grayscale</span>(<span class="hljs-number">50%</span>); </code></pre> <p>具体可以参考 <a href="https://developer.mozilla.org/zh-CN/docs/Web/CSS/filter">MDN filter - CSS 层叠样式表</a></p>

2022/7/21
阅读更多

nginx 反代丢端口

<p>自从切换到 <code>nginx-proxy-manager</code> 之后,发现在家里用的时候对于某些服务会丢端口。</p> <p>因为家里外网不给 80 端口,一直用的 8443。</p> <p>折腾了一番发现可以追加协议:</p> <pre><code> proxy_set_header Host $host:$server_port; </code></pre> <p>因为我在路由器开了端口转发,所以强制制定了 8443 端口:</p> <pre><code> proxy_set_header Host $host:8443; </code></pre>

2022/7/21
阅读更多

docker-compose 部署 matomo 分析系统

<p>按照计划需要给博客增加分析系统,考虑到国内的网络情况,另外也想要数据完全的私有化,采用开源的 <code>matomo</code> 方案:</p> <blockquote> <p><a href="https://github.com/matomo-org/matomo">matomo-org/matomo</a><br> 但是官方文档感觉写的不是很好,很多内容零碎,需要自己找。我的需求是,通过 <code>docker-compose</code> 部署 <code>php</code> 版本的 <code>matomo</code> 和 <code>mysql</code> ,然后在外层宿主机通过 <code>nginx</code> 连接 <code>matomo 容器中的 php</code> 暴露的端口进行代理。经过一番折腾,配置如下:</p> </blockquote>

2022/7/21
阅读更多

基于 strapi 开发应用

<p>原来一直都听过 <code>strapi</code> 的大名,但是一直没深入研究,最近有时间把我的工具站分离了出来,做成一个通用的项目,后端的话也只是简单的 <code>CURD</code> 而已,不如用 <code>strapi</code> 来做。</p>

2022/7/21
阅读更多

strapi 关闭 Content Security Policy

<p>最近基于 <code>strapi</code> 开发了导航站,经过一番折腾决定把静态网页也放到 <code>strapi</code> 项目的 <code>public</code> 让 <code>strapi</code> 又当爹又当妈。</p> <p>但是发现网页的内联脚本和图片加载不出来,经过一番查询发现是因为默认 <code>strapi</code> 开启了 <code>内容安全策略</code>, 在返回头中加上了 <code>Content-Security-Policy</code> 从而限制浏览器执行内联脚本和加载其他网址的图片。</p>

2022/7/21
阅读更多

nginx 反代 rewite url

<p>之前部署 code-server 需要根据不同的路径反代不同的后端,并且还要在反代时根据正则做匹配。但一直没找到完美的方案,后来在 strapi 的文档找到了好用的配置,如下:</p> <pre><code> location /test/ { rewrite ^/test/?(.*)$ /$1 break; proxy_pass http://strapi; proxy_http_version 1.1; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection &quot;Upgrade&quot;; proxy_pass_request_headers on; } </code></pre>

2022/7/21
阅读更多

Proxmox VE 直通显卡

2022/7/31
阅读更多

ssh 通过跳板机访问目标机器

<p>有时候需要用跳板机访问机器,更安全。</p> <p>对于 <code>openssh 7.3</code> 以上的版本可以使用 <code>ProxyJump</code>, 低于 <code>7.3</code> 可以使用 <code>ProxyCommand</code></p>

2022/7/21
阅读更多

Cent os 7 安装 zsh 5.6 以上版本

<p>源码编译吧,步骤如下:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>yum groupinstall &quot;Development tools&quot; yum install ncurses-devel wget https://sourceforge.net/projects/zsh/files/zsh/5.6.2/zsh-5.6.2.tar.xz/download tar -xvJf download cd zsh-5.6.2 ./configure make make install echo &quot;/usr/local/bin/zsh&quot; &gt;&gt; /etc/shells chsh -s /usr/local/bin/zsh </code></pre>

2022/7/21
阅读更多

win11 任务栏不合并

<p>新装了 win11 ,但是总是合并任务栏就很难受。<br> 通过软件 <code>StartAllBack</code> 即可控制。</p>

2022/7/21
阅读更多

ProxmoxVE (PVE) 7.0 换源升级

2022/7/31
阅读更多

用 SOCAT 端口转发

<p>最近想把一台机器穿透到外网,先用 wireguard 做了组网,然后公网的节点直接端口转发不就完事了,参考了我 OpenWrt 使用的 SOCAT 工具,方法如下:</p>

2022/7/31
阅读更多

vim 修改文件格式为 unix

<p>最近复制 ssh 密钥的时候,连接远程机器总是提示 <code>Load key &quot;/root/.ssh/id_rsa&quot;: invalid format</code> ,这实际上就是从 windows 复制过来格式不对,可以通过 vim 修改:</p> <pre><code>:set fileformat=unix :wq </code></pre>

2022/7/21
阅读更多

bash 数组操作

<p>最近需要写一些脚本,其中一个需求就是把命令执行的结果存到一个数组,在后面遍历循环使用它,不多说直接上代码:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>array=(`./qshell listbucket2 mereith-www | awk <span class="hljs-string">&#x27;{print $1}&#x27;</span>`) len=<span class="hljs-variable">${#array[@]}</span> i=0 <span class="hljs-keyword">while</span> [ <span class="hljs-variable">$i</span> -lt <span class="hljs-variable">$len</span> ] <span class="hljs-keyword">do</span> ./qshell delete mereith-www <span class="hljs-string">&quot;<span class="hljs-variable">${array[$i]}</span>&quot;</span> <span class="hljs-comment">#echo `${array[$i]}`</span> <span class="hljs-built_in">let</span> i++ <span class="hljs-keyword">done</span> </code></pre>

2022/7/21
阅读更多

git 无法 pull 仓库refusing to merge unrelated histories

<p>在你操作命令后面加<code>--allow-unrelated-histories</code></p>

2022/7/31
阅读更多

k8s 集群 control-plane-endpoint 主机名

2022/7/21
阅读更多

git https 保存密码

2022/7/21
阅读更多

Bash 判断命令存在 & 重定向

2022/7/21
阅读更多

python 导出项目依赖

<pre><code>pip freeze &gt; requirements.txt </code></pre>

2022/7/21
阅读更多

cent os 7 安装 gcc 版本 9

<p>起项目的时候,需要编译 <code>node-gpy</code> ,但是在 cent os 7 下报错:</p> <pre><code>g++: 错误:unrecognized command line option ‘-std=c++14’ </code></pre> <p>这是因为 gcc 版本不对,需要升级。步骤如下:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>yum install centos-release-scl -y yum install devtoolset-10-gcc-c++ -y yum install devtoolset-10-toolchain -y scl enable devtoolset-10 zsh scl enable devtoolset-10 bash echo &quot;#!/bin/zsh&quot; &gt; /etc/init.d/gcc echo &quot;source /opt/rh/devtoolset-10/enable&quot; &gt;&gt; /etc/init.d/gcc chmod +x /etc/init.d/gcc </code></pre> <p>然后再编译就对了</p>

2022/7/21
阅读更多

System limit for number of file watchers reached

<p><code>linux</code> 下 <code>vscode</code> 报错,<code>System limit for numer of file watchers reached</code>,解决方法:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>echo &quot;fs.inotify.max_user_watches=524288&quot; &gt;&gt; /etc/sysctl.conf &amp;&amp; sysctl -p </code></pre>

2022/7/21
阅读更多

cent os 7 安装 git 2.x

<p>cent os 7 默认的 git 是 <code>1.9</code> 的,很不优雅,还是换成 2.x 的比较好</p>

2022/7/21
阅读更多

css 下划线中间向两边滑动效果

<pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-selector-class">.nav_item</span><span class="hljs-selector-pseudo">::after</span> { <span class="hljs-attribute">content</span>: <span class="hljs-string">&quot;&quot;</span>; <span class="hljs-attribute">width</span>: <span class="hljs-number">0</span>; <span class="hljs-attribute">height</span>: <span class="hljs-number">1px</span>; <span class="hljs-attribute">background</span>: <span class="hljs-number">#000</span>; <span class="hljs-attribute">position</span>: absolute; <span class="hljs-attribute">top</span>: <span class="hljs-number">100%</span>; <span class="hljs-attribute">left</span>: <span class="hljs-number">50%</span>; <span class="hljs-attribute">transition</span>: all <span class="hljs-number">0.5s</span>; } <span class="hljs-selector-class">.nav_item</span><span class="hljs-selector-pseudo">:hover</span><span class="hljs-selector-pseudo">::after</span> { <span class="hljs-attribute">left</span>: <span class="hljs-number">0</span>; <span class="hljs-attribute">width</span>: <span class="hljs-number">100%</span>; } </code></pre>

2022/7/21
阅读更多

linux 挂载 SMB/CIFS

<pre><code>yum install cifs-util echo &quot;//192.168.5.3/Data /mnt/nas cifs defaults,_netdev,username=mereith,password= 0 0&quot; &gt;&gt; /etc/fatab mount -a </code></pre>

2022/7/21
阅读更多

linux 清除 ACL

<p>有时候会发现 <code>ls -la</code> 执行后的权限后面有个加号,这是因为开启了 <code>ACL</code> 权限控制,可以执行以下命令关闭</p> <pre><code>setfacl -b &lt;文件名&gt; </code></pre>

2022/7/21
阅读更多

windows 命令行安装 inf 驱动

<h2>步骤</h2> <pre><code>pnputil -i -a &lt;驱动文件&gt; </code></pre>

2022/7/21
阅读更多

cent os 换源

2022/7/21
阅读更多

css 文字不可选择

<pre><code>-webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; </code></pre>

2022/7/21
阅读更多

iperf3 网络测速工具

<p>最近搞了一下家里的网,为了测试一下链接质量,使用 <code>iperf3</code>网速测试工具。</p> <h2>基本使用</h2> <h3>安装</h3> <p>直接用包管理器安装就行了。</p> <h3>服务端</h3> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>iperf3 -s </code></pre> <h3>客户端</h3> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-meta prompt_"># </span><span class="language-bash">其中带宽需要输入,不然结果会很奇怪</span> iperf3 -c &lt;服务器ip&gt; -b 1000M -n 100G </code></pre>

2022/7/21
阅读更多

k8s 1.21.3 从 docker 迁移到 containerd

<p>最近发现我的集群占用空间太多了,这样不太行啊,所以准备把容器运行时从 docker 迁移到 <code>containerd</code>。</p>

2022/7/21
阅读更多

解决Nginx安装错误:No package nginx available 问题

<p>其实问题非常明显,就是找不到包了嘛,添加新的软件仓库就好喽</p>

2022/7/21
阅读更多

从pve的硬盘里导出数据

<p>最近需要把一个pve里的虚拟机的数据导出来,但是pve本身的宿主机已经坏了,我只有pve的硬盘,这时候想导出来就麻烦点,经过多方查阅资料,方法如下:</p> <!--mode-->

2022/7/21
阅读更多

基于React/umi/egg自建博客系统

<p>我从大二开始就开始写博客了,当时只是觉得好玩,有兴趣,于是搜索了一番,决定用简单上手的<code>hexo</code>来做博客,顺便买了一个阿里云的学生服务器来放网站,那时候啥也不懂,没接触过<code>Node</code>,不会<code>Js</code>,前端也是一窍不通,<code>linux</code>倒是懂一些,可是网络技术一知半解。但随着我折腾来折腾去,逐渐摸索到了一些门道,也找到了一些乐趣,<code>nginx</code>各种配置啦,<code>cdn加速</code>、<code>sll证书</code>啦,<code>自己搭建图床</code>啦。</p> <p>而迄今为止,我正式学习前端知识也有一段时间啦,<code>hexo</code>在使用过程中也觉得有些麻烦,还要依赖特定的环境生成网页再刷新<code>cdn</code>缓存,所以我能不能自己写一个博客系统呢?包含前后端,有后台管理系统,随时随地直接就能写文章,岂不妙哉?</p> <p>于是,经过一段时间的开发,鸽,开发,测试版出炉!</p> <blockquote> <p>前端技术栈: React/Dva/Umi/Antd <br/><br> 后端技术栈: Egg.js <br/><br> 数据库: MongoDB</p> </blockquote> <p>特点:</p> <blockquote> <ul> <li>前台简洁风格,功能完善,包含文章、分类、标签、评论、统计、通知等多个功能模块</li> <li>响应式布局,自适应屏幕大小比例和设备,尽可能有好的浏览效果</li> <li>个人资料、网站数据、logo、标题、通知等均可通过管理面板设置</li> <li>后台具有完善的markdown编辑器,文章管理、存稿管理、通知管理、前台样式和数据管理功能</li> <li>服务端渲染,首屏加载速度快,支持SEO,渲染失败无损降级客户端渲染</li> <li>单页面应用,内置路由,切换页面无需刷新,动态请求数据</li> <li>数据保存到MongoDB数据库,更安全可靠,耦合性低,未来增加更多数据库支持</li> </ul> </blockquote> <p>目前能看到的这个网站就是了,测试运行中,有bug我会随时修复的。目前我正在调整修复bug,等增加了初始化功能,我会开源到github上- - 。也许有人会用?</p> <p>待办:</p> <ul class="contains-task-list"> <li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> 增加初始化功能,根据指示初始化网站,以便新人使用</li> <li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> Docker镜像构建</li> <li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> 主题系统(可切换)</li> <li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> 增加细节特效,美化网站</li> <li class="task-list-item"><input class="task-list-item-checkbox" disabled="" type="checkbox"> 后台增加访客数据统计展示图</li> </ul>

2022/9/29
阅读更多

Errors were encountered while processing

<p>在执行更新或者安装软件命令时</p> <p>sudo apt-get upgrade</p> <p>sudo apt-get install</p> <p>遇到:Errors were encountered while processing</p> <p>查看错误信息发现: not fully installed</p>

2022/7/21
阅读更多

adguardhome配合clash

<h1>思路</h1> <p>我是基于<a href="https://github.com/Hackl0us/SS-Rule-Snippet">懒人规则合集</a>中例子配置的,最后我想配合<code>adguardhome</code>进行,所以我弄了俩,一个负责<code>nameserver</code>,里面都是国内的上游DoH和DoT,然后另一个负责<code>fallback</code>里面都是国外的。然后关闭<code>fallback-filter</code>,具体可以看我的另一片文章。</p> <blockquote> <ul> <li>参考1: <a href="https://p3terx.com/archives/use-adguard-home-to-build-dns-to-prevent-pollution-and-remove-ads-1.html">使用 AdGuard Home 自建 DNS 防污染、去广告 #1 - 安装部署详解教程(Docker)</a></li> <li>参考2: <a href="https://p3terx.com/archives/use-adguard-home-to-build-dns-to-prevent-pollution-and-remove-ads-2.html">使用 AdGuard Home 自建 DNS 防污染、去广告 #2 - 优化增强设置详解教程</a></li> </ul> </blockquote>

2022/7/21
阅读更多

pve中使用LXC容器安装OMV

<p>最近优化一下家里的<code>all in one</code>,为了节约内存,决定用轻量化的<code>lxc</code>容器来替代虚拟机安装<code>omv</code>,步骤如下:</p>

2022/7/21
阅读更多

LXC直通硬盘

<p>最近优化一下家里的<code>all in one</code>,为了节约内存,决定用轻量化的<code>lxc</code>容器来替代虚拟机安装<code>omv</code>,接下来就是直通硬盘了,步骤如下:</p>

2022/7/21
阅读更多

nginx反代模版

<p>如下:</p> <pre><code>server { listen 80; server_name netdata.home.com; location / { proxy_pass http://192.168.5.4:19999; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #添加长链接支持。 proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection &quot;upgrade&quot;; } } </code></pre>

2022/7/21
阅读更多

docker常用开启容器的命令

<p>最近一直在各种机子上部署docker,有些经常用的就放这里了。</p> <h2>部署镜像</h2> <h3><a href="https://www.runoob.com/docker/centos-docker-install.html">docker安装</a></h3> <pre><code>curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun </code></pre> <h3><a href="https://documentation.portainer.io/v2.0/deploy/ceinstalldocker/">Portainer</a></h3> <h4>servere</h4> <pre><code>docker volume create portainer_data docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce </code></pre>

2022/7/21
阅读更多

PVE的LXC容器中安装Docker

<p>想单独搞个虚拟机装docker,但是为了节约资源还是在LXC容器里装吧!</p>

2022/7/21
阅读更多

ProxmoxVE系统分区相关

<p><a href="https://einverne.github.io/post/2020/11/extend-proxmox-system-partition-and-pve-file-system.html">扩展 Proxmox 系统分区以及 Proxmox 文件系统初识</a></p> <p><a href="http://it-tuff.blogspot.com/2017/11/cant-remove-final-physical-volume-from.html">Can't remove final physical volume from volume group (Linux)</a></p> <p><a href="https://www.zimrilink.com/devops/81.html">PVE硬盘直通</a></p> <p><a href="https://www.zszmm.com/archives/378/">USB硬盘挂载到PVE LXC容器使用/ Proxmox VE硬盘直通黑群晖</a></p>

2022/7/21
阅读更多

基于clash搭建旁路网关

<p>clash是强大的开源代理软件,支持在各种平台上面运行,但默认的配置是socks代理和http代理,想拿它做旁路网关还需要一些操作。</p>

2022/7/21
阅读更多

Portainer添加节点

<p>局域网里由多个docker节点需要控制,在portainer里面添加endpoint,选择docker,发现不太行。</p> <h2>解决办法</h2> <p>修改docker启动文件,<code>/lib/systemd/system/docker.service</code>,找到<code>ExecStart</code>,加一个参数<code>-H tcp://0.0.0.0:2375</code>就行了。</p> <p><strong>不要加在外网及其中</strong></p>

2022/7/21
阅读更多

linux声卡设置及录音音

<p>最近搞了个usb声卡,10块钱那种。</p>

2022/7/21
阅读更多

OpenWrt用VLAN

<p>看了两个文章,看明白了</p> <blockquote> <ul> <li><a href="https://www.cnblogs.com/parasis/p/13723912.html">怎么用OpenWrt的VLAN功能实现单臂路由(主路由),省下一个VLAN交换机</a></li> </ul> </blockquote> <blockquote> <ul> <li><a href="https://blog.csdn.net/sinat_27265739/article/details/78962035">在openwrt系统下划分vlan来隔离端口</a></li> </ul> </blockquote>

2022/7/21
阅读更多

PVE换源及去掉订阅提示和改端口

2022/7/21
阅读更多

adguardhome踩坑

<p>一定一定要单独搞一个LXC容器或者虚拟机运行,如果和其他服务跑一起了会造成奇奇怪怪的问题,很烦人。<br> 暂时懒得搞了,还是单独来一守LXC容器吧。。。。<br> 心累。</p>

2022/7/21
阅读更多

debian添加系统服务

2022/7/21
阅读更多

docker自动更新容器

<p><a href="https://p3terx.com/archives/docker-watchtower.html">大佬的博客</a></p>

2022/7/21
阅读更多

OpenMediaVault(OMV)安装Docker-Aria2

<p>最近为了文件分享,装了个OMV,据说很快就试试,SMB分享还能支持时间机器。但是为了下载方便还得整个Aria2,图省事就用docker吧!</p>

2022/7/31
阅读更多

ffmpeg音视频淡入淡出

<p>最近帮别人给视频裁切、加音轨、淡入淡出啥的,本来想用pr之类的做,但是好麻烦啊,想着如果能用ffmpeg做就好了,于是找到了如下材料:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-meta prompt_">#</span><span class="language-bash">音频淡入淡出</span> ffmpeg -i v4.mp4 -filter_complex &quot;afade=t=in:st=0:d=1,afade=t=out:st=137:d=3&quot; v5.mp4 一看就懂就不注释了 </code></pre> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-meta prompt_">#</span><span class="language-bash">视频音频合并并指定时间</span> ffmpeg -i videofile.mp4 -i audiofile.wav -t 43 output.mp4 时间持续43秒 </code></pre>

2022/7/21
阅读更多

js全屏后元素变黑

<p>最近想给自己的工具增加点击全屏功能,但是发现全屏后都黑了。<br> 我是这么全屏的:</p> <pre><code>// 全屏 $(&quot;.main&quot;).on(&quot;click&quot;,()=&gt;{ document.body.requestFullscreen(); }); </code></pre> <p>但是发现元素都黑了,是因为全屏后背景自动黑了,所以啥也看不出来了,解决办法如下:</p> <ul> <li>将白色固定为背景</li> <li>并使用z-index将其向下推</li> <li>将白色固定为html页面内容</li> <li>并使用z-index将其向上推(在背景上方)\</li> </ul> <p>它在Firefox和Chrome上有效</p> <p>css:</p> <pre><code>::backdrop { z-index:0; background-color: white !important; } html, *:fullscreen, *:-webkit-full-screen, *:-moz-full-screen { background-color: white !important; z-index:1; } </code></pre>

2022/7/21
阅读更多

通过改刷机包实现科大讯飞R1安装第三方app

<p>最近入手了一款科大讯飞R1的阅读器,安卓8.1系统,啥都好,就是不能安装第三方app,开启adb需要特殊密码,咱也搞不到,于是另辟蹊径,修改刷机包实现安装第三方app。</p> <p>下载地址:</p> <blockquote> <p><a href="https://zfile.mereith.com/1/%E8%AE%AF%E9%A3%9E">刷机包下载</a></p> </blockquote>

2024/4/18
阅读更多

js获取当前设备的电量信息及联网状态

<p>做了一个墨水屏用的番茄钟,想要显示电池状态,于是查询到以下资料。<br> API是<code>navigator</code>对象提供的:</p> <blockquote> <p>navigator.getBattery().then(function(result){});<br> 通过对<code>getBattery()</code>的调用,可以得到一个<code>promise</code>,其返回一个<code>then方法</code>,并提供一个<code>BatteryManager</code>对象:</p> </blockquote> <pre><code>BatteryManagery { charging: false, chargingTime: Infinity, dischargingTime: 8940, level: 0.59, onchargingchange: null, onchargingtimechange: null, ondischargingtimechange: null, onlevelchange: null } </code></pre>

2022/7/21
阅读更多

Proxmox VE 使用LVM新硬盘(多硬盘)

2022/7/21
阅读更多

linux下判断网卡速率

<p>直接命令: <code>ethtool ethx</code></p>

2022/7/21
阅读更多

禁用win10自动更新

2022/7/21
阅读更多

win10更新后使用京瓷打印机出现蓝屏

2022/7/21
阅读更多

Win10家庭版启用组策略

2022/7/21
阅读更多

距离考研还有36天

<p>时间过得真是快啊,还记得当初上大学的懵懂,去年考研时的酸甜苦辣,一转眼离今年考研只剩下36天了。</p> <p>最近过得还很好,除了考研这件事压在心头吧。</p> <p>我有了很棒的女朋友陪我,不再孤单,以前还想过自己会不会单身一辈子,现在想想真的是,谈恋爱的快乐是那时候体会不到的吧哈哈哈哈。</p> <p>虽然会迷茫会有压力,但到目前为止也没有啥退路了,只能一往无前,希望我能考上吧,这样可以按照预定的轨迹前进,不然日子就很难了。</p> <p><strong>加油!考研人</strong></p> <p><strong>加油!考研人</strong></p> <p><strong>加油!考研人</strong></p> <p>PS1:等考完研我一定自己写个博客系统……老用hexo还是挺麻烦的</p> <p>PS2:顺便在做几个沙雕视频和开箱视频!</p> <p>PS3:没错和老婆的旅行vlog也可以搞搞!</p> <p>PS4:还有多年积攒的日本vlog!</p> <p>PS5:要发售了,不知道如果我和老婆住在一起会不会也要把他当路由器来买呢……</p>

2022/7/21
阅读更多

powershell映射网络驱动器

<p>最近搭建<code>emby</code>需要挂在网络驱动器,但是用的精简版的win10,没办法通过系统的工具挂载(被阉割了),所以想到用<code>powershell</code>实现</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-meta prompt_"># </span><span class="language-bash">adjust path to point to your file share</span> <span class="hljs-meta prompt_">$</span><span class="language-bash">UNCPath = <span class="hljs-string">&#x27;\\server\share&#x27;</span></span> <span class="hljs-meta prompt_">#</span><span class="language-bash">方法一</span> net use * $UNCPath <span class="hljs-meta prompt_">#</span><span class="language-bash">方法二</span> New-PSDrive -Name y -PSProvider FileSystem -Root $UNCPath -Persist <span class="hljs-meta prompt_">#</span><span class="language-bash">方法三</span> New-SmbMapping -LocalPath &#x27;x:&#x27; -RemotePath $UNCPath </code></pre> <p>Net.exe 是最多功能的方法,在 PowerShell 的所有版本中都有效。通过传入一个 “*”,它自动选择下一个有效的驱动器盘符。</p> <p>New-PSDrive 从 PowerShell 3 起支持 SMB 共享。</p> <p>New-SmbMapping 需要 SmbShare 模块并且现在看来有点古怪:重启后才能在 Windows Explorer 中显示该驱动器。</p>

2022/7/21
阅读更多

python提前捕捉头脑王者2答案

<p>最近和女票玩头脑王者2打发时间,因为比较菜被鄙视了,就想着如何才能用技术来搜索答案。经过查阅资料发现,头脑王者2通过<code>WebSocket</code>通信中会在<code>题目出现前</code>直接发送客户端答案和题目,所以我们只要通过监控数据包提取数据就可以提前知道答案了。</p> <h2>mitmproxy抓包工具</h2> <p><a href="https://mitmproxy.org/">mitmproxy</a>是一个支持HTTP和HTTPS的抓包程序,有类似Fiddler、Charles的功能,并且可以通过python调用来编程实现特定的功能,非常好用。</p> <blockquote> <p>使用方法参考:<a href="https://juejin.im/post/6844903588645322760">App爬虫神器mitmproxy和mitmdump的使用</a></p> </blockquote> <p>注意:在电脑上可能因为是本机,在我的win10系统上抓取微信pc客户端小程序的<code>WebSocket</code>通讯失败了,经过测试,在<code>ios</code>系统上添加证书可以正常抓取<code>https,wss</code>等数据,在<code>android</code>系统上,无论是否大于7.0,添加根证书root信任之后也没法正确抓取<code>wss</code>但是<code>https</code>可以,而网上流传的用老版本微信因为微信会提示更新用不了所以也无法使用了,最后只能用我的<code>ios14</code>的<code>iphone11</code>抓包。</p> <h2>原理</h2> <ol> <li>mitmweb抓取微信小程序的数据流</li> <li>分析判断数据流,抓取需要的题目和答案数据</li> <li>输出到屏幕上并调用win10的语音朗读读出答案</li> </ol> <h2>代码实现</h2> <h3>环境</h3> <blockquote> <p>python3.8<br> mitmproxy (我用pip安装的)<br> msgpack (用来解码序列数据)<br> win32com (调用朗读人)</p> </blockquote> <h3>运行方式</h3> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>mitmweb --<span class="hljs-built_in">set</span> http2=false -s run.py <span class="hljs-comment"># 为了抓取成功避免错误需要加上http2=false参数</span> </code></pre> <h3>运行效果</h3> <p><img src="https://pic.mereith.com/img/b51d6de44796ad94ad7eaf568a5e192.jpg-slim" alt=""></p> <p><img src="https://pic.mereith.com/img/a7f4552e8dfee8046ffd0892950fa4e.jpg-slim" alt=""></p> <p><em><strong>另外一说这个游戏会给你匹配电脑来玩,到最后冲榜一的时候,和我一起的小伙伴根本就没在玩,电脑虚拟了它的数据变成了我的队友,这种情况还有很多,我就觉得不可能玩家啥时候都能匹配到啊,所以这个游戏随便玩玩就好了,不要太认真,非要冲榜请写个自动化操作的,不要自己肝,不值得</strong></em></p>

2023/2/17
阅读更多

PVE设置硬盘直通

2022/7/21
阅读更多

PVE导入img磁盘镜像

<h2>上传</h2> <p>用pve实现软路由时经常需要导入img镜像作为磁盘,方法很简单,先把它上传到<code>local</code>中。</p> <p>上传之后默认在<code>/var/lib/vz/images/</code></p> <h2>导入</h2> <p>假设导入的<code>vm ID</code>为<code>100</code>,镜像为<code>openwrt.img</code></p> <pre><code>qm importdisk 100 openwrt.img local-lvm </code></pre>

2022/7/21
阅读更多

ffmpeg音视频处理

2022/7/21
阅读更多

intel ax200ngw刷killer 1650x教程

<p>参考:</p> <p><a href="https://bbs.luobotou.org/thread-45955-1-1.html">[折腾] 把 Intel AX200 系列网卡刷成 Killer AX1650 系列网卡教程 最简方法</a><br> 的全部<br> +<br> <a href="https://blog.csdn.net/u014390186/article/details/103423636">intel ax200ngw刷killer 1650x教程</a><br> 的第七步开始</p>

2022/7/21
阅读更多

我的世界服务器及MCSM面板搭建

<p>参考:<a href="https://blog.vlssu.com/views/tutorials/2019/121202.html">我的世界MCSM面板搭建</a></p>

2022/7/21
阅读更多

powershell解压缩文件

2022/7/21
阅读更多

powershell更改文件权限

<p>最近在压缩文件夹的时候,发现有几个文件不得劲,总是权限不允许,用管理员身份运行也不太行,遂用<code>powersehll</code>改一下权限</p>

2022/7/21
阅读更多

用nvm来管理node版本

<p>有时候,我们在实际开发应用中经常需要切换node版本,我们用<code>nvm</code>工具就可以做到哦</p>

2022/7/21
阅读更多

ubuntu安装code-server添加证书并反代

<p>最近捣鼓一堆服务,经常要ssh连上服务器,然后一顿<code>vim</code>、<code>cp</code>、<code>mv</code>之类的,很烦,之前捣鼓过<code>code-server</code>(现在版的vs code),又捣鼓了一下,直接用它来在线编辑文本,执行代码,捣鼓东西美滋滋呀!</p> <p>而且我的ipad还可以直接用。这样我就可以用它直接来写<code>hexo</code>博客了,写完直接生成就用,反正都在一个服务器上不是,妙!</p>

2022/7/21
阅读更多

nginx反向代理上传文件报错

<p>最近捣鼓了一下我的世界,弄了个控制面板然后用nginx反代,但是用控制面板带的文件管理上传文件时总是报错。<br> 在nginx反代配置文件加上如下内容即可解决:</p> <pre><code>client_max_body_size 1000m; </code></pre>

2022/7/21
阅读更多

openwrt旁路由踩坑

<p>假期在家待很久,有一些特殊的上网需求,为了实现所谓的透明代理(省事效率高)所以采用软路由的方案。用的是学校带回来的双千兆D2550主板,装了个<code>openwrt</code></p>

2022/7/31
阅读更多

powershell禁止运行脚本

<p>最近写了点脚本,老出现这个就很烦。解决方法如下:</p> <p>管理员打开ps,运行:</p> <pre><code> set-executionpolicy remotesigned </code></pre> <p>选<code>Y</code>即可。</p>

2022/7/21
阅读更多

nginx禁止直接通过ip访问

<p>为了安全性,我们常常需要避免直接通过ip地址进行http(s)访问</p>

2022/7/21
阅读更多

debian10安装java

<p>最近开始玩我的世界了,想给我的chromebook也装一个玩玩,但是因为里面的linux容器时debian10的,而apt直接装的openjdk没有 <code>javaFX</code>,没办法运行HMCL启动器,折腾了一番,还是装 <code>oracle</code>的官方java吧。但是网上找的有些添加仓库的,<code>debian10</code>没法用添加仓库的命令,只好从官网下载安装了。</p>

2022/8/5
阅读更多

Ubuntu/Debian挂载ntfs硬盘

<p>1.安装软件:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>sudo apt install ntfs-3g </code></pre> <p>2.查看硬盘名字</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>fdisk -l </code></pre> <p>找到要挂载的磁盘,记住他的设备名,例如<code>/dev/sda1</code></p> <p>3.挂载硬盘</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-comment">#创建挂载目录</span> sudo <span class="hljs-built_in">mkdir</span> /mnt/hdd0 <span class="hljs-comment">#挂载硬盘</span> sudo ntfs-3g /dev/sda1 /mnt/hdd0 </code></pre> <p>4.开机自动挂载<br> 打开<code>/etc/fstab</code>,添加如下内容:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>/dev/sda1 /mnt/hdd0 ntfs-3g defaults,locale=zh_CN.UTF-8 0 0 </code></pre>

2022/7/21
阅读更多

screen命令手册(转)

<p><a href="https://man.linuxde.net/screen">原文链接</a></p> <p>有时候我们ssh连接了服务器,但是一退出上面的任务也就终止了,为了退出的时候任务也能保留在后台运行,可以用<code>screen</code>命令来实现</p>

2022/7/21
阅读更多

MongoDB的基本概念、安装及用户权限配置

<p>最近爬数据处理数据,数据量有几百万条有点大,总是用<code>json</code>还是不方便,于是转向了<code>MongoDB</code>,下面把我的配置心得说一下。</p>

2022/7/21
阅读更多

Python操作MongoDB

<p>主要参考(抄袭)自:<a href="https://juejin.im/post/5addbd0e518825671f2f62ee#heading-5">Python操作MongoDB看这一篇就够了</a></p>

2022/7/21
阅读更多

ubuntu/debian安装文泉驿字体

<p>最近在树莓派上弄3.5寸屏幕,想用<code>PyQt5</code>编写一个好看的ui,但是字体是个坑,但其实可以直接使用<code>apt</code>安装中文字体,例如安装<code>文泉驿体</code>命令:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>apt install ttf-wqy-zenhei </code></pre> <p>想用别的字体可以<code>search</code>一下啦。</p>

2022/7/21
阅读更多

win10系统上禁止运行脚本报错

<p>在win10中运行hexo时,powershell报错:</p> <p><img src="https://pic.mereith.com/img/ph_error.png-slim" alt=""></p> <p>解决方法:</p> <ol> <li>以管理员身份打开powershell</li> <li>执行下面的命令,选择(A)全是即可</li> </ol> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>set-ExecutionPolicy RemoteSigned </code></pre>

2022/7/21
阅读更多

PyQt5学习笔记(一)安装及环境配置

<p>最近为了写<a href="https://www.mereith.com/gnss">gnss下载工具</a>学习了PyQt5,查阅了不少资料,为了避免遗忘,把用到的资源和一些知识记载如下.本篇主要介绍<code>PyQt5</code>的安装以及配合<code>Qt Designer</code>和<code>VS Code</code>一起使用的环境配置.</p> <h2>PyQt5的安装</h2> <p>对于正常的win10,mac平台,直接用<code>pip install PyQt5</code>即可.</p> <p>对于<code>debian/ubuntu</code>来说,比如我的树莓派(arm64的系统)就没办法直接安装,一开始我是编译安装的,按部就班的安装<code>qmake</code>,<code>xxxx-dev</code>,然后开始编译,比较费劲。后来发现根本不用。直接<code>apt install python3-pyqt5</code>就行了,没错,就是这么简单。</p>

2022/7/21
阅读更多

ubuntu的supervisor安装和使用

<p>最近搭建了基于<code>cloudreve</code>的私有云,搭建完成后需要添加<code>进程守护</code>,<code>supervisor</code>就是一款很好用的进程管理工具。</p>

2022/7/21
阅读更多

nginx上传文件大小限制

<p>最近升级搭建了基于<code>cloudreve</code>的私有云,用<code>nginx</code>反向代理后发现无法上传超过4m的文件,解决方法如下:<br> 在nginx的配置文件中的server字段下加入:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>client_max_body_size <span class="hljs-number">10000</span>M; </code></pre> <p>其中大小可以任意修改</p>

2022/7/21
阅读更多

ubuntu18.04编译安装nginx

<p>最近重新升级了一下网站,记录下编译安装nginx的过程怕以后忘了:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-meta prompt_"># </span><span class="language-bash">安装依赖</span> sudo apt-get libpcre3 libpcre3-dev sudo apt-get install openssl libssl-dev sudo apt-get install zlib1g-dev <span class="hljs-meta prompt_"># </span><span class="language-bash">下载编译安装</span> wget https://nginx.org/download/nginx-1.17.9.tar.gz tar vxzf nginx-1.17.0.tar.gz cd nginx-1.17.0 ./config ----prefix=/usr/local/nginx --with-heep_stub_status_module --with-http_ssl_module -with-stream make make install <span class="hljs-meta prompt_"># </span><span class="language-bash">添加到系统环境变量方便调用</span> vim /etc/profile <span class="hljs-meta prompt_"># </span><span class="language-bash">在最后添加</span> export PATH=/usr/local/nginx/sbin:$PATH <span class="hljs-meta prompt_"># </span><span class="language-bash">导入</span> sudo source /etc/profile <span class="hljs-meta prompt_"># </span><span class="language-bash">记得权限问题</span> </code></pre>

2022/7/21
阅读更多

【python实用系列】python从不同的excel收集数据并汇总

<p>最近帮同学处理一些数据,目的是分别从不同的一些excel文件中收集数据,按照格式汇总到生成的excel中.<br> 保存下来,避免以后忘了,主要用到的就是xlrd和xlwt两个模块。</p> <h2>参考:</h2> <p><a href="https://www.jianshu.com/p/f2c9dff344c6">python:xlrd模块</a><br> <a href="https://www.jianshu.com/p/fc97dd7e822c">python:xlwt模块</a></p>

2022/7/21
阅读更多

ssh设置了为什么密钥还是需要密码

<p>最近新加了几个git仓库,重新设定了一下几个ssh,结果博客部署的时候j就突然需要密码了,以前都是不需要的,明明设置好了ssh密钥的啊,百思不得其解。所以经过几番折腾,进展如下:</p>

2022/7/21
阅读更多

【python爬虫】基于scrapy的小说爬虫

<h1>前言</h1> <p>最近一直在学爬虫,从最基本的<code>urllib</code>到<code>requests</code>、<code>beautifulsoup</code>到分布式爬虫框架<code>scrapy</code>,现在终于感觉可以上路了。所以先基于<code>scrapy</code>重写了我以前做的小说爬虫,代码都很简单,就不注释了。相关的知识点在我的python爬虫系列文章后面都会介绍到。<br> 主要的参考文献:</p> <blockquote> <ul> <li><a href="https://docs.scrapy.org/en/latest/">scrapy官方文档(无中文)</a></li> <li><a href="https://docs.python.org/zh-cn/3/">python官方文档(有中文)</a></li> </ul> </blockquote> <p><img src="https://pic.mereith.com/img/NovelSpider1.gif" alt=""></p> <h1>思路</h1> <p>1.搜索小说名,用<code>requests+lxml</code>爬取结果,并让用户选择结果,返回小说目录的<code>url</code><br> 2.<code>scrapy</code>根据目录url解析小说章节数以及每章的具体url,其中把小说章节数送给<code>item</code>再到<code>itempipeline</code>保存,每章的url则是生成异步请求,结果送给<code>parse_chapter</code>进行下一步的解析<br> 3.<code>parse_chapter</code>解析每一章的内容,替换没用的<code>\xa0</code>,写入到<code>item</code>里,返回交给<code>pipeline</code>处理<br> 4.对于<code>pipeline</code>为了写入文件章节顺序是对的,每次返回的<code>item</code>都先保存到包括当前章节<code>编号和内容</code>的字典里<br> 5.爬取完毕,对字典进行排序,写入到小说文件中</p> <h1>使用说明</h1>

2022/7/21
阅读更多

python读取excel查重

<h1>python读取excel并查重</h1> <p>主要就是用了<code>xlrd</code>,代码如下,简单易懂就不注释了哈:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-keyword">import</span> xlrd <span class="hljs-keyword">import</span> time <span class="hljs-keyword">from</span> collections <span class="hljs-keyword">import</span> Counter t1 = time.time() data = xlrd.open_workbook(<span class="hljs-string">r&#x27;C:\Users\pve_win10_1\Desktop\suanfa\text.xlsx&#x27;</span>) table = data.sheet_by_index(<span class="hljs-number">1</span>) list1 = [] <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(table.nrows): list1.append(table.cell(i,<span class="hljs-number">0</span>).value) b = Counter(list1) <span class="hljs-keyword">for</span> key,value <span class="hljs-keyword">in</span> b.items(): <span class="hljs-keyword">if</span> value &gt; <span class="hljs-number">1</span>: <span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;{}重复在:&#x27;</span>.<span class="hljs-built_in">format</span>(key),[i <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-built_in">len</span>(list1)) <span class="hljs-keyword">if</span> list1[i] == key]) t2 = time.time() <span class="hljs-built_in">print</span>(<span class="hljs-string">&#x27;用时:&#x27;</span>,t2-t1,<span class="hljs-string">&#x27;s&#x27;</span>) </code></pre> <h1>知识点</h1>

2022/7/21
阅读更多

python-docx中文字体设置

<p>最近用python-docx写word,默认的字体大小不一很难受。<br> 这里有一个方法可以更改z设置中文字体:<br> 在<code>style</code>对象中如下:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>doc.styles[<span class="hljs-string">&#x27;Normal&#x27;</span>].font.name = <span class="hljs-string">u&#x27;等线&#x27;</span> doc.styles[<span class="hljs-string">&#x27;Normal&#x27;</span>]._element.rPr.rFonts.<span class="hljs-built_in">set</span>(qn(<span class="hljs-string">&#x27;w:eastAsia&#x27;</span>),<span class="hljs-string">u&#x27;等线&#x27;</span>) </code></pre>

2022/7/21
阅读更多

【沙雕动画01】小绿是个头铁的人

<p>沙雕动画处女座出炉!</p> <p>立下的flag终于拔掉了哈哈哈哈</p> <p>准备做一个系列,讲小绿的故事</p> <p>这是第一期:小绿是个头铁的人</p> <p>PS:以后视频都在<code>b站</code>发,感兴趣的请点击头像下面的<code>bilibili</code>关注我哦</p> <p>{% raw %}</p> <iframe src="//player.bilibili.com/player.html?aid=92900885&cid=158613081&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe> {% endraw %}

2022/7/21
阅读更多

youtube-dl使用方法(转)

<p><a href="https://travis-ci.org/ytdl-org/youtube-dl">网址</a></p>

2022/7/21
阅读更多

hexo添加本站运行时间

<p>有人问本站运行时间怎么添加的,我就写下来嘛。<br> 对于我的<code>next</code>主题,打开主题文件夹下的<code>layout/_partials/footer.swig</code><br> 在最后一行前面添加:</p> <pre><code>&lt;div class=&quot;runtime&quot;&gt; &lt;span id=&quot;timeDate&quot;&gt;载入天数...&lt;/span&gt;&lt;span id=&quot;times&quot;&gt;载入时分秒...&lt;/span&gt; &lt;script&gt; var now = new Date(); function createtime() { var grt= new Date(&quot;12/08/2018 12:00:00&quot;);//此处修改你的建站时间或者网站上线时间 now.setTime(now.getTime()+250); days = (now - grt ) / 1000 / 60 / 60 / 24; dnum = Math.floor(days); hours = (now - grt ) / 1000 / 60 / 60 - (24 * dnum); hnum = Math.floor(hours); if(String(hnum).length ==1 ){hnum = &quot;0&quot; + hnum;} minutes = (now - grt ) / 1000 /60 - (24 * 60 * dnum) - (60 * hnum); mnum = Math.floor(minutes); if(String(mnum).length ==1 ){mnum = &quot;0&quot; + mnum;} seconds = (now - grt ) / 1000 - (24 * 60 * 60 * dnum) - (60 * 60 * hnum) - (60 * mnum); snum = Math.round(seconds); if(String(snum).length ==1 ){snum = &quot;0&quot; + snum;} document.getElementById(&quot;timeDate&quot;).innerHTML = &quot;本站居然运行了 &quot;+dnum+&quot; 天 &quot;; document.getElementById(&quot;times&quot;).innerHTML = hnum + &quot; 小时 &quot; + mnum + &quot; 分 &quot; + snum + &quot; 秒&quot;; } setInterval(&quot;createtime()&quot;,250); &lt;/script&gt; &lt;/div&gt; </code></pre> <p>保存即可。</p>

2022/7/21
阅读更多

python版本管理

<p>经过测试,opencore的黑苹果还是很稳定的,准备拿来做生产环境,在配置python的时候,就涉及到版本管理的问题,毕竟现在python2和python3都有在用,而且不同的项目的库也不一样,最终我选择<code>pyenv</code>来进行版本控制。</p>

2022/7/21
阅读更多

基于opencore的ryzen黑苹果10.15.3

<p>【更新】现已升级到10.15.4,oc版本到0.5.6.</p> <p>相关引导文件以上传至github:<a href="https://github.com/Mereithhh/OC-EFI-2700-B450i-wifi-rx580">OC-EFI-2700-B450i-wifi-rx580</a></p> <p>配置如下,基本上和我配置差不多的都可以通用哈。</p> <table> <thead> <tr> <th>硬件</th> <th>型号</th> </tr> </thead> <tbody> <tr> <td>cpu</td> <td>ryzen 2600</td> </tr> <tr> <td>主板</td> <td>技嘉b450i wifi pro</td> </tr> <tr> <td>显卡</td> <td>rx584</td> </tr> <tr> <td>内存</td> <td>金士顿hyper 3000 ddr4 16gx2</td> </tr> </tbody> </table> <p><img src="https://pic.mereith.com/img/B84189BDC44302A1ACE719C77517C840.png-slim" alt=""></p>

2022/8/12
阅读更多

hexo/next增加鼠标点击效果

2022/7/21
阅读更多

hexo图标设置

<p>自定义页面还有下方的copyright等地方,我们都会想改一下图标,那么怎么办呢,很简单。</p>

2022/7/21
阅读更多

hexo博客添加ssl证书

<p>每次打开网站,谷歌浏览器总提示此网站不安全,很别扭,解决方法是添加ssl证书,让网站走https。</p>

2022/7/21
阅读更多

hexo博客配置cdn加速

<p>为了最大化提高博客的访问速度,还可以用cdn进行加速。</p>

2022/7/31
阅读更多

win10-tensorflow环境快速搭建-基于anaconda

<p>众所周知,配置环境一直是个有点小麻烦的事儿,tensorlow分为gpu版本和cpu版本的,其中gpu版本的需要额外的<code>cuda</code>和<code>cudnn</code>,但是你要是不用gpu吧,又太慢了。上次实在linux下安装开发环境,这次我们在win10下安装tensorflow环境带gpu的版本,为了省事,我们用<code>acaconda</code>进行快速安装。</p> <h2>安装Anaconda3</h2> <p>按照官网的描述:</p> <p>{% blockquote %}<br> The open-source Anaconda Distribution is the easiest way to perform Python/R data science and machine learning on Linux, Windows, and Mac OS X. With over 19 million users worldwide, it is the industry standard for developing, testing, and training on a single machine, enabling individual data scientists to:<br> Quickly download 1,500+ Python/R data science packages<br> Manage libraries, dependencies, and environments with Conda<br> Develop and train machine learning and deep learning models with scikit-learn, TensorFlow, and Theano<br> Analyze data with scalability and performance with Dask, NumPy, pandas, and Numba<br> Visualize results with Matplotlib, Bokeh, Datashader, and Holoviews<br> {% endblockquote %}</p> <p>emm说白了就是一个python/r 的科学平台,可以很方便的帮你配置环境,管理各种包。</p>

2022/7/21
阅读更多

hexo设置文章置顶

2022/7/21
阅读更多

hexo添加视频音频的方法

<p>最近写东西用到了视频和音频,所以就研究了一下。<br> 这里用到了两个标签插件<code>hexo-tag-aplayer</code>和<code>hexo-tag-dplayer</code>,对应音频和视频:</p>

2022/7/21
阅读更多

基于UWB的室内三维定位

<p><strong>现已开源</strong> github:<a href="https://github.com/Mereithhh/RTLS-UWB">RTLS-UWB</a><br> <br><br> 最近做了课程设计,是 <code>基于UWB的室内三维定位</code>,现在大概过程整理如下:</p>

2024/11/26
阅读更多

win10和linux(mac)双系统下时间不同步的问题

<p>我们装windows和linux/mac双系统的时候,经常会碰到时间不同步的问题,现在有空了梳理一下。</p> <h2>原因</h2> <p>Windows把硬件时间(主板上的时间)当成本地时间,操作系统中显示的时间和bios中是一样的。<br> 而mac/linux/unix把硬件时间当作UTC,操作系统显示的时间是硬件时间换算而来的,比如北京时区是UTC+8,系统显示的时间就是硬件时间+8。<br> 所以二者会发生错乱。</p> <h2>解决方案</h2> <p>很简单,有以下三种方式:</p> <h3>修改Windows的时间设定</h3> <p>其实就是让Windows把硬件时间当作UTC,然后换算成正确时间显示到系统上。用管理员身份打开Powershell或者cmd,输入下面的命令并按回车:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1 </code></pre> <h3>修改Linux下的时间设定</h3> <p>修改<code>/etc/conf.d/hwclock</code>,将其中的<code>clock=&quot;UTC&quot;</code>改为<code>clock=&quot;local&quot;</code>,推荐用系统自带的<code>vi</code>进行修改,不会的话可以百度。</p> <h3>修改mac下的时间设定</h3> <p>直接在时间设置改时区比较简单(直接改成UTC+0的时区),或者和linux一样改配置文件即可。</p>

2022/7/31
阅读更多

hexo引用本地图片无法显示

<p>最近有时间了,重新升级启用 hexo&amp;next,但是发现升级以后,本地图片没办法显示了!<br> 在网页处用开发工具查看图片地址,发现地址不对,于是寻找原因。</p> <p><strong>可能的原因如下:</strong></p> <h3>插件没安装</h3> <p>安装一个图片路径转换插件 <code>hexo-asset-image</code><br> 用npm安装即可</p> <h3>_config.yml没有修改</h3> <p>打开<code>hexo</code>目录下的<code>_config.yml</code>,修改下面内容:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-attr">post_asset_folder</span>: <span class="hljs-literal">true</span> </code></pre>

2022/7/21
阅读更多

博客更新记录

<p>最近几个月忙于考研,很久没有搞博客辣。现在过年回家也有时间,决定好好系统的更新一下博客,把最近半年学的东西写上去~<br> 不看不知道,一看才发现hexo和next的版本落后太多了</p>

2022/8/4
阅读更多

hexo next文章摘要显示图片

<img src="https://pic.mereith.com/img/zhaiyao.png-slim" width=100% /> 配上图比较好看,而且可以避免摘要中乱码的现象哈哈哈哈哈,有两种办法。 ## 在文章属性列表中添加photo属性 这是默认的方式,缺点是不能自定义裁剪和缩略比 ``` photos: "https://faithlove.github.io/pic/2018/HexoThumb/topPicPre.png-slim" ``` ## 正文中使用html更新 因为markdown是原生支持html的,在`

2022/7/31
阅读更多

hexo文章加密

<p>加密方法:<br> 插件安装</p> <pre><code>npm install hexo-blog-encrypt --save </code></pre>

2022/8/4
阅读更多

hexo优化压缩

<h2>安装</h2> <pre><code>npm install hexo-all-minifier --save </code></pre>

2022/8/4
阅读更多

hexo自定义页面的方法

<p>分两种情况:<br> *主题内渲染,添加的模块仍在主题内,主题头部信息依然存在,仅仅是在特定区域进行渲染(适合添加 about 页面)<br> *完全页面渲染,在主题内点击对应链接跳转到一个完全崭新的页面</p>

2022/8/4
阅读更多

ubuntu grub更改默认启动项

<h2>方法</h2> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>sudo vim /etc/default/grub </code></pre> <p>把 <code>default</code>的选项改成你想要的(从0开始),然后 <code>update-grub</code>即可</p>

2022/8/4
阅读更多

sqlite3一键安装脚本(ubuntu)

<p>前几天上嵌入式的课,让搭建sqlite3环境,挺麻烦的,写了个脚本,记录如下:</p> <h2>源代码</h2> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-meta">#!/bin/bash</span> <span class="hljs-built_in">echo</span> <span class="hljs-string">&#x27;*****************************************************&#x27;</span> <span class="hljs-built_in">echo</span> <span class="hljs-built_in">echo</span> <span class="hljs-string">&#x27;sqlite自动安装脚本_wanglu&#x27;</span> <span class="hljs-built_in">echo</span> <span class="hljs-built_in">echo</span> <span class="hljs-string">&#x27;*****************************************************&#x27;</span> <span class="hljs-built_in">read</span> -p <span class="hljs-string">&quot;自动下载? y/n :&quot;</span> door <span class="hljs-keyword">if</span> [ <span class="hljs-string">&quot;<span class="hljs-variable">$door</span>&quot;</span> = <span class="hljs-string">&quot;y&quot;</span> ] <span class="hljs-keyword">then</span> <span class="hljs-built_in">read</span> -p <span class="hljs-string">&quot;即将下载,任意键开始&quot;</span> sudo apt install curl curl -O https://www.sqlite.org/2019/sqlite-autoconf-3280000.tar.gz tar vxzf ./sqlite-autoconf-3280000.tar.gz <span class="hljs-built_in">cd</span> sqlite-autoconf-3280000 sudo ./configure --prefix=/usr/local sudo make sudo make install <span class="hljs-keyword">elif</span> [ <span class="hljs-string">&quot;<span class="hljs-variable">$door</span>&quot;</span> = <span class="hljs-string">&quot;n&quot;</span> ] <span class="hljs-keyword">then</span> <span class="hljs-built_in">read</span> -p <span class="hljs-string">&quot;请确保文件名为sqlite-autoconf-3280000.tar.gz并在同一目录内&quot;</span> tar vxzf ./sqlite-autoconf-3280000.tar.gz <span class="hljs-built_in">cd</span> sqlite-autoconf-3280000 sudo ./configure --prefix=/usr/local sudo make sudo make install <span class="hljs-keyword">else</span> <span class="hljs-built_in">echo</span> <span class="hljs-string">&quot;输入错误!请输入y或者n&quot;</span> <span class="hljs-keyword">fi</span> <span class="hljs-built_in">echo</span> <span class="hljs-built_in">echo</span> <span class="hljs-string">&#x27;****************************************************&#x27;</span> <span class="hljs-built_in">echo</span> <span class="hljs-built_in">echo</span> <span class="hljs-string">&#x27;完成!请再退出脚本后执行 sqlite3 进入环境&#x27;</span> <span class="hljs-built_in">echo</span> </code></pre> <h2>使用方法</h2> <p>保存下来 <code>bash 文件名即可</code><br> <img src="https://pic.mereith.com/img/door.png-slim" alt=""></p>

2022/7/21
阅读更多

arm-linux-gcc一键搭建脚本

<p>前几天上嵌入式的课,让搭建交叉编译环境,挺麻烦的,写了个脚本,记录如下:</p>

2022/8/4
阅读更多

ubuntu18.04深度学习环境搭建

<p>前些天搞深度学习的ai换脸,准备把香蕉君和蔡徐坤的脸换一下,一开始用的cpu跑,但是太慢了,扛不住,想了想买了张矿卡p106-90,这下子可好了我的乖乖,安装驱动和库搞了很久,所以记录一下。</p> <table> <thead> <tr> <th style="text-align:left">安装环境</th> <th style="text-align:right">版本</th> </tr> </thead> <tbody> <tr> <td style="text-align:left">Ubuntu</td> <td style="text-align:right">18.04</td> </tr> <tr> <td style="text-align:left">CUDA</td> <td style="text-align:right">10.0</td> </tr> <tr> <td style="text-align:left">cuDNN</td> <td style="text-align:right">7.4</td> </tr> <tr> <td style="text-align:left">Tensorflow-gpu</td> <td style="text-align:right">1.13.1</td> </tr> <tr> <td style="text-align:left">python</td> <td style="text-align:right">3.6</td> </tr> </tbody> </table> <h2>其中python用了virtualenv,其实用conda也蛮好的,但是我头铁没有用。</h2> <h2>驱动</h2> <p>对于nvidia显卡,首先是要禁用默认的nouveau驱动再安装nvidia官方驱动的,两种公用就会导致很奇怪的问题,我是进不去gnome了,没办法在恢复模式删了驱动才好。</p> <h3>禁用nouveau驱动</h3> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-built_in">echo</span> <span class="hljs-string">&quot;blacklist nouveau&quot;</span> &gt;&gt; /etc/modprobe.d/blacklist.conf <span class="hljs-built_in">echo</span> <span class="hljs-string">&quot;options nouveau modeset=0&quot;</span> &gt;&gt;/etc/modprobe.d/blacklist.conf rmmod nouveau </code></pre>

2022/7/21
阅读更多

vps+ssr+路由器实现校园网免流+科学上网

<p>最近在买了一堆vps,用ssr+我的路由器实现了在ipv6校园网环境下的免流+科学上网,现在分享给大家</p> <h2>技术原理</h2> <h3>vps</h3> <p>虚拟专用服务器,就是你买了一台在网上的虚拟的服务器,别人帮你管理,你只要用它就好了,很省心,而我们选用外国的云服务器就可以通过ssr代理来让vps替我们访问youtube等网站了。</p> <h3>ss/ssr</h3> <p>可以理解为是一种vpn,主要用来科学上网,ssr全称是<code>shadowscoks-R</code>,前身为ss但它被大家熟知后广泛使用,再后来,据说因为作者被请去“喝茶”,<br> 所以就停止了该ss项目。后来有ssr出现了,改善了混淆和协议,更难被防火墙检测到。简单地说ssr是ss的改进版<br> 而我们在云服务器上部署ssr服务端,在本地的路由器或者是手机、电脑下载配置客户端,就可以通过sock5代理来科学上网了~</p> <h3>ipv6免流原理</h3> <p>高校原生开通了ipv6,而且是不限流量的,但是ipv4一般是限流的(比如一个月30g),而我们经常访问的网上资源,都是ipv4的,所以我们校园网没流量了,就无法上网了,但其实哪怕是没流量了ipv6也是可以访问的,可以点下面的ipv6测试链接,如果成功,就证明你有ipv6哦<br> 而谷歌、youtube等网站是支持ipv6的,所以校园网一般可以直接访问他们哦~(国内普及ipv6慢)</p> <blockquote> <p><a href="http://test-ipv6.com/">ipv6测试</a></p> </blockquote> <p>而我们就是通过ipv6通道连接vps,然后让vps替我们用ipv4来访问ipv4的资源,再把数据通过ipv6的通道给我们发回来。<br> 如果你不懂什么是ipv4和ipv6,请点下面的科普</p> <blockquote> <p><a href="https://baijiahao.baidu.com/s?id=1610212047297722961&amp;wfr=spider&amp;for=pc">科普什么是ipv6</a><br> <a href="https://baike.baidu.com/item/IPv4/422599?fr=aladdin">科普什么是ipv4</a></p> </blockquote>

2022/7/31
阅读更多

markdown在hexo中的基本语法

<p>如题,在hexo中markdown有些许不同哦~<br> 参考链接:</p> <blockquote> <p><a href="https://hyxxsfwy.github.io/2016/01/15/Hexo-Markdown-%E7%AE%80%E6%98%8E%E8%AF%AD%E6%B3%95%E6%89%8B%E5%86%8C/">markdown基本语法</a></p> </blockquote> <h2>标题</h2> <p>在想要设置为标题的文字前面加<code>#</code>来表示<br> 一个#是一级标题,二个#是二级标题,以此类推。支持六级标题。<br> 注:标准语法一般在#后跟个空格再写文字,hexo必须加空格,不然没法识别。<br> 示例:<br> <img src="https://pic.mereith.com/img/title.png-slim" alt=""><br> 效果如下:<br> <img src="https://pic.mereith.com/img/show_title.png-slim" alt=""></p> <hr> <h2>字体</h2> <p>*加粗<br> 要加粗的文字左右分别用<code>两个*号</code>包起来</p> <p>*斜体<br> 要倾斜的文字左右分别用<code>一个*号</code>包起来</p> <p>*斜体加粗<br> 要倾斜和加粗的文字左右分别用<code>三个*号</code>包起来</p> <p>*删除线<br> 要加删除线的文字左右分别用<code>两个~号</code>包起来</p> <p>示例:<br> <img src="https://pic.mereith.com/img/word.png-slim" alt=""><br> 效果如下:<br> <img src="https://pic.mereith.com/img/show_word.png-slim" alt=""></p> <hr> <h2>引用</h2> <p>引用的内容前面加<code>&gt;</code>即可,加几个是几级引用<br> 示例:<br> <img src="https://pic.mereith.com/img/from.png-slim" alt=""><br> 效果如下:<br> ![](https://pic.mereith.com/img/show form.png-slim)</p>

2022/7/21
阅读更多

hexo博客简单配置和使用

<p>东西建好了,总得会用吧~</p> <h2>写作</h2> <p>hexo采用的是markdown的语法,所以你要先学会怎么用markdown</p> <blockquote> <p>请参考:<a href="/2018/12/08/markdown%E5%9F%BA%E6%9C%AC%E8%AF%AD%E6%B3%95">markdown基本语法</a><br> 写作工具我用的是sublime</p> </blockquote> <h2>创建新文章</h2> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>hexo new <span class="hljs-string">&quot;你的文章名字&quot;</span> </code></pre> <h2>删除文章</h2> <p>直接删除<code>_post</code>文件夹下的md文件就行了</p> <h2>添加本地图片</h2> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>![替代文字](图片地址) </code></pre> <p>在hexo中,如果你想引用本地图片,你需要先安装<code>hexo-asset-image</code>的插件,然后在生成的<code>post</code>下面的文章目录就会自动多一个<em>和文章同名的文件夹</em><br> 想插入图片的时候,就把<code>图片地址</code>改成 <code>同名文件夹/图片名.jpn</code>就行了哦<br> 示例:<br> <img src="https://pic.mereith.com/img/pic.png-slim" alt=""><br> 效果如下:<br> <img src="https://pic.mereith.com/img/show_pic.png-slim" alt=""></p> <blockquote> <p><a href="https://blog.csdn.net/sugar_rainbow/article/details/57415705">参考链接</a></p> </blockquote>

2022/7/21
阅读更多

next主题优化

<p>因为参考了很多别人的东西,所以现附上参考链接~</p> <h2>参考链接</h2> <blockquote> <p><a href="https://www.jianshu.com/p/3ff20be8574c">next配置优化(一)</a><br> <a href="https://www.jianshu.com/p/428244cd2caa">next配置优化(二)</a><br> <a href="https://www.jianshu.com/p/d23d67d318c7">next配置优化(三)</a><br> <a href="https://www.jianshu.com/p/4ef35521fee9">next配置优化(四)</a></p> </blockquote> <h2>添加萌宠</h2> <p>所用的插件如下:</p> <blockquote> <p><a href="https://github.com/EYHN/hexo-helper-live2d">hexo-helper-live2d</a><br> 看说明你会发现有简体中文的哦~</p> </blockquote> <h2>评论系统</h2> <h3>valine</h3> <p>简单免费的评论系统,next主题直接集成</p> <h4>注册</h4> <blockquote> <p>[点我注册]https://leancloud.cn/dashboard/login.html#/signup(https://leancloud.cn/dashboard/login.html#/signup)</p> </blockquote> <h4>创建应用</h4> <p>创建一个应用,在设置里找到你的<code>appid</code>和<code>appkey</code></p> <h4>修改配置文件</h4> <p>修改<strong>主题配置文件</strong>,搜索<strong>valine</strong>,填入你的<code>appid</code>和<code>appkey</code></p> <p>###gittalk<br> 这个看起来很棒啊,不过你要有个域名好像才行</p> <blockquote> <p><a href="https://github.com/gitalk/gitalk">官网链接</a><br> <a href="https://segmentfault.com/a/1190000014085547">参考教程</a></p> </blockquote> <h2>shareSDK分享系统</h2> <h3>注册sharesdk的账号</h3> <blockquote> <p><a href="http://sharesdk.mob.com/developer/register">注册链接</a><br> 注册之后进入后台,选sharesdk,复制你的appkey</p> </blockquote> <h3>在hexo中添加sharesdk</h3> <p>在<code>themes/next/layout/_partials/share/</code>中新建一个叫<code>sharesdk.swig</code>的文件,添加如下内容</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-comment">&lt;!--MOB SHARE BEGIN--&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;-mob-share-ui-button -mob-share-open&quot;</span>&gt;</span>分享<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;-mob-share-ui&quot;</span> <span class="hljs-attr">style</span>=<span class="hljs-string">&quot;display: none&quot;</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">ul</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;-mob-share-list&quot;</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">li</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;-mob-share-weibo&quot;</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>新浪微博<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">li</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;-mob-share-tencentweibo&quot;</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>腾讯微博<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">li</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;-mob-share-qzone&quot;</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>QQ空间<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">li</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;-mob-share-qq&quot;</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>QQ好友<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">li</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;-mob-share-renren&quot;</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>人人网<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">li</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;-mob-share-kaixin&quot;</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>开心网<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">li</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;-mob-share-douban&quot;</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>豆瓣<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">li</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;-mob-share-facebook&quot;</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Facebook<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">li</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;-mob-share-twitter&quot;</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Twitter<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;-mob-share-close&quot;</span>&gt;</span>取消<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">&quot;-mob-share-ui-bg&quot;</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">id</span>=<span class="hljs-string">&quot;-mob-share&quot;</span> <span class="hljs-attr">src</span>=<span class="hljs-string">&quot;http://f1.webshare.mob.com/code/mob-share.js?appkey={{ theme.shareSDKappkey }}&quot;</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span> <span class="hljs-comment">&lt;!--MOB SHARE END--&gt;</span> </code></pre> <p>修改这写的目的是为了让我们能够在主题的配置文件中添加appkey,只需要在主题的配置文件中添加一个shareSDKappkey并为其附上值即可</p> <h3>添加可选配置</h3> <p>找到主题文件夹中的<code>layout/post.swig</code>,在<code>duoshuo_share</code>关键字下面那一行添加(注意缩进):</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code> {% elseif theme.sharesdk %} {% include &#x27;_partials/share/sharesdk.swig&#x27; %} </code></pre> <h3>修改_config.yml</h3> <p>打开主题配置文件,在后面添加:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-comment">#shareSDK</span> sharesdk: <span class="hljs-literal">true</span> shareSDKappkey: 你刚复制的appkey </code></pre>

2022/7/21
阅读更多

Hexo + Github(Vps)部署你的个人博客

<p>经过踩坑+出坑,一系列循环,总算初步把博客网站建立起来了,因为遇到的坑太多了,所以记下来,怕忘了……各种参考地址在最后~</p> <h2>建站原理</h2> <p>本地搭建hexo的开发环境(node.js、git、npm),然后修改配置参数,本地生成网页git push到相应的github 仓库或者远程的vps服务器上,github page就不说了,傻瓜式操作,<br> vps端是用的阿里的轻应用服务器(ubuntu 16.04 x64)+nginx,其中nginx的源代码编译遇到了一些坑…… 0—0</p> <h2>搭建本地环境</h2> <p>我用的是windows操作系统,实际上linux或者mac知道了原理后也都大同小异了。</p> <h3>前提准备</h3> <p>需要的安装包如下:</p> <blockquote> <ul> <li>node.js (带npm)</li> <li>git环境(网上很简单都可以找到)</li> <li>Termius (跨设备的ssh客户端非常好用哦)</li> <li>sublime (一个很好用的文本编辑器)</li> <li>下载地址:链接:https://pan.baidu.com/s/1HsxmeSwMqCdBI5v23JsK3w 提取码:rkl4</li> </ul> </blockquote> <h3>安装相应的安装包</h3> <p>需要注意的是都按照默认选项安装就可以了。其中git安装完需在shell中执行:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>git config --global user.name <span class="hljs-string">&quot;yourname&quot;</span> git config --global user.email <span class="hljs-string">&quot;yourmail&quot;</span> </code></pre> <p>安装完<code>node.js</code>之后请执行如下命令检查可否运行:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>node -v npm -v </code></pre> <p>如果一直卡住了,那么请检查 <code>c:\user\ {你的账户}</code>文件夹里有没有<code>.npmrc</code>文件,有的话删了就正常了</p> <h3>安装hexo</h3> <p>打开powershell,执行命令:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>npm install hexo-cli -g hexo </code></pre> <p>看看是不是安装成功了呢<br> 如果安装的时候出现了两个警告,什么<code>fsevents</code>之类的,不用在意。</p> <h3>初始化hexo文件夹</h3> <p>找个文件夹初始化你的博客吧~,下面博客路径用<code>blog-path</code>来替代。<br> 在你找到的文件夹下,执行:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-built_in">mkdir</span> hexo-blog <span class="hljs-built_in">cd</span> hexo-blog npm init hexo init myblog <span class="hljs-built_in">cd</span> myblog npm install </code></pre> <h3>执行本地的hexo项目</h3> <p>修改<code>myblog</code>下的<code>package.json</code>,在<code>scripts</code>下面仿照上面的格式加入下面两个脚本(记得上面的逗号)<br> <img src="https://pic.mereith.com/img/script.png-slim" alt=""></p> <h3>验证成果</h3> <p>在myblog下执行:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>npm start </code></pre> <p>在浏览器打开<code>localhost:4000</code>看一下效果吧~</p> <h2>本地hexo的简单配置</h2> <p>修改<code>myblog</code>下的<code>_config.yml</code>即可,详细内容看官方文档吧~</p> <blockquote> <ul> <li><a href="https://hexo.io/zh-cn/docs/">官方文档</a></li> </ul> </blockquote> <p>修改完了保存,然后执行<code>npm start</code>即可在本地看到效果咯<br> <strong>至此,本地部署完成~</strong></p> <h2>github端设置(如果你用的话)</h2> <h3>注册github账号</h3> <p>直接去 <a href="https://github.com/join">github官网</a> 注册就好了嘛</p> <h3>建立仓库,设置个人主页</h3> <p>登录之后点击<code>New repository</code>建立自己的仓库,仓库的名称请按照<code>yourname.github.io</code>来命名,并勾选<code>README</code>的那个选项<br> 进入仓库,点设置找到<code>github pages</code>,看到<code>your site is published at https://yourname.github.io/</code>就证明你的个人主页创建完成了<br> 接下来选择主题,随便选一个(反正一会咱们上传咱们的hexo生成的,和他没关系)</p> <h2>服务器端设置</h2> <h3>初始化服务器的git环境</h3> <p><strong>在服务器中</strong><br> 1.安装git,例如我的ubuntu,直接<code>apt-get install git</code>即可<br> 2.创建用户并配置其仓库,执行如下命令</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code>useradd git passwd git //设置密码 <span class="hljs-built_in">mkdir</span> /home/git //创建git的目录 <span class="hljs-built_in">chown</span> git:git /home/git //设置权限 su git //切换用户 <span class="hljs-built_in">cd</span> /home/git <span class="hljs-built_in">mkdir</span> -p progects/blog //创建项目的目录 <span class="hljs-built_in">mkdir</span> repos &amp;&amp; <span class="hljs-built_in">cd</span> repos //创建仓库的目录 git init --bare blog.git //创建仓库 vim ./blog.git/hooks/post-receive //用vim创建钩子函数,不会vim的请百度一下 </code></pre> <p>文件内容如下:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-meta">#!/bin/sh</span> git --work--tree=/home/git/projects/blog --git-dir=/home/git/repos/blog.git checkout -f </code></pre> <p>修改其权限,执行:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code><span class="hljs-built_in">chmod</span> +x ./blog.git/hooks/post-receive //添加执行权限 <span class="hljs-built_in">exit</span> //回到root <span class="hljs-built_in">chown</span> -R git:git /home/git/repos/blog.git //添加权限 ··· 3.可以在本地电脑找个空文件夹测试一下`git仓库`是不是能用,执行: ```bash git <span class="hljs-built_in">clone</span> git@server_ip:/home/git/repos/blog.git </code></pre> <p>如果成功把空的仓库拉下来,就证明git仓库创建成功了</p>

2018/12/8
阅读更多

Netgaer 路由器救砖

<p>这两天在折腾Netgear3800路由器,刷了不少次系统,结果变砖了。因为最初没有刷breed boot,所以找到了网件的救砖工具,原则上cfe没坏的,都可以救。</p> <blockquote> <ul> <li>所需工具: WinPcap、nmrpflash</li> <li>下载地址: 链接:https://pan.baidu.com/s/1ytBeqbw4g9GUqR1mmdyRJw<br> 提取码:pvjy</li> </ul> </blockquote> <h2>使用方法</h2> <p>1.把nmrpflash复制到根目录(如d盘),安装winpcap</p> <p>2.下载路由器固件(factory的)放在相同的目录(如boy.img)</p> <p>3.管理员身份运行powershell,输入:</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code> ./nmrpflash.exe -L </code></pre> <p>找到连接路由器的以太网的哪一行,看一下是net几。</p> <p>4.输入如下内如,其中boy.img 改成自己的镜像名称,netx的x改成刚才看到的数字。</p> <pre class="hljs" style="background: #f3f3f3; padding: 8px;><code> ./nmrpflash.exe -i netx -f boy.img </code></pre> <p>5.先断电路由器,按回车,通电,等待即可。</p>

2022/7/21
阅读更多