免费科学上网工具整合

本文介绍两种完全不需要购买服务器就可以科学上网的方式。

  1. Cloudflare Workers,Workers 可以让你直接运行任何 JavaScript 程序,免除服务器部署等一系列烦恼,同时使用 Cloudflare CDN 的缓存技术,从全球任何一个地方访问都可以达到理想的速度。
  2. Heroku APP, 使用 Heroku 的云应用可以部署一个完整的 Web 应用程序,拥有前后端与数据库,就想当于在一台微型服务器上部署一样。

PS: 以下将要介绍的方式最终实现结果都是一个“Web 代理服务”,并不能像 V2Ray 或是 Shadowsocks 那样有完整的科学上网功能。如果有浏览网页以外的科学上网需求,那么还是建议购买服务器自行搭建代理。

Workers

Workers 免费版的限制是 10 万次请求/天,10 TB 流量/天。对于个人用户来说完全够用。

JsProxy

JsProxy 是一个基于浏览器端 JS 实现的在线代理。
Github: https://github.com/EtherDream/jsproxy

注册 Cloudflare

注册并登录 Cloudflare, https://dash.cloudflare.com

创建 Workers

注册完成后,点击主页,点击页面中的 Workers,然后点击创建。

取一个可以使用的域名,并点击继续。

选择免费版套餐。

部署 JsProxy

https://github.com/EtherDream/jsproxy/blob/master/cf-worker/index.js
打开上述网站并复制 index.js 中的代码。

编辑自己创建的 Workers,将复制的代码粘贴到 Script 中,覆盖原先的代码,点击保存并查看右侧的预览确保正确显示。

返回上一级,可以给应用改一个好记的名字。

现在可以直接使用此域名访问搭建好的“Web 代理”了。

效果展示

如图所示:(示例的中的地址是:https://proxy.fight-for-free.workers.dev/

访问谷歌。

访问 YouTube。

访问 500px。

此时已经完成“Web 代理”的部署,当然你也可以绑定已有的域名,下面介绍申请免费域名以及绑定 Workers 的方法。

申请免费域名

https://my.freenom.com
登录 freenom,可以使用 Google 账登录,需要全程使用全局代理。

注册域名

点击注册新域名。

搜索你想要的域名。

选择后在页面下方点击结算,跳转的结算页面。一路点继续直到申请成功。

将域名交由 Cloudflare 解析

在 Cloudflare 主页点击 Add Site,输入刚刚申请的免费域名。

记录下 Cloudflare 让你替换的 NameServer 地址(有两个)。

在 freenom 主页点击 MyDomains 查看已申请到的域名。

点击 Manage Domain 进入域名管理界面。

如图所示点击 Mangement Tools,替换成 Cloudflare 的 NameServer。

点击保存后,回到 Cloudflare 页面,等待生效,稍后可以点击重新检查,确认域名已经交由 Cloudflare 解析,成功后如图所示。

添加子域名

点击域名,接着点击 DNS,添加一条“A记录”或“CNAME记录”,A 的意思是,将域名指向 IPv4 地址,CNAME 记录的意思是将域名指向另一个域名。
PS: 此处的 Target 其实可以随意设置,因为等下会为 Workers 单独使用路由强制指定此子域名,这里是为了要让 proxy.fight-for-free.ml 这个子域名生效,正常情况下不要随意设置。
Name 的值填自己喜欢的,之后将作为子域名,Target 的值填 Cloudflare 给你的 Workers 生成的域名,填好后点击保存。

为 Workers 设置路由

点击域名管理页面的 Workers(注意不是主页的 Workers,否则将无法设置路由)。

然后点击 Add route。

Route 填写刚刚设置的子域名,格式为 https://xxx.xxxx.xx/* 结尾处一定要加 /*,Worker 选择之前创建的 Worker,点击保存。

现在,就可以使用自己的域名访问了!(示例中的地址是:https://proxy.fight-for-free.ml/

WorkersProxy

Github: https://github.com/Siujoeng-Lau/Workers-Proxy
WorkersProxy 同样是使用 Workers 部署的在线网页代理,其与 JsProxy 的区别是:

  1. 只能单独代理某个网站。
  2. 可以设置禁止特定 IP 或某些国家的 IP 访问。
  3. 完全没用到静态文件。(对比 JsProxy,JsProxy 的代码默认情况是从其开发者的网站加载静态文件,假如开发者的网站关闭了,则你还需在服务器或 Github Pages 提供 JsProxy 所需的静态文件。)

部署与 JsProxy 完全相同,使用哪个就看个人需求了。
(既然都看到这里,再创建并部署一个新 Worker 不会超过 5 分钟,爱折腾的你,为何不试试呢?)

GoIndex