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

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

2025/6/20
articleCard.readMore

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

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

2025/4/17
articleCard.readMore

k8s + jenkins + gitlab 触发器

背景 因为工作需要,需要在一台新集群上部署 jenkins + k8s agent 并结合 gitlab 做一下自动流水线,最后也发部到 k8s 中。

2025/4/11
articleCard.readMore

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

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

2024/12/23
articleCard.readMore

【后续】居然被 ddos 了

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

2024/11/19
articleCard.readMore

居然被 ddos 了

笑死,我居然被 ddos 了。 我把图床放对象存储加了 cdn,前几天发现流量狂涨,发现是一个江苏电信的 ip 一直打请求。 于是我就把它拉到黑名单了,过了两天发现换了个 ip 又开始给我打。

2024/11/16
articleCard.readMore

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

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

2024/11/7
articleCard.readMore

openclash 开启后端口转发失效

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

2024/4/26
articleCard.readMore

nextjs 启动时执行代码

在 Next.js 的 next.config.js 文件中开启 experimental.instrumentationHook 功能,然后在项目根目录创建 instrumentation.ts 文件,并在其中导出一个 register 函数。这个 register 函数会在 Next.js 服务启动时被执行。 官方文档 // next.config.js const nextConfig = { experimental: { instrumentationHook: true, }, } module.exports = nextConfig export async function register() { console.log("do something") }

2024/4/10
articleCard.readMore

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

如题,我有一堆 VPS。节选如下: 最近压力大,就喜欢逛论坛,看到优惠的 vps,就想买一台。但问题是我买这么多我干啥用啊? 干脆做个评测站吧……

2024/3/15
articleCard.readMore

juhost Level-1 测评

最近上头买了一堆小鸡,实际上没啥用,不如做点测评,供大家参考: 简介 测评时间:2024-03-06 18:13:31 购买链接(含aff) 产品:Level-1 2.99刀,要啥自行车。 6折优惠码 helloworld(3月30日前有效)

2024/3/7
articleCard.readMore

VMISS CN - Hong Kong - BGP II 测评

最近上头买了一堆小鸡,实际上没啥用,不如做点测评,供大家参考: 简介 测评时间:2024-03-06 07:24:15 购买链接(含aff) 产品:CN - Hong Kong - BGP II 月付差不多 22 人民币,性价比还可以,8折优惠码: 20%off

2024/3/6
articleCard.readMore

VMISS JP - Tokyo - BGP 测评

最近上头买了一堆小鸡,实际上没啥用,不如做点测评,供大家参考: 简介 测评时间:2024-03-06 07:22:06 购买链接(含aff) 产品:JP - Tokyo - BGP 月付差不多 22 人民币,性价比还可以,8折优惠码: 20%off

2024/3/6
articleCard.readMore

VMISS CN - Hong Kong - BGP - AMD 测评

最近上头买了一堆小鸡,实际上没啥用,不如做点测评,供大家参考: 简介 测评时间:2024-03-06 07:20:12 购买链接(含aff) 产品:CN - Hong Kong - BGP - AMD 月付差不多 22 人民币,性价比还可以,8折优惠码: 20%off

2024/3/6
articleCard.readMore

HomeLab 的终点是

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

2023/11/20
articleCard.readMore

最近在做的事情

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

2023/11/20
articleCard.readMore

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

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

2023/6/30
articleCard.readMore

HomeLab 分享

作为一名从初中就开始自己装机的垃圾佬,工作之后当然要组一台服务器放家里了!(不然为什么我们两个人我要租三居室,当然是一个拿出来做书房放🐔箱了呀!)

2023/6/28
articleCard.readMore

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

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

2023/6/28
articleCard.readMore

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

不知不觉已经写了两年代码了,每过一阵子回头看看原来的代码,都觉得有不少值得改进的地方,这真是一件高兴的事。 教程: Create Your Own Compiler 代码: https://github.com/Mereithhh/simple-compiler

2023/6/28
articleCard.readMore

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

全局搜索 extensionBundleIdentifier,把它改成正确的值就好了。 参考资料:"Quit and Open safari extension preferences" button not working. (While converting Chrome extension to Safari Web Extension)

2023/6/28
articleCard.readMore

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

mdn 相关文档 可以通过标签 <textarea/> 或 <input/> 的 enterkeyhint 属性来控制: 关键字 文案描述 enter 回车 done 完成 go 前往 next 下一个 previous 上一个 search 搜索 send 发送 enter 回车

2023/6/28
articleCard.readMore

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

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

2023/4/27
articleCard.readMore

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

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

2023/4/25
articleCard.readMore

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

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

2023/4/25
articleCard.readMore

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

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

2023/3/21
articleCard.readMore

为 VanBlog 添加一个小挂件

自 v0.29.0 后,VanBlog 支持了客制化功能,可自定义 HTML、CSS 或 JS 代码。利用这个功能可以实现很多有意思的东西,比如加一个 Sakana! Widget 挂件。 效果 C#

2023/3/18
articleCard.readMore

如何正确停止 NodeJS 子进程

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

2022/9/1
articleCard.readMore

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

项目主页: https://vanblog.mereith.com 开源地址: https://github.com/mereithhh/van-blog Demo 站: https://blog-demo.mereith.com 喜欢的话可以给个 star 哦 🙏

2023/6/30
articleCard.readMore

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

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

2022/8/16
articleCard.readMore

Ubuntu 配置 samba

在内网搭建了一个专门写代码的服务器,想共享一下目录到 windows 电脑会方便一点。 apt install samba -y # 仿照案例增加一项配置,可写的话需要配置 writeable = yes 和 valid users = root vim /etc/samba/smb.conf # 增加用户 smbpasswd -a root # 启动服务 systemctl enable --now smbd

2022/8/13
articleCard.readMore

antd Password 关闭自动补全

加上 autocomplete="new-password" 即可

2022/8/4
articleCard.readMore

code-server node not found

在 docker 里脚本安装的 code-server 中运行 code-server 命令会报错: /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 解决方法: whereis node # 把获取的目录软连接到对应的目录即可 ln -s /root/.nvm/versions/node/v16.16.0/bin/node /usr/lib/code-server/lib/vscode/node 或者在用 deb 包安装 code-server 也可解决(未尝试)

2022/8/3
articleCard.readMore

pve 无法启动 grub lvmid not found error

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

2022/8/6
articleCard.readMore

pve no quorum 错误 || 无法登录

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

2022/8/2
articleCard.readMore

pve Cannot Initiate CMAP Service

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

2022/8/2
articleCard.readMore

pve 节点删不干净

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

2022/8/2
articleCard.readMore

PVE 指针(鼠标)漂移

有时候会漂移,在 /etc/pve/qemu-server/xxx.conf 中加入: tablet: true 然后重新启动即可。

2022/8/2
articleCard.readMore

k8s pod 替换策略

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

2022/8/17
articleCard.readMore

pve 重启网络

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

2022/8/1
articleCard.readMore

Dockerfile 给 Ubuntu 换源

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

2022/7/31
articleCard.readMore

docker 内访问宿主机

除了常见的使用 bridge 网络和宿主机 ip 之外,在 docker 18 之后的版本可以用: host.docker.internal

2022/7/31
articleCard.readMore

docker 删除无用镜像

2022/7/31
articleCard.readMore

用 vuepress 搭建私人知识库

在平时的开发和折腾中,总会遇到各种各样的问题,踩各种各样的坑,原来是都记录在博客上的,但是发现有人搞这种专门的笔记站,感觉不错,所以我也打算搞一个: 技术栈 vue-press vue-press-hope

2022/7/31
articleCard.readMore

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

之前经常撸云服务器羊毛,就想搭建 k8s集群,一开始手动搭建太折腾了还有小问题,后来用了kubekey,感觉占用资源太多。 后来发现了 k3s 这个好东西,占用资源低。 后来发现了 wireguard 这个好东西,混合云组网神器。 后来发现了 network-manager 这个好东西,wireguard 组网神器。 那就搞吧!

2022/8/9
articleCard.readMore

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

参数问题 现象 背八股文的时候温习了一下防抖和节流的概念。于是自己随手把网上的版本试了一下,发现不行: <body> <button id="debounce">防抖测试</button> <script> function debounce(fn, delay) { let timer = null; return function () { clearTimeout(timer); timer = setTimeout(() => { fn.apply(this) }, delay) } } document.querySelector("#debounce").addEventListener("click", debounce((ev) => { console.log(ev) }, 500)) </script> </body> 控制台会打印 undefined。

2022/7/31
articleCard.readMore

Node.js 流式编程

可读流 可读流是生产数据用来供程序消费的流。举例: const rs = fs.createReadStream(filePath); process.stdin.pipe(process.stdout);

2022/7/26
articleCard.readMore

nginx 301 问题

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

2022/7/26
articleCard.readMore

css 实现展开收起动画

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

2022/7/26
articleCard.readMore

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

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

2022/7/24
articleCard.readMore

css flex 布局超出隐藏

.fathor { display: flex; } .son1{ flex: 1; overflow: hidden;} 其他参考

2022/7/21
articleCard.readMore

css 隐藏滚动条

.demo::-webkit-scrollbar { display: none; /* Chrome Safari */ } .demo { scrollbar-width: none; /* firefox */ -ms-overflow-style: none; /* IE 10+ */ overflow-x: hidden; overflow-y: auto; }

2022/7/21
articleCard.readMore

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

overflow: hidden; text-overflow: ellipsis; white-space: nowrap;

2022/7/21
articleCard.readMore

css 填充 svg 颜色

需要使用 fill: #fff 才行,color 与 background 是没用的。

2022/7/21
articleCard.readMore

css 黑白滤镜

可以使用: filter: grayscale(50%); 具体可以参考 MDN filter - CSS 层叠样式表

2022/7/21
articleCard.readMore

nginx 反代丢端口

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

2022/7/21
articleCard.readMore

docker-compose 部署 matomo 分析系统

按照计划需要给博客增加分析系统,考虑到国内的网络情况,另外也想要数据完全的私有化,采用开源的 matomo 方案: matomo-org/matomo docker-compose 部署 php 版本的 matomo 和 mysql ,然后在外层宿主机通过 nginx 连接 matomo 容器中的 php 暴露的端口进行代理。经过一番折腾,配置如下:

2022/7/21
articleCard.readMore

基于 strapi 开发应用

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

2022/7/21
articleCard.readMore

strapi 关闭 Content Security Policy

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

2022/7/21
articleCard.readMore

nginx 反代 rewite url

之前部署 code-server 需要根据不同的路径反代不同的后端,并且还要在反代时根据正则做匹配。但一直没找到完美的方案,后来在 strapi 的文档找到了好用的配置,如下: 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 "Upgrade"; proxy_pass_request_headers on; }

2022/7/21
articleCard.readMore

Proxmox VE 直通显卡

2022/7/31
articleCard.readMore

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

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

2022/7/21
articleCard.readMore

Cent os 7 安装 zsh 5.6 以上版本

源码编译吧,步骤如下: yum groupinstall "Development tools" 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 "/usr/local/bin/zsh" >> /etc/shells chsh -s /usr/local/bin/zsh

2022/7/21
articleCard.readMore

win11 任务栏不合并

新装了 win11 ,但是总是合并任务栏就很难受。 StartAllBack 即可控制。

2022/7/21
articleCard.readMore

ProxmoxVE (PVE) 7.0 换源升级

2022/7/31
articleCard.readMore

用 SOCAT 端口转发

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

2022/7/31
articleCard.readMore

vim 修改文件格式为 unix

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

2022/7/21
articleCard.readMore

bash 数组操作

最近需要写一些脚本,其中一个需求就是把命令执行的结果存到一个数组,在后面遍历循环使用它,不多说直接上代码: array=(`./qshell listbucket2 mereith-www | awk '{print $1}'`) len=${#array[@]} i=0 while [ $i -lt $len ] do ./qshell delete mereith-www "${array[$i]}" #echo `${array[$i]}` let i++ done

2022/7/21
articleCard.readMore

git 无法 pull 仓库refusing to merge unrelated histories

在你操作命令后面加--allow-unrelated-histories

2022/7/31
articleCard.readMore

k8s 集群 control-plane-endpoint 主机名

2022/7/21
articleCard.readMore

git https 保存密码

2022/7/21
articleCard.readMore

Bash 判断命令存在 & 重定向

2022/7/21
articleCard.readMore

python 导出项目依赖

pip freeze > requirements.txt

2022/7/21
articleCard.readMore

cent os 7 安装 gcc 版本 9

起项目的时候,需要编译 node-gpy ,但是在 cent os 7 下报错: g++: 错误:unrecognized command line option ‘-std=c++14’ 这是因为 gcc 版本不对,需要升级。步骤如下: 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 "#!/bin/zsh" > /etc/init.d/gcc echo "source /opt/rh/devtoolset-10/enable" >> /etc/init.d/gcc chmod +x /etc/init.d/gcc 然后再编译就对了

2022/7/21
articleCard.readMore

System limit for number of file watchers reached

linux 下 vscode 报错,System limit for numer of file watchers reached,解决方法: echo "fs.inotify.max_user_watches=524288" >> /etc/sysctl.conf && sysctl -p

2022/7/21
articleCard.readMore

cent os 7 安装 git 2.x

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

2022/7/21
articleCard.readMore

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

.nav_item::after { content: ""; width: 0; height: 1px; background: #000; position: absolute; top: 100%; left: 50%; transition: all 0.5s; } .nav_item:hover::after { left: 0; width: 100%; }

2022/7/21
articleCard.readMore

linux 挂载 SMB/CIFS

yum install cifs-util echo "//192.168.5.3/Data /mnt/nas cifs defaults,_netdev,username=mereith,password= 0 0" >> /etc/fatab mount -a

2022/7/21
articleCard.readMore

linux 清除 ACL

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

2022/7/21
articleCard.readMore

windows 命令行安装 inf 驱动

步骤 pnputil -i -a <驱动文件>

2022/7/21
articleCard.readMore

cent os 换源

2022/7/21
articleCard.readMore

css 文字不可选择

-webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;

2022/7/21
articleCard.readMore

iperf3 网络测速工具

最近搞了一下家里的网,为了测试一下链接质量,使用 iperf3网速测试工具。 基本使用 安装 直接用包管理器安装就行了。 服务端 iperf3 -s 客户端 # 其中带宽需要输入,不然结果会很奇怪 iperf3 -c <服务器ip> -b 1000M -n 100G

2022/7/21
articleCard.readMore

k8s 1.21.3 从 docker 迁移到 containerd

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

2022/7/21
articleCard.readMore

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

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

2022/7/21
articleCard.readMore

从pve的硬盘里导出数据

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

2022/7/21
articleCard.readMore

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

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

2022/9/29
articleCard.readMore

Errors were encountered while processing

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

2022/7/21
articleCard.readMore

adguardhome配合clash

思路 我是基于懒人规则合集中例子配置的,最后我想配合adguardhome进行,所以我弄了俩,一个负责nameserver,里面都是国内的上游DoH和DoT,然后另一个负责fallback里面都是国外的。然后关闭fallback-filter,具体可以看我的另一片文章。 参考1: 使用 AdGuard Home 自建 DNS 防污染、去广告 #1 - 安装部署详解教程(Docker) 参考2: 使用 AdGuard Home 自建 DNS 防污染、去广告 #2 - 优化增强设置详解教程

2022/7/21
articleCard.readMore

pve中使用LXC容器安装OMV

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

2022/7/21
articleCard.readMore

LXC直通硬盘

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

2022/7/21
articleCard.readMore

nginx反代模版

如下: 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 "upgrade"; } }

2022/7/21
articleCard.readMore

docker常用开启容器的命令

最近一直在各种机子上部署docker,有些经常用的就放这里了。 部署镜像 docker安装 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun Portainer servere 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

2022/7/21
articleCard.readMore

PVE的LXC容器中安装Docker

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

2022/7/21
articleCard.readMore

ProxmoxVE系统分区相关

扩展 Proxmox 系统分区以及 Proxmox 文件系统初识 Can't remove final physical volume from volume group (Linux) PVE硬盘直通 USB硬盘挂载到PVE LXC容器使用/ Proxmox VE硬盘直通黑群晖

2022/7/21
articleCard.readMore

基于clash搭建旁路网关

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

2022/7/21
articleCard.readMore

Portainer添加节点

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

2022/7/21
articleCard.readMore

linux声卡设置及录音音

最近搞了个usb声卡,10块钱那种。

2022/7/21
articleCard.readMore

OpenWrt用VLAN

看了两个文章,看明白了 怎么用OpenWrt的VLAN功能实现单臂路由(主路由),省下一个VLAN交换机 在openwrt系统下划分vlan来隔离端口

2022/7/21
articleCard.readMore

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

2022/7/21
articleCard.readMore

adguardhome踩坑

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

2022/7/21
articleCard.readMore

debian添加系统服务

2022/7/21
articleCard.readMore

docker自动更新容器

大佬的博客

2022/7/21
articleCard.readMore

OpenMediaVault(OMV)安装Docker-Aria2

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

2022/7/31
articleCard.readMore

ffmpeg音视频淡入淡出

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

2022/7/21
articleCard.readMore

js全屏后元素变黑

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

2022/7/21
articleCard.readMore

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

最近入手了一款科大讯飞R1的阅读器,安卓8.1系统,啥都好,就是不能安装第三方app,开启adb需要特殊密码,咱也搞不到,于是另辟蹊径,修改刷机包实现安装第三方app。 下载地址: 刷机包下载

2024/4/18
articleCard.readMore

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

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

2022/7/21
articleCard.readMore

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

2022/7/21
articleCard.readMore

linux下判断网卡速率

直接命令: ethtool ethx

2022/7/21
articleCard.readMore

禁用win10自动更新

2022/7/21
articleCard.readMore

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

2022/7/21
articleCard.readMore

Win10家庭版启用组策略

2022/7/21
articleCard.readMore

距离考研还有36天

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

2022/7/21
articleCard.readMore

powershell映射网络驱动器

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

2022/7/21
articleCard.readMore

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

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

2023/2/17
articleCard.readMore

PVE设置硬盘直通

2022/7/21
articleCard.readMore

PVE导入img磁盘镜像

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

2022/7/21
articleCard.readMore

ffmpeg音视频处理

2022/7/21
articleCard.readMore

intel ax200ngw刷killer 1650x教程

参考: [折腾] 把 Intel AX200 系列网卡刷成 Killer AX1650 系列网卡教程 最简方法 intel ax200ngw刷killer 1650x教程 的第七步开始

2022/7/21
articleCard.readMore

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

参考:我的世界MCSM面板搭建

2022/7/21
articleCard.readMore

powershell解压缩文件

2022/7/21
articleCard.readMore

powershell更改文件权限

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

2022/7/21
articleCard.readMore

用nvm来管理node版本

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

2022/7/21
articleCard.readMore

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

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

2022/7/21
articleCard.readMore

nginx反向代理上传文件报错

最近捣鼓了一下我的世界,弄了个控制面板然后用nginx反代,但是用控制面板带的文件管理上传文件时总是报错。 client_max_body_size 1000m;

2022/7/21
articleCard.readMore

openwrt旁路由踩坑

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

2022/7/31
articleCard.readMore

powershell禁止运行脚本

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

2022/7/21
articleCard.readMore

nginx禁止直接通过ip访问

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

2022/7/21
articleCard.readMore

debian10安装java

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

2022/8/5
articleCard.readMore

Ubuntu/Debian挂载ntfs硬盘

1.安装软件: sudo apt install ntfs-3g 2.查看硬盘名字 fdisk -l 找到要挂载的磁盘,记住他的设备名,例如/dev/sda1 3.挂载硬盘 #创建挂载目录 sudo mkdir /mnt/hdd0 #挂载硬盘 sudo ntfs-3g /dev/sda1 /mnt/hdd0 4.开机自动挂载 /etc/fstab,添加如下内容: /dev/sda1 /mnt/hdd0 ntfs-3g defaults,locale=zh_CN.UTF-8 0 0

2022/7/21
articleCard.readMore

screen命令手册(转)

原文链接 有时候我们ssh连接了服务器,但是一退出上面的任务也就终止了,为了退出的时候任务也能保留在后台运行,可以用screen命令来实现

2022/7/21
articleCard.readMore

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

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

2022/7/21
articleCard.readMore

Python操作MongoDB

主要参考(抄袭)自:Python操作MongoDB看这一篇就够了

2022/7/21
articleCard.readMore

ubuntu/debian安装文泉驿字体

最近在树莓派上弄3.5寸屏幕,想用PyQt5编写一个好看的ui,但是字体是个坑,但其实可以直接使用apt安装中文字体,例如安装文泉驿体命令: apt install ttf-wqy-zenhei 想用别的字体可以search一下啦。

2022/7/21
articleCard.readMore

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

在win10中运行hexo时,powershell报错: 解决方法: 以管理员身份打开powershell 执行下面的命令,选择(A)全是即可 set-ExecutionPolicy RemoteSigned

2022/7/21
articleCard.readMore

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

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

2022/7/21
articleCard.readMore

ubuntu的supervisor安装和使用

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

2022/7/21
articleCard.readMore

nginx上传文件大小限制

最近升级搭建了基于cloudreve的私有云,用nginx反向代理后发现无法上传超过4m的文件,解决方法如下: client_max_body_size 10000M; 其中大小可以任意修改

2022/7/21
articleCard.readMore

ubuntu18.04编译安装nginx

最近重新升级了一下网站,记录下编译安装nginx的过程怕以后忘了: # 安装依赖 sudo apt-get libpcre3 libpcre3-dev sudo apt-get install openssl libssl-dev sudo apt-get install zlib1g-dev # 下载编译安装 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 # 添加到系统环境变量方便调用 vim /etc/profile # 在最后添加 export PATH=/usr/local/nginx/sbin:$PATH # 导入 sudo source /etc/profile # 记得权限问题

2022/7/21
articleCard.readMore

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

最近帮同学处理一些数据,目的是分别从不同的一些excel文件中收集数据,按照格式汇总到生成的excel中. 参考: python:xlrd模块 python:xlwt模块

2022/7/21
articleCard.readMore

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

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

2022/7/21
articleCard.readMore

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

前言 最近一直在学爬虫,从最基本的urllib到requests、beautifulsoup到分布式爬虫框架scrapy,现在终于感觉可以上路了。所以先基于scrapy重写了我以前做的小说爬虫,代码都很简单,就不注释了。相关的知识点在我的python爬虫系列文章后面都会介绍到。 scrapy官方文档(无中文) python官方文档(有中文) 思路 1.搜索小说名,用requests+lxml爬取结果,并让用户选择结果,返回小说目录的url scrapy根据目录url解析小说章节数以及每章的具体url,其中把小说章节数送给item再到itempipeline保存,每章的url则是生成异步请求,结果送给parse_chapter进行下一步的解析 parse_chapter解析每一章的内容,替换没用的\xa0,写入到item里,返回交给pipeline处理 pipeline为了写入文件章节顺序是对的,每次返回的item都先保存到包括当前章节编号和内容的字典里 使用说明

2022/7/21
articleCard.readMore

python读取excel查重

python读取excel并查重 主要就是用了xlrd,代码如下,简单易懂就不注释了哈: import xlrd import time from collections import Counter t1 = time.time() data = xlrd.open_workbook(r'C:\Users\pve_win10_1\Desktop\suanfa\text.xlsx') table = data.sheet_by_index(1) list1 = [] for i in range(table.nrows): list1.append(table.cell(i,0).value) b = Counter(list1) for key,value in b.items(): if value > 1: print('{}重复在:'.format(key),[i for i in range(len(list1)) if list1[i] == key]) t2 = time.time() print('用时:',t2-t1,'s') 知识点

2022/7/21
articleCard.readMore

python-docx中文字体设置

最近用python-docx写word,默认的字体大小不一很难受。 style对象中如下: doc.styles['Normal'].font.name = u'等线' doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),u'等线')

2022/7/21
articleCard.readMore

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

沙雕动画处女座出炉! 立下的flag终于拔掉了哈哈哈哈 准备做一个系列,讲小绿的故事 这是第一期:小绿是个头铁的人 PS:以后视频都在b站发,感兴趣的请点击头像下面的bilibili关注我哦 {% raw %} {% endraw %}

2022/7/21
articleCard.readMore

youtube-dl使用方法(转)

网址

2022/7/21
articleCard.readMore

hexo添加本站运行时间

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

2022/7/21
articleCard.readMore

python版本管理

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

2022/7/21
articleCard.readMore

基于opencore的ryzen黑苹果10.15.3

【更新】现已升级到10.15.4,oc版本到0.5.6. 相关引导文件以上传至github:OC-EFI-2700-B450i-wifi-rx580 配置如下,基本上和我配置差不多的都可以通用哈。 硬件 型号 cpu ryzen 2600 主板 技嘉b450i wifi pro 显卡 rx584 内存 金士顿hyper 3000 ddr4 16gx2

2022/8/12
articleCard.readMore

hexo/next增加鼠标点击效果

2022/7/21
articleCard.readMore

hexo图标设置

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

2022/7/21
articleCard.readMore

hexo博客添加ssl证书

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

2022/7/21
articleCard.readMore

hexo博客配置cdn加速

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

2022/7/31
articleCard.readMore

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

众所周知,配置环境一直是个有点小麻烦的事儿,tensorlow分为gpu版本和cpu版本的,其中gpu版本的需要额外的cuda和cudnn,但是你要是不用gpu吧,又太慢了。上次实在linux下安装开发环境,这次我们在win10下安装tensorflow环境带gpu的版本,为了省事,我们用acaconda进行快速安装。 安装Anaconda3 按照官网的描述: {% blockquote %} emm说白了就是一个python/r 的科学平台,可以很方便的帮你配置环境,管理各种包。

2022/7/21
articleCard.readMore

hexo设置文章置顶

2022/7/21
articleCard.readMore

hexo添加视频音频的方法

最近写东西用到了视频和音频,所以就研究了一下。 hexo-tag-aplayer和hexo-tag-dplayer,对应音频和视频:

2022/7/21
articleCard.readMore

基于UWB的室内三维定位

现已开源 github:RTLS-UWB 最近做了课程设计,是 基于UWB的室内三维定位,现在大概过程整理如下:

2024/11/26
articleCard.readMore

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

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

2022/7/31
articleCard.readMore

hexo引用本地图片无法显示

最近有时间了,重新升级启用 hexo&next,但是发现升级以后,本地图片没办法显示了! 可能的原因如下: 插件没安装 安装一个图片路径转换插件 hexo-asset-image _config.yml没有修改 打开hexo目录下的_config.yml,修改下面内容: post_asset_folder: true

2022/7/21
articleCard.readMore

博客更新记录

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

2022/8/4
articleCard.readMore

hexo next文章摘要显示图片

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

2022/7/31
articleCard.readMore

hexo文章加密

加密方法: npm install hexo-blog-encrypt --save

2022/8/4
articleCard.readMore

hexo优化压缩

安装 npm install hexo-all-minifier --save

2022/8/4
articleCard.readMore

hexo自定义页面的方法

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

2022/8/4
articleCard.readMore

ubuntu grub更改默认启动项

方法 sudo vim /etc/default/grub 把 default的选项改成你想要的(从0开始),然后 update-grub即可

2022/8/4
articleCard.readMore

sqlite3一键安装脚本(ubuntu)

前几天上嵌入式的课,让搭建sqlite3环境,挺麻烦的,写了个脚本,记录如下: 源代码 #!/bin/bash echo '*****************************************************' echo echo 'sqlite自动安装脚本_wanglu' echo echo '*****************************************************' read -p "自动下载? y/n :" door if [ "$door" = "y" ] then read -p "即将下载,任意键开始" sudo apt install curl curl -O https://www.sqlite.org/2019/sqlite-autoconf-3280000.tar.gz tar vxzf ./sqlite-autoconf-3280000.tar.gz cd sqlite-autoconf-3280000 sudo ./configure --prefix=/usr/local sudo make sudo make install elif [ "$door" = "n" ] then read -p "请确保文件名为sqlite-autoconf-3280000.tar.gz并在同一目录内" tar vxzf ./sqlite-autoconf-3280000.tar.gz cd sqlite-autoconf-3280000 sudo ./configure --prefix=/usr/local sudo make sudo make install else echo "输入错误!请输入y或者n" fi echo echo '****************************************************' echo echo '完成!请再退出脚本后执行 sqlite3 进入环境' echo 使用方法 保存下来 bash 文件名即可

2022/7/21
articleCard.readMore

arm-linux-gcc一键搭建脚本

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

2022/8/4
articleCard.readMore

ubuntu18.04深度学习环境搭建

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

2022/7/21
articleCard.readMore

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

最近在买了一堆vps,用ssr+我的路由器实现了在ipv6校园网环境下的免流+科学上网,现在分享给大家 技术原理 vps 虚拟专用服务器,就是你买了一台在网上的虚拟的服务器,别人帮你管理,你只要用它就好了,很省心,而我们选用外国的云服务器就可以通过ssr代理来让vps替我们访问youtube等网站了。 ss/ssr 可以理解为是一种vpn,主要用来科学上网,ssr全称是shadowscoks-R,前身为ss但它被大家熟知后广泛使用,再后来,据说因为作者被请去“喝茶”, ipv6免流原理 高校原生开通了ipv6,而且是不限流量的,但是ipv4一般是限流的(比如一个月30g),而我们经常访问的网上资源,都是ipv4的,所以我们校园网没流量了,就无法上网了,但其实哪怕是没流量了ipv6也是可以访问的,可以点下面的ipv6测试链接,如果成功,就证明你有ipv6哦 ipv6测试 而我们就是通过ipv6通道连接vps,然后让vps替我们用ipv4来访问ipv4的资源,再把数据通过ipv6的通道给我们发回来。 科普什么是ipv6 科普什么是ipv4

2022/7/31
articleCard.readMore

markdown在hexo中的基本语法

如题,在hexo中markdown有些许不同哦~ markdown基本语法 标题 在想要设置为标题的文字前面加#来表示 效果如下: 字体 *加粗 两个*号包起来 *斜体 一个*号包起来 *斜体加粗 三个*号包起来 *删除线 两个~号包起来 示例: 效果如下: 引用 引用的内容前面加>即可,加几个是几级引用 效果如下: ![](https://pic.mereith.com/img/show form.png-slim)

2022/7/21
articleCard.readMore

hexo博客简单配置和使用

东西建好了,总得会用吧~ 写作 hexo采用的是markdown的语法,所以你要先学会怎么用markdown 请参考:markdown基本语法 创建新文章 hexo new "你的文章名字" 删除文章 直接删除_post文件夹下的md文件就行了 添加本地图片 ![替代文字](图片地址) 在hexo中,如果你想引用本地图片,你需要先安装hexo-asset-image的插件,然后在生成的post下面的文章目录就会自动多一个和文章同名的文件夹 图片地址改成 同名文件夹/图片名.jpn就行了哦 效果如下: 参考链接

2022/7/21
articleCard.readMore

next主题优化

因为参考了很多别人的东西,所以现附上参考链接~ 参考链接 next配置优化(一) next配置优化(二) next配置优化(三) next配置优化(四) 添加萌宠 所用的插件如下: hexo-helper-live2d 评论系统 valine 简单免费的评论系统,next主题直接集成 注册 [点我注册]https://leancloud.cn/dashboard/login.html#/signup(https://leancloud.cn/dashboard/login.html#/signup) 创建应用 创建一个应用,在设置里找到你的appid和appkey 修改配置文件 修改主题配置文件,搜索valine,填入你的appid和appkey ###gittalk 官网链接 参考教程 shareSDK分享系统 注册sharesdk的账号 注册链接 在hexo中添加sharesdk 在themes/next/layout/_partials/share/中新建一个叫sharesdk.swig的文件,添加如下内容 <!--MOB SHARE BEGIN--> <div class="-mob-share-ui-button -mob-share-open">分享</div> <div class="-mob-share-ui" style="display: none"> <ul class="-mob-share-list"> <li class="-mob-share-weibo"><p>新浪微博</p></li> <li class="-mob-share-tencentweibo"><p>腾讯微博</p></li> <li class="-mob-share-qzone"><p>QQ空间</p></li> <li class="-mob-share-qq"><p>QQ好友</p></li> <li class="-mob-share-renren"><p>人人网</p></li> <li class="-mob-share-kaixin"><p>开心网</p></li> <li class="-mob-share-douban"><p>豆瓣</p></li> <li class="-mob-share-facebook"><p>Facebook</p></li> <li class="-mob-share-twitter"><p>Twitter</p></li> </ul> <div class="-mob-share-close">取消</div> </div> <div class="-mob-share-ui-bg"></div> <script id="-mob-share" src="http://f1.webshare.mob.com/code/mob-share.js?appkey={{ theme.shareSDKappkey }}"></script> <!--MOB SHARE END--> 修改这写的目的是为了让我们能够在主题的配置文件中添加appkey,只需要在主题的配置文件中添加一个shareSDKappkey并为其附上值即可 添加可选配置 找到主题文件夹中的layout/post.swig,在duoshuo_share关键字下面那一行添加(注意缩进): {% elseif theme.sharesdk %} {% include '_partials/share/sharesdk.swig' %} 修改_config.yml 打开主题配置文件,在后面添加: #shareSDK sharesdk: true shareSDKappkey: 你刚复制的appkey

2022/7/21
articleCard.readMore

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

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

2018/12/8
articleCard.readMore

Netgaer 路由器救砖

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

2022/7/21
articleCard.readMore