lala.im:使用Goflyway救活被墙机器

運維技術·VPN代理·lala.im · 2019-06-06 · 107 人浏览

原文地址:https://lala.im/5773.html,請支持原作者!該處僅作轉載。

经过这几天墙的洗礼,目前我手上有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代理:

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

範例

運維技術 VPN代理 lala.im
Theme Jasmine by Kent Liao