使用Cloudflare Workers反带P站图片

近期一直在搞Pixiv相关的东西,也拿到了Pivision的原作者reiya的正式授权,成了新的维护者。于是一个又一个的问题摆在我面前,我必须要把她们一个一个推倒。 目前比较棘手的问题是:如何注册账号。实际上解决办法也很简单,反带P站就完事了。但这会出现另一个严重的问题:反带了P站,大量的图片会让我的小服务器吃不消。这时候,我发现了Cloudflare Workers。

简介

Cloudflare提供了免费的额度,每天10万次请求而不计算流量,简直就是用来反带的神器!

教程

1. 前提准备

  • 一个域名
  • 域名要使用Cloudflare的NS解析

2. 步骤

首先注册一个Cloudflare账号(估计大多数人都有),之后把你的域名使用Cloudflare解析(这个过程我觉得没必要详细讲了……)

然后打开你的域名管理页面,点击上面的Workers,再点击Launch Editor,进入脚本编辑器。

在编辑器中,点击左侧的Add script,之后输入脚本的名称,随便填一个pximg就好,之后点击Confirm创建脚本。

之后左侧会多出来一个脚本,点进去开始编辑。

删除掉里面所有的代码,粘贴下面的代码进去。

 1addEventListener("fetch", event => {
 2  let url = new URL(event.request.url);
 3  url.hostname = "i.pximg.net";
 4
 5  let request = new Request(url, event.request);
 6  event.respondWith(
 7    fetch(request, {
 8      headers: {
 9        'Referer': 'https://www.pixiv.net/'
10      }
11    })
12  );
13});

就像这样,然后点击save保存脚本。然后点击左上角的Dashboard返回域名面板。

之后点击Add route,填写https://你的域名/*,并且下面选择刚刚创建的脚本,举例如图。

再之后点击new Workers dashboard,根据提示创建一个二级域名。例如我的二级域名是yojigen.workers.dev,而刚刚创建的脚本的域名就是pximg.yojigen.workers.dev

最后一步,到DNS页面,添加一个CNAME记录到你的脚本域名下,并开启云加速。

至此,你就可以使用你的域名来作为Pixiv的图片反向代理了。

关于Pixiv第三方客户端无法登陆问题

现在不能文中所述的固定值了,必须要计算真实时间

昨日听闻Pixiv的API接口升级,大部分第三方的APP都无法登陆了,之后也是一直在找解决方案,最后在Mikusa的博客里面发现了这个 Iuuses ,并在里面找到了解决方案。

解决方案

Pixiv这次接口更新主要是在Header中加入了两个字段。 一个是X-Client-Time,内容为RFC3339格式的时间戳,类似

13000-01-01T00:00:00+00:00

另一个字段是X-Client-Hash,内容为X-Client-Time的内容加上

128c1fdd170a5204386cb1313c7077b34f83e4aaf4aa829ce78c231e05b0bae2c

之后再进行MD5编码

众所周知MD5是校验编码,无法还原为原始数据,所以因此可以推测服务器没有办法判断当前的数据是否合法,因此只要写死进客户端里一个规则合法的值就可以了。

最后只要在请求的Header中添加

1x-client-time: 3000-01-01T00:00:00+00:00
2x-client-hash: 93771864335ef0c8e52db10be563eab3

就可以解决问题~

解决Win10开启Hyper-V导致的安卓模拟器蓝屏问题

之前因为在自己这台电脑上需要跑一跑Docker,于是安装Docker的时候就被打开了Win10的Hyper-V,然而明日方舟新活动刚刚开起来,这就得上模拟器帮忙肝活动了,结果一开,蓝屏……

首先

先去关闭Hyper-V,这个大家都知道了

然后(坑)

用管理员权限启动CMD,在里面执行

1bcdedit /set hypervisorlaunchtype off

之后重启,才能完全关闭Hyper-V,真正解决蓝屏问题

拥抱开源,Chromium食用指南

前几天有人爆出 某些公司通过Chrome插件对用户信息进行采集,正在使用360极速浏览器的我脸色逐渐变得难看了起来(物理上的)。思考许久后决定去试吃比Chrome还干净,比EDGE更智能的Chromium。

安装

因为本身Chromium是开源项目,所以网上一般找到的都是源代码,不过经过我的搜索之后,我发现了https://chromium.woolyss.com这个网站。

原谅色的就是Stable版本,建议下载。 下载了安装包后,安装过程就和Chrome无异,静默安装,安装好了自动就会打开Chromium。

可能出现的问题

1. 提示缺少API秘钥:

因为Chromium是开源项目,所以没有内置Google服务的API,那么这样就可以分为两种情况了。

1. 如果你不需要Google服务

打开CMD输入以下指令即可。

1setx GOOGLE_API_KEY "false"
2setx GOOGLE_DEFAULT_CLIENT_ID "false"
3setx GOOGLE_DEFAULT_CLIENT_SECRET "false"

2. 如果你需要Google服务

可以使用我提供的API_KEY,打开CMD输入以下指令即可。

1setx GOOGLE_API_KEY AIzaSyDPC0ezsNg3TBGQgRyR2IkqNHjjxbkRQ3g
2setx GOOGLE_DEFAULT_CLIENT_ID 1098701266655-qd7q3jr0c6u7vd1soq1dtgbi05lr525p.apps.googleusercontent.com
3setx GOOGLE_DEFAULT_CLIENT_SECRET 3gvxP2FwfDBJ9wH2T1RerFcE

当然你要是信不过我觉得我会盗取你们的信息,那你也可以自己申请API_KEY:

  • 点此传送门
  • 创建或选择已有项目 →→ 左侧边栏 API和服务 →→ 凭证
  • 创建凭证(类型为 “API 密钥”,名称随意, 不使用密钥限制,记住生成的key)
  • 再创建一个凭证(类型为 “OAuth 客户端 ID”, 名称随意, 应用类型选择 “其他”, 记住生成的 “客户端 ID” 和 “客户端密钥”)
  • 格式填写自己的 API Key
1setx GOOGLE_API_KEY 生成的API密钥
2setx GOOGLE_DEFAULT_CLIENT_ID 生成的客户端ID
3setx GOOGLE_DEFAULT_CLIENT_SECRET 生成的客户端密钥

2. 使用Flash

Chromium默认是没有Flash插件的,虽然绝大多数时间都用不到Flash了,不过如果你确实有需求,可以这样弄。

这样就可以使用Flash了。

低配VPS上的MySQL优化

如果各位自己搞过网站的人可能会比较熟悉宝塔面板这个东西,装环境简单好用,我这个站也是一直在用其实是因为我太菜不会运维。不过新版的宝塔限制了MySQL不能在内存小于1.5G的机器里安装,而我正好前几天把自己的服务器配置缩到了1G,这就十分难受了。不过后来找了点资料,发现了解决办法。

配置

首先打开/www/server/panel/data/plugin.json这个配置文件,然后通过关键词找到如下代码:

 1{
 2    "name": "mysql",
 3    "versions": [{
 4            "m_version": "5.5",
 5            "dependnet": "",
 6            "version": "62",
 7            "os_limit": 0,
 8            "cpu_limit": 1,
 9            "mem_limit": 256
10        },
11        {
12            "m_version": "5.6",
13            "dependnet": "",
14            "version": "45",
15            "os_limit": 0,
16            "cpu_limit": 1,
17            "mem_limit": 768
18        },
19        {
20            "m_version": "5.7",
21            "dependnet": "",
22            "version": "27",
23            "os_limit": 0,
24            "cpu_limit": 1,
25            "mem_limit": 1560
26        },
27        {
28            "m_version": "5.1",
29            "dependnet": "",
30            "version": "73",
31            "os_limit": 0,
32            "cpu_limit": 1,
33            "mem_limit": 128
34        },
35        {
36            "m_version": "AliSQL",
37            "dependnet": "",
38            "version": "5.6.32",
39            "os_limit": 0,
40            "cpu_limit": 1,
41            "mem_limit": 768
42        },
43        {
44            "m_version": "mariadb_10.0",
45            "dependnet": "",
46            "version": "38",
47            "os_limit": 0,
48            "cpu_limit": 1,
49            "mem_limit": 768
50        },
51        {
52            "m_version": "mariadb_10.1",
53            "dependnet": "",
54            "version": "40",
55            "os_limit": 0,
56            "cpu_limit": 1,
57            "mem_limit": 1024
58        },
59        {
60            "m_version": "mariadb_10.2",
61            "dependnet": "",
62            "version": "25",
63            "os_limit": 0,
64            "cpu_limit": 1,
65            "mem_limit": 1024
66        },
67        {
68            "m_version": "mariadb_10.3",
69            "dependnet": "",
70            "version": "16",
71            "os_limit": 0,
72            "cpu_limit": 1,
73            "mem_limit": 1500
74        },
75        {
76            "m_version": "8.0",
77            "dependnet": "",
78            "version": "17",
79            "os_limit": 1,
80            "cpu_limit": 2,
81            "mem_limit": 4096
82        }
83    ],
84    "os": "Linux"
85}

然后把你需要安装的版本的mem_limit改成0,保存,就可以去安装了。

优化内存占用

其实宝塔之所以不让小内存机器装MySQL5.7,其实也是因为这玩意内存占用是真的高,启动就占300M,一跑起来随便就五六百。不过咱们的网站需求并不高,所以完全可以降低点配置。 先吧InnoDB关了,这玩意启动就会占好几百,反正MyISAM也是够用的。

1default_storage_engine = MyISAM

剩下的就不多说,按下图配,暴力缩减内存占用到350M。连512的小鸡都吃的下。

各位朋友如果装宝塔面板,建议还是装在CentOS上,我发现在Ubuntu上用宝塔,数据库安装总有奇奇怪怪的问题,到CentOS就一路畅通,反正怪得很。