H大固件GoFlyWay简单安装搭建教程goflyway Go编写的HTTP代理隧道

2021-08-01
0评论
/
972阅读
爱搜啊

最近 ss 很慢很慢,重装了也没有用,遂去网上找替代品  然后发现了现在流行使用的 goflyway,正好目前在学 go 语言就研究了下

goflyway 是使用 go 语言写的一款优秀的 http/socket 代理软件,据说速度很快

GoFlyWay简单安装搭建教程

服务端安装

没有 装 ss 那么复杂,也根本不需要一键脚本之类的,直接从项目的 release 下载编译好的就行了,windows,linux 下载编译好的对应的版本就行了

傻乎乎的我还去安装 go 环境,又在 128M 的 VPS 上 go get 编译了 10 分钟….

wget https://github.com/coyove/goflyway/releases/download/v1.2.0a/goflyway_linux_amd64.tar.gz
tar -zxvf goflyway_linux_amd64.tar.gz
./goflyway -k=123456789 //默认端口8100

到此服务端就已经启动了

客户端安装

虽说是 http/socket 代理,但是直接在代理插件上直接写服务器的 ip 和代理端口是没用的,因为 goflyway 是做了混淆的,所以要特定的客户端连接服务端,然后再在本地启动一个本地代理才可以

其实 goflyway 的服务端和客户端是同一个

直接从 release 下载 windows 平台的就成了,当然 android 版的也有下载(基于 ss 客户端魔改的,需要卸载 ss 的客户端)

// -up 表示这是客户端,参数为服务端ip:port
// 图方便可以写个cmd脚本
// 默认在8100启动本地代理服务
goflyway -k=123456789 -up="xx.xx.xx.xx:8100"

然后再使用一些通用的代理软件填写本地的 ip 和端口就成了

比如说 360 极速浏览器自带的

Release

goflyway的客户端与服务端均为同一个文件,下载对应系统版本即可运行。以下内容对应v1.0.11b以上版本,并假设服务端IP为1.2.3.4,监听在8100端口上。

从源码编译

goflyway基于golang,所以请首先安装go环境并正确配置$GOPATH和$GOROOT路径(参考)。然后:

go get -u github.com/coyove/goflyway/cmd/goflyway

完成后goflyway会被编译到$GOPATH/bin目录下,您也可以将$GOPATH/bin这个路径加入到$PATH中以直接调用goflyway。

对于客户端,请将$GOPATH/src/github.com/coyove/goflyway/chinalist.txt这个文件拷贝至goflyway的同目录下,但是这一步不是必须的:在缺乏chinalist.txt文件的情况下,goflyway只会通过IP判断国内外流量,而chinalist可以更快的匹配(无匹配时才会查询IP)。

运行

在服务器上执行

./goflyway -k=KEY

即可启动服务端,KEY为自定义密码,默认监听8100。本地执行

./goflyway -k=KEY -up="1.2.3.4:8100"

启动客户端连接。

客户端启动后,请设置本地代理为127.0.0.1:8100(协议为HTTP或SOCKS5代理)。8100端口为默认值,可以使用-l="ip:port"或-p="ip:port"命令修改。

对于服务端,-l同样用于修改其监听地址,请不要忘了同时修改客户端-up命令中的端口号。

简单认证

在服务端和客户端使用-a username:password启用用户认证(username和password请自行设定,不要忘了中间的冒号),开启后您需要用户名和密码才能够连接客户端的HTTP或SOCKS5代理。

全局代理

客户端使用-g开启全局代理,也可以从web控制台切换。从web控制台开启全局代理后,已缓存的域名不受全局影响。

半加密

客户端可以使用-partial开启半加密模式,这样HTTPS传输的数据只有前18kb会被加密以降低CPU占用。HTTP流量不受该命令影响。如果使用SOCKS5代理,请不要使用该命令。

中间人模式

请将ca.pem添加至系统的信任证书列表中,然后使用命令:

-up="http://1.2.3.4:8100"

打开中间人模式,注意该模式只有在使用HTTP代理时有效,不支持HTTP2,不支持文件的下载进度显示。中间人模式下HTTPS和HTTP均会通过HTTP请求发出,但是body和一些关键的HTTP头会被加密。开启中间人模式后WebSocket默认不可用。

前置代理

中间人模式下您可以使用公共的HTTP代理服务器作为前置,以达到加速或隐藏IP的目的。这里我们假设域名example.com已经指向1.2.3.4,代理服务器10.20.30.40:80。客户端使用以下命令连接:

-up="http://[username:password@]10.20.30.40:80/example.com:8100"

(代理仅支持Basic验证,不支持NTLM等方法)

cmd\mitm-relay是一个特殊的HTTP代理服务器脚本,其可以部署在BAE、SAE之类的Cloud App Engine上,依靠托管在国内服务器上的优势,达到加速客户端连接服务端速度的目的。以BAE为例,假定域名为example.duapp.com,客户端使用以下命令连接:

-up="fwd://example.duapp.com:80/1.2.3.4:8100"

CloudFlare

如果example.com使用了CloudFlare加速,服务端需运行在80/8080等指定端口上,客户端使用以下命令连接(请不要遗漏:80端口):

-up="cf://example.com:80"

WebSocket 连接模式

若需要通过WebSocket协议与服务端通信,客户端使用以下命令连接:

-up="ws://1.2.3.4:8100"

若连接至cloudflare,则默认已经使用了WebSocket模式。WebSocket中继可以使用该脚本。

HTTPS 前置代理

goflyway可以使用支持CONNECT命令的HTTPS代理服务器作为前置来连接服务端,HTTP和SOCKS5均支持此方法。假设代理服务器10.20.30.40:80,客户端使用以下命令连接:

// -up 表示这是客户端,参数为服务端ip:port
// 图方便可以写个cmd脚本
// 默认在8100启动本地代理服务
goflyway -k=123456789 -up="xx.xx.xx.xx:8100"0

本站附件分享,如果附件失效,可以去找找看

诚通网盘附件百度网盘附件


于2021-08-01发布