GoFlyway 进阶教程:免费域名+免费CDN+HTTP伪装=被墙的IP继续做代理

  • A+
所属分类:技术文档

一早的时候,就有个大神在 Goflyway 的WIKI中发现了 Goflyway套CDN的方法(看了下是去年底 新增的功能),于是我研究了以下,发现很简单。

此教程适合于 服务器IP被墙却无法退款只能吃灰 和 对速度要求低只需要保证服务器不会动不动就被墙IP 的人观看。

如果你的IP已经被墙了,那么可以用这种方式让你的被墙IP的服务器继续拿来做代理,如果你服务器还没有被墙,那么可以预防IP被墙

  1. 注意:通过套CDN的方式来链接代理服务器,可能会导致速度下降,速度取决于 你与CDN之间的网络质量 和 CDN与你代理服务器之间的网络质量。
  2. 总归,做好心理准备,别指望速度快,这种强行续命的方子总会有其不可忽视的弊端。。。
  3. 注意:目前 Goflyway 既可以通过 CDN 方式复活被墙IP,也可以通过 KCP 协议复活被墙IP。

Goflyway一键脚本 已支持配置 HTTP伪装,Goflyway Tools 客户端已支持 CDN 模式启动。

原理说明:

本质上 Goflyway 是一个HTTP服务,所以他也支持反向代理,可以用来HTTP伪装,而他又支持 WebSocket 协议,所以它同样可以经过 CDN 来传输数据,也就是:Goflyway + WebSocket + HTTP + CDN。目前能实现套CDN方式的代理软件只有 Goflyway 和 V2ray。

  1. 以下教程以 Cloudflare CDN 为例,其他支持 WebSocket 协议的 CDN 均可使用(大型一些的CDN都支持)。

假设你的IP 1.1.1.1 被墙,那么你无法直接连接这个IP,那么就可以用免费CDN中转一下,你去链接免费CDN的节点IP即可。

  1. Goflyway客户端 <=> Cloudflare CDN节点 <==> Goflyway服务端(被墙IP)

首先你需要有个域名(免费域名也可以),因为使用CDN必须要有域名,例如:a.com

然后服务端配置反向代理 b.com 这个域名,接着在 CDN中把域名解析到你被墙的IP(a.com --> 1.1.1.1),最后等待CDN解析生效,生效后你使用 Goflyway客户端链接该域名,CDN就会转发数据到到Goflyway服务端(被墙IP),而你如果直接访问域名 a.com ,就会看到 b.com 网站的内容。

域名相关:

首先你要有个域名,如果你已经有了可以跳过这一步,如果你还没有,那么可以去随便申请个免费域名。

以下教程均以 Freenom 的免费域名为例。

  1. 注意:免费域名有可能会被收回(似乎不让反向代理),如果想要稳定,可以随便买个便宜域名,几美元一年的域名很多,建议海外购买域名(例如 namecheap)。

配置 Cloudflare CDN

如果你有 Cloudflare CDN 的账号,那么请 登陆,如果没有请 注册

展开

添加域名

注册或登陆成功后,我们直接访问添加域名页面:https://www.cloudflare.com/a/add-site

输入你要在 Cloudflare CDN 添加的域名,例如:doub.cf ,填写后点击 Add Site 按钮继续。

GoFlyway 进阶教程:免费域名+免费CDN+HTTP伪装=被墙的IP继续做代理

点击 Next 按钮继续。

GoFlyway 进阶教程:免费域名+免费CDN+HTTP伪装=被墙的IP继续做代理

选择第一个 FREE 套餐,并点击 Confirm Plan 按钮继续。

GoFlyway 进阶教程:免费域名+免费CDN+HTTP伪装=被墙的IP继续做代理

这个步骤可以先不管,直接点击 Continue 按钮继续。

GoFlyway 进阶教程:免费域名+免费CDN+HTTP伪装=被墙的IP继续做代理

修改域名DNS

GoFlyway 进阶教程:免费域名+免费CDN+HTTP伪装=被墙的IP继续做代理

到这一步,就会提醒你设置域名的DNS,我们复制这两个DNS(注意:可能你们看到的DNS和我图里的不一样,以你们看到的为准)

然后我们访问 Freenom 域名管理页面:https://my.freenom.com/clientarea.php?action=domains

找到你要配置的域名,点击 Manage Domain 按钮,进入管理界面。

GoFlyway 进阶教程:免费域名+免费CDN+HTTP伪装=被墙的IP继续做代理

然后点击 Management Tools - Nameservers ,然后勾选第二条 Use custom nameservers (enter below) 选项,接着如下图所示填写刚才复制的 DNS

填写正确后,点击 Change Nameservers 按钮保存DNS配置。

最后返回 Cloudflare CDN 配置页面,点击 Continue 按钮继续。

GoFlyway 进阶教程:免费域名+免费CDN+HTTP伪装=被墙的IP继续做代理


最后就如下图所示一样,提示生效中。

因为更换了DNS的原因,所以生效可能需要几小时到一整天,在这个等待生效的时间里我们先去设置一下其他东西。

GoFlyway 进阶教程:免费域名+免费CDN+HTTP伪装=被墙的IP继续做代理

取消自带 SSL

因为 Goflyway 是一个HTTP代理,所以我们需要关闭 Cloudflare CDN 自带SSL证书,避免报错。

点击页面顶部 Crypto 按钮,然后找到 SSL 配置并改为 Off 选项(如下图所示)。修改后直接应用生效。

GoFlyway 进阶教程:免费域名+免费CDN+HTTP伪装=被墙的IP继续做代理

设置域名解析

我们还需要配置一下域名解析。

点击页面顶部的 DNS 按钮,然后如下图所示,在第一个红框圈中的地方填写域名解析信息,下图示例解释:

  1. A:代表A记录,也就是域名解析为IP。
  2. go:指的是域名记录,也就是子域名:go.doub.cf,你可以填写为 @ ,这代表域名 doub.cf
  3. 45.62.xx.xx:指的是域名要解析的IP,这里写上你的被墙服务器的IP。

然后点击 Add Record 按钮添加域名解析记录。

添加后就如下图第二个红框所示

GoFlyway 进阶教程:免费域名+免费CDN+HTTP伪装=被墙的IP继续做代理

生效示例

当你在首页[Overview]看到如下图所示时,则代表域名DNS修改已经生效。

GoFlyway 进阶教程:免费域名+免费CDN+HTTP伪装=被墙的IP继续做代理

Goflyway 服务端配置(可选)

  1. 注意:此步骤(反向代理HTTP伪装)为可选步骤,无论是否配置反向代理HTTP伪装,都不会影响客户端使用,服务端只需要配置端口为 指定HTTP端口 就行了。当然,配置HTTP伪装可以更好的伪装,所以还是建议配置。

服务器IP被墙,如何安装 Goflyway 服务端?

让SSH软件走代理(putty xshell 都支持配置代理服务器,例如SS/SSR的本地代理 SOCKS5 127.0.0.1 1080),不会设置的话,用SocksCap64让SSH软件走代理。

  1. 注意:以下HTTP伪装示例网址是:http://kernel.ubuntu.com/~kernel-ppa/mainline/,但是我不希望大家都照着教程里写,最后则都是千篇一律的HTTP伪装网址,那反而会成为特征。
  2. 建议自己寻找合适的反向代理伪装网址,个人建议按照重要性排序需要满足:
  3. 1. 该网站位于海外;
  4. 2. 必须是 HTTP协议的网站(http://xxx,没有HTTPS或者不会自动重定向到HTTP的网站);
  5. 3. 最好该网站是 会用来传输大流量 的,例如我示例选用的 Ubuntu内核仓库网址,平时大流量传输很正常(下载内核)。

如果是一键脚本搭建的请看:

展开

  1. 首先确保 goflyway.sh 脚本版本号为 v1.0.4 以后,如果不是请更新脚本并重装 Goflyway。

然后运行脚本,安装 Goflyway 时(或者运行脚本 - 7.设置 GoFlyway 账号 - 4.修改 伪装配置)会提示你输入伪装地址,如下示例填写即可:

  1. 请输入 GoFlyway 要伪装的网站(反向代理,只支持 HTTP:// 网站)
  2. (默认不伪装):http://kernel.ubuntu.com/~kernel-ppa/mainline/
  3. ========================
  4.     伪装 :  http://kernel.ubuntu.com/~kernel-ppa/mainline/
  5. ========================

如果是手动教程搭建的请看:

展开

  1. # 先进入你的 Goflyway 服务端安装目录:
  2. ## 如果你是手动安装的,那么假设服务端安装在 /root 目录下:
  3. cd /root/goflyway
  4. # 然后运行启动目录。
  5. nohup ./goflyway -k="doubi233" -l=":80" -proxy-pass="http://kernel.ubuntu.com/~kernel-ppa/mainline/" > /tmp/goflyway.log 2>&1 &
  6. # doubi233 是密码
  7. 80 是端口
  8. # http://kernel.ubuntu.com/~kernel-ppa/mainline/ 是HTTP伪装的网站,必须是HTTP网站才行,这个网站就是我们平时更换内核开启BBR的 Ubuntu内核仓库。
  9. # 因为要经过 Cloudflare CDN,所以端口有限制,只能使用以下端口之一:
  10. 80 8080 8880 2052 2082 2086 2095

停止

  1. kill -9 $(ps -ef|grep "goflyway"|grep -v grep|awk '{print $2}')

查看日志

  1. tail -f /tmp/goflyway.log

Goflyway 客户端配置

如果是使用 Goflyway Tools 客户端的请看:

运行 Goflyway Tools 客户端并添加账号,服务器地址处填写你的 Cloudflare CDN 配置的域名(端口和密码照常填写),然后客户端协议选择 CDN,再启动代理即可。

如果是手动教程客户端的请看:

展开

我们只需要修改一下客户端手动教程内写入的运行脚本内容即可:

  1. # 原客户端教程 脚本内容
  2. goflyway.exe -up="1.1.1.1:80" -k="doubi233" -l=":8100"
  3. pause>nul
  4. # 修改后 脚本内容
  5. goflyway.exe -up="cf://go.doub.cf:80" -k="doubi233" -l=":8100"
  6. pause>nul
  7. # 记得把 go.doub.cf 替换为你的域名,端口号就是 Goflyway 服务端监听的端口,必须填写。

然后其他的该怎么用就怎么用,没影响。

效果示例

当你访问 go.doub.cf 时(如果你使用的不是80端口,那么就需要加上端口号,比如:go.doub.cf:8080),就会如下图所示,而你通过 Goflyway 客户端链接又能正常做代理。

GoFlyway 进阶教程:免费域名+免费CDN+HTTP伪装=被墙的IP继续做代理

其他说明

CDN模式下 Goflyway 服务端经常无法连接的问题

  1. 注意:在 v1.3.0a 版本后,该问题已修复。当然,如果你依然出现该问题,请先去 Github 向作者反馈,然后使用下面的方法临时解决。

1展开

最近经过观察和反馈(我分享的Goflyway CDN模式免费账号),发现在CDN模式下,Goflyway 服务端经常会无法连接,重启 Goflyway 服务端后正常。

目前不清楚为什么会这样,所以只能采取定时重启 Goflyway 服务端来解决这个问题,方法如下:

首先你要安装 Crontab 定时任务程序:

  1. crontab -l
  2. # 通过上面这个命令,判断服务器是否安装了 crontab ,如果提示命令不存在,那么安装:
  3. # CentOS系统:
  4. yum install crond -y
  5. # Debian/Ubuntu系统:
  6. apt-get install cron -y

确定安装成功后,接着添加定期重启任务

  1. crontab -l > "crontab.bak"
  2. sed -i "/goflyway restart/d" "crontab.bak"
  3. echo -e "\n*/30 * * * * /etc/init.d/goflyway restart" >> "crontab.bak"
  4. crontab "crontab.bak"
  5. rm -r "crontab.bak"
  6. # 如果你要删除定期重启任务,那么只需要在执行一遍上面的代码,但是需要跳过第三行代码。
  7. # 上面的代码 */30 * * * * 指的是 每30分钟 重启。
  8. # 代码 1 * * * * 指的是 每1小时01分时 重启。
  9. # 代码 1 */2 * * * 指的是 每2小时01分时 重启。
  10. # 最后你可以通过 crontab -l 代码来查看当前的定时任务。

图片引用自网络