通过goproxy(phuslu)实现HTTP/2代理 - 翻跃 瓷院

通过goproxy(phuslu)实现HTTP/2代理

作者:liyangyijie / 时间:March 7, 2016 /分类:翻越奥义 / 标签:none /阅览次数:483

goproxy的vps版本,实质是上HTTP/2代理。

如果看过wzyboy关于搭建HTTP/2代理的文章,这里的govps=nghttpx+Squid。

Golang版本不需要复杂依赖,编译好的二进制文件,可以在适合的系统中直接使用。

如果不想重复编译的话,1、2步可以省掉,直接使用编译好的适合自己系统的二进制文件。

1,搭建简易Golang环境

参见http://www.fanyueciyuan.info/fq/google-nginx-ezgoo.html中的搭建Golang环境。

Golang选择1.6以及以上版本。

2,编译二进制文件

获取需要的额外库

go get github.com/golang/glog
go get github.com/phuslu/http2

获取goproxy服务器版本源码

git clone -b server https://github.com/phuslu/goproxy.git

使用gox编译文件,这里以编译用于32位linux的文件为例。

cd goproxy/vps
gox -osarch='linux/386' -ldflags='-s'

稍等片刻,可见编译好的文件。

3,服务端配置

可以把生成的文件放到/opt文件夹下,便于管理。

习惯性选择使用supervisor来解决进程守护的问题,你也可选择其他方法。

下面是supervisor基本配置文件,debian下直接放到/etc/supervisor/conf.d文件夹下

[program:govps]
command=/opt/govps -addr=':25' -auth='user:pass' -certFile='/my.crt' -keyFile='/my.key'
autostart=true
autorestart=true
user=root

用到了25端口,需要root权限。

govps可以自动生成服务端所需要的自签证书,上面的certFile、keyFile项目可以不填写,不过这里强烈建议使用购买的证书或者免费证书。如果使用Let's Encrypt,几乎就是秒签。

4,客户端配置

无论是python版的GoA,还是Golang版的GoP都是兼容服务端的。甚至只要支持HTTPS代理的客户都可以,例如MEOW。

GoA版本需要把proxy.user.ini文件中的vps段落参考如下进行修改

[vps]
enable = 1
listen = 127.0.0.1:8088
fetchserver = https://user:pass@9.9.9.9:25/

不过最建议使用的还是switchyomega+chrome,不需要什么客户端,原生态HTTP/2支持。

switchyomega中协议选择https,填上服务器的域名,最后完成鉴权信息。

在直接使用switchyomega+chrome+starSSL证书情况下,开网页看视频的体验较之原版ss有极大提升,但是服务器端内存占用较大,10~25兆左右。

5,搭建参考脚本

这里可参考我的脚本进行服务器的安装,这里直接使用的是Let's Encrypt的证书。

一键安装脚本

上一篇 : 反代谷歌 下一篇 : 编译客户端备忘

仅有 1 条评论

添加新评论

称呼

Email

网站

内容