木木的木头

一只爱折腾的小程序猿

使用PVE搭建安卓云手机

Bliss On PVE

目前能够在x86平台运行的android项目主要有3个 1、Android x86 这个是最原始,最早的版本,但是这个项目已经3年没有更新了,因此后续又出现了多个基于此项目的新项目 2、BlissOS 3、PrimeOS 官网号称是最稳定的android x86系统,但是我在PVE上面没有运行起来 以上3个项目是我在网上能找到的主流android x86项目,断断续续花了一周多时间研究,...

快速搭建一个属于自己的域名邮箱服务

域名邮箱

前言 为什么要自建邮箱?邮箱就像电话号码一样,是一个联系方式,这个联系方式一旦留给对方就没法改了。因此一个常用邮箱一旦丢失,损失十分巨大。通常来说,我们使用腾讯、网易、Google这些大公司的邮箱服务,一般来说这些公司也不会倒闭,但是!万一呢?现在的互联网巨头,说不定十年二十年后就倒了呢。除了这个风险,更加需要担心的是莫名其妙的封号,比如发了什么敏感内容、或者你没绑定手机号、没实名,都可能...

双系统电脑远程切换启动系统

Linux

背景: 电脑安装双系统且使用UEFI引导操作系统。假设我将Linux的Grub设置为首选启动项,默认情况下,按需电脑电源开关,电脑将自动启动到Linux操作系统下。 那么就会出现一个问题,假设我人不在家,我远程通过WOL开机。开机以后我电脑就自动进入Linux了,那此时如果我想进Windows系统咋办呢,电脑开机阶段我又没法操作。 方案1: 如果电脑目前的UEFI首选引导是Grub的...

PVE黑群晖场景下的磁盘性能测试

黑群晖

背景:黑群晖的内网SMB拷贝速度始终上不去,使用iperf3工具测试排查网络问题后开始排查硬盘问题。 为了找到问题根本,我耗时两天,进行了各种磁盘性能测试。 省流总结:随便什么姿势,随便选一个就行,性能区别不大(我主板只有一个SATA控制器,没测直通控制器,但是按网上说的,区别也不大) 设备: 物理机: CPU:D1581 内存:128G 2133 MHz ECC 磁盘:3...

当网络唤醒遇上双系统

UEFI启动项切换

背景 电脑使用远程网络唤醒(WOL),但是Wol仅仅只能唤醒电脑,不能对电脑进行其他操作。如果你的电脑是双系统的话(我是Win10+Ubuntu),这个时候没法控制电脑进入哪一个系统。 另外,由于电脑启动过程是在操作系统加载前,所以也不能能自己编程解决。 调研方案 一、 KVM OVER IP 经过调研,对于机房服务器来说,这种情况有很完善的解决方案,服务器设备可以通过kvm ov...

OpenWRT定制化编译过程

OpenWRT

为啥要自己编译 1、路由器作为家里的网关核心,网络安全至关重要,网上随便下一个镜像刷进去实在是不放心。毕竟别人的镜像要设后门太容易了 2、自己家里有各种各样的需求,别人的镜像总有一些不满足的地方。如果别人都满足的话,那肯定又会多编译一堆没用的东西,因此只有自己编译的才是最合适的。 编译条件 OS: Ubuntu操作系统 安装依赖: sudo apt-get update sudo...

部署GZIP炸弹反网页爬虫

GZIP炸弹

背景 最近网站访问量突然暴涨,QPS达到300+,每小时请求量达到了100W+。我还以为我突然出名了,结果掏出Nginx日志一看,100万请求中有100万都是404页面,访问路径全部都是 /vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php /wp/install.php /thinkphp/exec.php 类似的这种地址。很明显有脚...

修改运行中的Docker容器修改端口

Docker

在docker run创建并运行容器的时候,可以通过-p指定端口映射规则。但是,我们经常会遇到刚开始忘记设置端口映射或者设置错了需要修改。当docker start运行容器后并没有提供一个-p选项或设置,让你修改指定端口映射规则。这时可以通过暴力手段,直接强行修改docker容器的配置文件,从而修改容器端口。 对应Linux操作系统 1、先查询出容器的Id docker inspect ...

如何正确写出反人类的Es DSL语句

ElasticSearch查询语句

一个查询语句写了三天,掉了无数头发,依然没写出来,试问dsl还能再反人类点吗 由于es海量存储量的特性,现在业务基本上都是把es当成db来使用,因此写五花八门的查询语句是经常的事。平时写个一般的查询,比如 xxx=123 这种条件都不是什么问题,但是当遇到 a=123 and b=345 and (c=456 or (d =789 and e != 987 )) 这种条件的时...

/dev/tcp实现http请求

在服务器没有安装wget和curl的情况下利用/dev/tcp实现http请求 #!/bin/bash function __curl() { read proto server path <<<$(echo ${1//// }) DOC=/${path// //} HOST=${server//:*} PORT=${server//*:} ...