羊被薅死了

前言

最近听说了两件事 , 一是jsdelivr修改了条款 , 对滥用jsdelivr来加速图片的账户可能进行屏蔽. 不幸的是我的一个专门用来存储图片的github帐号就中奖了. 二是谷歌云的免费试用时间调整到了三个月 , 本来还打算想办法弄一张信用卡来继续撸谷歌云的, 没想到连谷歌这样的大厂都被撸的害怕了. 感觉来自资本主义的羊毛不好薅了 , 网络自由的成本可能越来越高了 .

之前介绍过用heroku搭建v2ray的那个项目 , 虽然操作简单 , 但是速度实在是不稳定 . 今天介绍这个项目利用IBM Cloud Fonudray来搭建V2Ray . 我测试的结果很不错 , 和我的谷歌云节点不相上下.

项目传送门

下面给出项目中README文档内容 , 以供参考 .

使用IBM Cloud Fonudray搭建V2Ray

首先注册https://cloud.ibm.com/

注册步骤略过

登录后点击右侧 创建资源

image-20200615192854218

可以找到Cloud Foundray

image-20200615193004495

创建公共应用程序

image-20200615193052842

填写相关信息

image-20200615193202810

区域必须达拉斯,只有那里有免费的。

image-20200615193340241

填写应用名称

接着进入右上角命令行

image-20200615210821081

打开命令行,右上角选择相应的地区(Dallas),粘贴一键安装脚本:

1
wget --no-check-certificate -O install.sh https://raw.githubusercontent.com/CCChieh/IBMYes/master/install.sh && chmod +x install.sh  && ./install.sh

image-20200615210944753

在配置的时候需要输入应用名称(这里就是我创建应用的时候输入应用名称我输入的是ibmyes,你需要改成你自己的名称)和应用内存大小(我们刚刚选择的是256)

image-20200615211154143

配置好,等待几分钟,便可自动完成安装。完成安装后,将输出随机的UUID 、WebSocket路径以及对应的配置链接:

image-20200615211339053

然后访问我们刚刚的应用的域名,如果不记得可以返回我们刚才的资源,点击访问应用程序

image-20200615211851731

URL后加上生成的WebSocket路径,看到Bad Request便成功了

image-20200615211949359

这里请记下你的域名

把完成安装后输出的配置链接复制到你的v2rayN或v2rayNg中,修改地址为你的应用的域名(前面我们Bad Request那个网页的域名。

image-20200615212537944

至此我们已经有一个可用的v2ray了,但是他每10天会重启一次,而且网速延迟很差,所以接下来会解决这个问题。

利用Github的Actions 每周重启 IBM Cloud Fonudray

IBM Cloud 10天不操作就会关机,所以我们需要 十天内对其重启一次,避免关机。

首先登录IBM Cloud

点击又上角的命令行

在这一步我们主要是记录4个值

1
2
3
4
IBM_ACCOUNT // IBM Cloud的登录邮箱和密码
IBM_APP_NAME // 应用的名称
REGION_NUM // 区域编码
RESOURSE_ID // 资源组ID

具体后面会一步一步完成

image-20200615175949804

进入命令行先执行

1
ibmcloud login

输入邮箱和密码。

之后记录下区域(Region)

image-20200615180817619

1
2
3
4
5
6
7
8
#1. au-syd
#2. in-che
#3. jp-tok
#4. kr-seo
#5. eu-de
#6. eu-gb
#7. us-south
#8. us-east

这里需要记下和区域对应的编号也就是REGION_NUM,比如我这里是us-south,那么我的区域编号是7

接下来获取资源组idRESOURSE_ID

1
ibmcloud resource groups

image-20200615183425453

图中所指向便是RESOURSE_ID

现在返回github,到本项目

1
https://github.com/w-gx/IBMYes

image-20200615184239713

右上角fork到自己的github下,然后进入setting

image-20200615184327329

选择Secrets

image-20200615184426979

New secret

分别建立四个secret

1
2
3
4
IBM_ACCOUNT // IBM Cloud的登录邮箱和密码
IBM_APP_NAME // 应用的名称
REGION_NUM // 区域编码
RESOURSE_ID // 资源组ID

IBM_ACCOUNT为例image-20200615184703280

第一行为邮箱,第二行为密码。

这里需要邮箱和密码所以中间换行 ,其他的不需要换行 。

把四个secret补充完成

image-20200615185015130

之后点击上方Actions,在这里你就会看到有个IBM Cloud Auto Restart在执行。

image-20200615185614978

如果没有看见Action的话到自己仓库的/.github/workflows/ibm.yml

image-20200615235426917

编辑下,随意增添个空行然后commit下

image-20200615235540567

就可以看见有action了

第一次可能因为secret没添加导致workflow执行失败,只需要点下

image-20200615191100959

进去后按照下图

image-20200615191035212

找到 Re-run jobs重新执行一次即可,至此自动重启已经ok了。

感谢药油@My Flavor,原本打算弄bash在自己服务器定期执行脚本,现在看了他的帖子,发现用Actions是一个更好的选择。

Cloudflare 高速节点中转

此部分贡献来自药油@Joyace、@老婆以及@小俊博客

cloudflare官网:https://www.cloudflare.com/

注册,登录这里不再累述。

登录后左上角点击菜单找到workers

image-20200615214101750

创建Worker

image-20200615214140306

打开和复制脚本

1
2
3
4
5
6
7
8
9
10
addEventListener(
"fetch",event => {
let url=new URL(event.request.url);
url.hostname="ibmyes.us-south.cf.appdomain.cloud";
let request=new Request(url,event.request);
event. respondWith(
fetch(request)
)
}
)

修改第四行为你的应用的域名

image-20200615214339159

点击发送,测试是否出现Bad Request,出现则成功,点击保存并部署。

image-20200615214543839

image-20200615214722195

这里会给一个网址,*.*.workers.dev,这就是你的cloudflare中转后的域名。

然后我们去v2的客户端中修改地址

image-20200615215120033

现在已经使用了cloudflare的代理。

下面我们将筛选cloudflare的高速节点。

克隆本项目到你的电脑上。

打开项目下的fping-msys2.0目录运行自动查找最优CF节点-懒人专用.bat

image-20200615215435278

这里假设我获取的最优ip是104.17.188.91

在客户端把地址换成ip,伪装域名换成我们cloudflare的workers的域名即可

image-20200615215820188

如果不方便用电脑优选ip也可以把地址设为cloudflare.comicook.tw,这两个一个cloudflare官网,自然也是使用自家cdn,另外一家是台湾省的一个网站,域名指向的ip一般也是比较好的线路。

image-20200615220201165

这里稍微提下原理吧,主要涉及CDN和请求头部,CDN识别流量是访问哪个网站的是根据请求头的Host来识别,所以这里要么host用我们的域名 ,要么我们伪装成我们的域名,这样都可以达到回源我们网站的请求。如果自己有域名也可以换自己的域名,域名也可以从第三方接入商cname,有兴趣的同学可以自己研究下。