扔掉“百度”,教你在 RunKit 上 5 行代码免费创建自己的 google 镜像站

2019-01-23 13:10:33 +08:00
 imwalson

百度已死

22 日晚,自媒体新闻实验室一篇名为《搜索引擎百度已死:沦为替百家号导流的工具》的文章刷屏。文章指责百度搜索结果一半以上会指向百度自家产品,尤其是百家号,而百家号充斥着大量营销和质量低劣的内容,也导致百度搜索结果的内容质量大幅下滑。

这些年百度做过的恶,两只手都数不过来了,大家心里都有数。笔者也发现身边不少人“抵制百度”,却不得不用百度,原因是“用国内其他搜索引擎,体验比百度更差,爱国上网又不会,再加上买 VPN 或者自建 SS 服务也是一笔成本”。

此教程适合哪些人?

痛恨百度搜索,想日常使用谷歌搜索引擎作为替代,但是苦于没有爱国上网的技术或者成本的所有人。

介绍 Runkit

runkit.com 是一家什么网站?

某个偶然的机会发现了 runkit.com 这个网站,官网的介绍是 "Runkit is a node playground in your broser",顾名思义就是允许你在浏览器中运行 node.js 的代码。你可以随意引用成千上万的 npm 模块并运行,立刻就能看到运行结果,在日常的 node.js 开发中非常实用,笔者经常用他家提供的服务来写一些测试代码,提高开发效率、节省了很多时间。具体的介绍大家可以去官网看,首页展示的两个视频能一目了然的看出来 Runkit 能干什么。

ps: 由于使用了谷歌字体,在国内打开 Runkit 网站可能很慢,建议翻墙访问,之后访问创建完的谷歌镜像服务 url 地址就不需要翻墙了。

RunKit Endpoint

除了上面介绍的“在线运行 node.js 代码”,RunKit 还提供了 Endpoint 服务。官网的说明是 "Endpoint is a fast and simple way to write code with Node.js that can respond to HTTP requests from anywhere. There's no need to manage servers or deployments, instead just write code in RunKit. Getting started is as easy as implementing one function."。简单来说 Runkit 允许用户通过 exports endpoint 函数,来获得一个 url 地址,实现一个小型的 HTTP Server,很像如今很火的 FaaS “函数即服务”,具体可看 官方文档。值得一提的是,除了默认的 endpoint 函数写法外,直接运行一个 express app 并且绑定在 3000 端口,同样也能实现相同的效果。Runkit 目前完全免费( Endpoint 服务存在一些资源调用限制,具体限制如何不清楚,但是个人使用完全足够了),目前 Runkit 已经被 Stripe 收购,相信他家的服务还是有保障的。

借助 express.js 和 http-proxy-middleware 插件实现代理访问 google

有了以上基础,想要创建自己的 google 镜像就非常简单了。

1、免费注册账号,也可以使用 github 账号登录

ps: 由于使用了谷歌字体,在国内打开 Runkit 网站可能很慢,建议翻墙访问,之后访问创建完的谷歌镜像服务 url 地址就不需要翻墙了。

2、在个人中心创建一个工程

3、拷贝如下代码并运行

Title 标题随便写

拷贝下面的代码到正文里,然后点 run 运行:

var express = require('express');
var proxy = require('http-proxy-middleware');
var app = express();
app.use('/', proxy({target: 'https://www.google.com/', changeOrigin: true}));
app.listen(3000);

4、点击“ endpoint ”按钮

大功告成,点击“ endpoint ”后会跳转到一个 url 地址,不出意外这时候你应该已经能看到大大的“ Google ” logo 了(如之前开着 VPN,可以关闭 Vpn 后再打开这个地址试试),保存下这个地址,这就是你自己的私人 Google 镜像站了。

这是我自己刚创建的镜像站链接:Google

ps:

1、此 Google 镜像站仅供测试,随时会删除,请自行按照以上步骤创建自己的镜像站;

2、请勿滥用 Runkit 服务创建大量垃圾镜像站;请勿用于创建公开的网站服务(自己用就行,打算在上面建网站给他人使用还是算了),毕竟有请求数限制、且稳定性不足以胜任公开的网站要求。

后话

祝愿百度早点倒闭。

4482 次点击
所在节点    分享发现
61 条回复
LongLights
2019-01-23 13:16:55 +08:00
前排支持楼主
wly19960911
2019-01-23 13:20:30 +08:00
别把别人网站坑了啊,等下直接域名墙了你就得翻墙玩了。虽然现在开发几个不翻墙就是......
RoyL
2019-01-23 13:23:09 +08:00
不错,挺好用的
imwalson
2019-01-23 13:23:46 +08:00
@wly19960911 我也有点担心这个,我自己用这个方法好几年了,所以今天才分享出来。其实要使用这个网站本身是得会翻墙的,有一定门槛😂
refugeezhao2018
2019-01-23 13:30:30 +08:00
建个油管会不会被打。。。
viko16
2019-01-23 13:32:18 +08:00
反过来流量一旦大了,谷歌也会觉得这个出口 ip 不安全 block 掉,或者增加 recaptcha 啥的
imwalson
2019-01-23 13:36:25 +08:00
@refugeezhao2018 没用,这样只是代理了主站,你会发现点开进去以后很多资源包括视频都打不开,因为除了主站、youtube 还使用了其他非常多的资源二级域名都被封了
imwalson
2019-01-23 13:38:31 +08:00
@viko16 各自建立自己的服务用各自的应该还好,Runkit 他家的服务也不是单机部署,可能你创建的镜像站跟我的就部署在不同区域,ip 都不一样的
good
2019-01-23 13:44:35 +08:00
好奇怪 用微信浏览器访问这个帖子会自动跳转到首页
li02
2019-01-23 13:46:44 +08:00
@imwalson
有没有免配置,能部署在自己服务器的方法?
node 太复杂整不明白啊
imwalson
2019-01-23 13:51:14 +08:00
@good 不知道为啥,我用浏览器打开也会跳
imwalson
2019-01-23 13:53:19 +08:00
@li02 回头我可以把这个 node 工程写成简单的 docker 镜像,就能方便部署了。话说自己部署的话,除了用 node.js 还有其他更方便的解决方案啊,可以谷歌搜索一些
ResidualWind
2019-01-23 13:57:30 +08:00
操作简单 已创建 感谢楼主
imwalson
2019-01-23 13:58:27 +08:00
@ResidualWind 感谢为埋葬百度添加一把土🙂
ggwp
2019-01-23 14:03:41 +08:00
感谢楼主的分享
Trumeet
2019-01-23 14:10:53 +08:00
感謝,不過這網站遲早....( x
dapengzhao
2019-01-23 14:15:50 +08:00
{
"error": "rate_limit_exceeded",
"message": "There have been too many requests to this server. Try again later."
}
adamwang
2019-01-23 14:18:52 +08:00
感谢楼主的分享。
imwalson
2019-01-23 14:25:47 +08:00
@dapengzhao 我放的测试镜像站已经超出了请求数了😂自己创建个新的自己用应该够用,一个工程不行就多创建几个工程换着用
loli
2019-01-23 14:32:19 +08:00
@imwalson 大佬请问下有 DDoS protection by Cloudflare 的怎么反代?比方说 javlib.提示您未获授权,无法查看此网页。
https://untitled-lc28rlt3s02r.runkit.sh

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/529777

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX