Tuesday, September 24, 2019

使用Cloudflare来避免VPS的IP被封和继续使用V2Ray

申明:如果你不熟悉Linux+vi基本命令,建议跳过此文或先熟悉相应技能。本文内容主要来自以下两个教程:sprov的教程233boy的教程。其中参考了sprov教程的Cloudflare配置,v2ray搭建则参考了233boy教程,因为提到的脚本集成了各种配置。本文外加了一点个人操作经验和可能不到位的理解。

起因: 之前按照自建v2ray服务器教程用于科学上网,临近十一和网络周,发现端口反复被封杀,不停改端口用一段时间就无效,继而IP被封,搜了一下网上的学习资料,目前普遍采用的是Content Delivery Network(CDN)方法,相当于在VPS的IP和墙之间,加入一层云防护,让墙不知道真实的VPS IP,从而即使被封杀的IP也能继续使用,也可以避免对架构在VPS上的个人网站的IP进行直接攻击。

概念:为了申请CDN服务,一般推荐用Cloudflare(不推荐国内服务商),并且需要有个人申请的域名(一般推荐使用的域名服务商包括godaddy或freenom,第一年几块钱RMB,注意不要填写个人真实信息)。网上有很多教程(其中顺带也包括Caddy等配置和v2ray的安装,不推荐是因为这里会推荐一个最新的脚本一条龙帮你弄好)不再赘述。

在域名服务商和CDN服务商Cloudflare注册完毕之后,在域名服务网站上填写Cloudflare提供的DNS解析服务地址,然后在Cloudflare上填写相应的VPS IP即可,以上网上有很多教程,比如sprov的教程

安装:  这里推荐使用233boy的教程,因为集成了Caddy(支持https)和bbr一条龙服务,也免去了v2ray原版的配置麻烦。采用的VPS系统是Debian 10(9+都可以)

教程中提到的添加域名解析,即在Cloudflare上填写IP,注意这里强调务必把云朵点灰,是因为这样先不让云工作,从而在安装V2Ray时,脚本自动检测你的域名时,直接得到你的VPS IP进行配置。安装完可以查看v2ray status确认V2Ray和Caddy都在运行(说明Caddy也帮你弄好了),输入lsmod | grep bbr可以查看到tcp_bbr字样表示bbr也安装了。

然后继续按照上述233boy教程,将云朵点亮即可。 客户端Windows下推荐使用V2RayN,如教程所述,SSH登录VPS后输入v2ray url后,复制vmess链接然后在V2RayN可以直接自动填充为相应的内容。 这里说明一下V2RayN导出的config.json作为客户端配置文件,也可以用于v2ray-windows-64, Mac下的v2ray-core和安卓的BifrosV等软件使用。 使用体会,由于采用了CDN服务,发现网速在不同宽带提供商和不同时段,速度差别很大。

最后,让人崩溃的是谷歌学术竟然无法直接使用,提示Sorry等字样。解决办法是在VPS的/etc/hosts下添加比较新的谷歌学术IPV6地址(你的VPS需要开启IPV6支持)。以下是当前有效的地址:
2404:6800:4008:c06::be scholar.google.com
2404:6800:4008:c06::be scholar.google.com.hk
2404:6800:4008:c06::be scholar.google.com.tw
2404:6800:4008:c06::be scholar.google.cn

总结: 大概折腾了3天,重新仔细阅读v2Ray的白话版教程手册,到Cloudflare的申请和配置,以及各个搭建教程的使用,将VPS的服务毁掉又重建了很多次,最后发现上面这个教程集成的功能很省事且正常使用,感慨为了正常上网的耗时耗力,也惊叹于为了科学/正常上网众多程序猿的努力。

No comments: