IBM Cloud Foundry部署V2、利用Github的Actions 每周重启 IBM Cloud Fonudray并利用Cloudflare中转加速

本项目在原项目的基础上新增有:

  • 自动查找最新版本的V2Ray-core进行安装
  • 生成随机UUID以及Websocket Path并自动配置
  • 安装结束后在IBM shell中输出相应的vmess链接以方便用户配置
  • 在服务端配置中新增本地策略,优化了连接质量,减少不必要的资源占用

IBMYes

本项目包括3部分

  1. IBM Cloud Fonudray搭建V2Ray ws
  2. 利用Github的Actions 每周重启 IBM Cloud Fonudray
  3. Cloudflare 高速节点中转

使用IBM Cloud Fonudray搭建V2Ray

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

注册步骤略过

登录后点击右侧 创建资源

image-20200615192854218

可以找到Cloud Foundray

image-20200615193004495

创建公共应用程序

image-20200615193052842

填写相关信息

image-20200615193202810

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

image-20200615193340241

填写应用名称

接着进入右上角命令行

image-20200615210821081

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

wget --no-check-certificate -O install.sh https://raw.githubusercontent.com/hiiragiyuriko/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个值

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

具体后面会一步一步完成

image-20200615175949804

进入命令行先执行

ibmcloud login

输入邮箱和密码。

之后记录下区域(Region)

image-20200615180817619

#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

ibmcloud resource groups

image-20200615183425453

图中所指向便是RESOURSE_ID

现在返回github,到本项目

https://github.com/CCChieh/IBMYes

image-20200615184239713

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

image-20200615184327329

选择Secrets

image-20200615184426979

New secret

分别建立四个secret

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

打开和复制脚本

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,有兴趣的同学可以自己研究下。