使用Goflyway救活被墙机器

by LALA

荒岛 / 2019-06-06 21:34

经过这几天墙的洗礼,目前我手上有3台机器被X了,2台套路云1台AWS,这几天想扶个墙还真滴是难啊,我竟然潦倒到要去Linode临时开台小鸡搭个ss然后翻出来。。。

2台套路云是我平时的主力机,得想办法操作一下,前两天刚续费,好歹得把这个月用完吧,一开始我就想到了用V2Ray套CF,但是说实话我急着用,V2Ray配置起来太麻烦了,后来就想到了Goflyway,这个配置起来特别简单方便,正好水一篇文章,也算是记录一下吧。

因作者的预编译版本貌似不是最新的,所以这里决定自己编译一下。另外因为我几台机器的系统都不一样,所以这里我把我常用的CentOS/Debian编译和安装方法都写一下。。

开始之前,你需要准备一个域名,并且将域名接入到CloudFlare,然后在CloudFlare内添加一条解析记录,注意打开云朵的标志:

CentOS7:

yum -y install supervisor wget git

Debian9:

apt -y install supervisor wget git

下载Go:

wget https://dl.google.com/go/go1.12.5.linux-amd64.tar.gz     tar -xzvf go1.12.5.linux-amd64.tar.gz -C /usr/bin

CentOS7导入环境变量:

echo "export PATH=$PATH:/usr/bin/go/bin" >> ~/.bash_profile     source ~/.bash_profile

Debian9导入环境变量:

echo "export PATH=$PATH:/usr/bin/go/bin" >> ~/.profile     source ~/.profile

Goflyway的服务端和客户端都是一个文件,所以这里我使用交叉编译,同时把Linux和Windows的二进制文件编译出来:

mkdir goflywaybuild && export GOPATH=$PWD/goflywaybuild     go get github.com/mitchellh/gox     go get -u -d github.com/coyove/goflyway/cmd/goflyway     cd $GOPATH/bin     ./gox -os "windows linux" -arch amd64 $GOPATH/src/github.com/coyove/goflyway/cmd/goflyway

编译完成之后你将可以看到两个平台的二进制文件:

Linux平台的就直接改名并复制到/usr/bin:

cp goflyway_linux_amd64 /usr/bin/goflyway

Windows平台的就用SFTP下载到本地:

如果只需要编译Linux平台的:

mkdir goflyway && export GOPATH=$PWD/goflyway     go get -u github.com/coyove/goflyway/cmd/goflyway     cp goflyway/bin/goflyway /usr/bin     rm -rf goflyway && rm -rf go1.12.5.linux-amd64.tar.gz

接下来新建Supervisor的配置文件,将程序放到后台运行并进行守护:

CentOS7新建配置文件的路径:

nano /etc/supervisord.d/goflyway.ini

Debian9新建配置文件的路径:

nano /etc/supervisor/conf.d/goflyway.conf

配置文件内容通用:

[supervisord]     nodaemon=false          [program:goflyway]     priority=1     directory=/usr/bin     command=/usr/bin/goflyway -l=":8080" -k="imlala"     autorestart=true

注意:

1.使用Goflyway套CF,服务端监听的端口只能是CF支持的,具体支持的端口号可以看CF的介绍:

https://support.cloudflare.com/hc/en-us/articles/200169156-Which-ports-will-Cloudflare-work-with

2.-k后面是你的密码,务必设置一个复杂的。

最后启动Supervisor即可完成服务端的部署。

CentOS7:

systemctl restart supervisord     systemctl enable supervisord

Debian9:

systemctl restart supervisor     systemctl enable supervisor

接着我们来配置客户端,因为Goflyway程序没有GUI,要想使用的话得一直开着CMD或者PowerShell,这样太不方便,所以这里我们可以借助WinSw,将Goflyway创建为服务放在后台运行并实现开机自启。

WinSw下载地址:https://github.com/kohsuke/winsw/releases

XP系统下.Net2版本,其他系统下.Net4的即可:

现在你应该将之前编译的Windows平台下的Goflyway二进制文件以及WinSw放在同一个目录下,并且新建一个和WinSw同名的.xml文件:

打开xml文件,在文件内写入如下配置:

注:

1.12315是本地监听的HTTP/Socks5端口

2.-up=”cf://nginx.xxx.com:8080″,其中8080端口一定要和之前服务端上配置的端口一致。

现在打开PowerShell,进入到WinSw所在的目录,执行如下图所示的命令即可将Goflyway安装为服务:

客户端的配置到这里就全部完成了。

以Chrome为例,安装SwitchyOmege插件,添加Socks5代理:

我这边打开油管简单测试了一下速度,除了域名解析的时候可能会慢一丢丢,实际看视频的话,带宽是可以跑满的:

Shared via Inoreader