程序包‘goproxy-vps_linux_amd64-r198.tar.xz’的下载地址:
https://drive.google.com/file/d/0B1CmeJlGMtoLVUFXTFdZZXJKOEE/view
下载goproxy-vps_linux_amd64-r198.tar.xz到本地机器,然后上传到你的linux vps的/root/下。
安装方法:
mkdir goproxy-vps
cd goproxy-vps
root@ary:~/goproxy-vps# mv ~/goproxy-vps_linux_amd64-r198.tar.xz ./
root@ary:~/goproxy-vps# tar Jxvf goproxy-vps_linux_amd64-r198.tar.xz
root@ary:~/goproxy-vps# tar Jxvf goproxy-vps_linux_amd64-r198.tar.xz
root@ary:~/goproxy-vps# ls
README.md get-latest-goproxy-vps.sh goproxy-vps.sh pwauth
README.md get-latest-goproxy-vps.sh goproxy-vps.sh pwauth
goproxy-vps goproxy-vps.toml
root@ary:~/goproxy-vps# nano goproxy-vps.toml
修改goproxy-vps.toml为如下形式:
[default]
log_level = 2
reject_nil_sni = false
daemon_stderr = "./goproxy-vps.log"
[[http2]]
listen = ":8443"
server_name = ["mydomain.com"]
proxy_fallback = "http://127.0.0.1:80"
cert_file = "/path/to/example.org.cer"
key_file = "/path/to/example.org.key"
root@ary:~/goproxy-vps# ./goproxy-vps goproxy-vps.toml &不过命令:./goproxy-vps goproxy-vps.toml &容易退出,我们可以利用systemd来把./goproxy-vps goproxy-vps.toml运行为service:
nano /etc/systemd/system/goproxy-vps.service
内容为:
[Unit]
After=network.target
[Service]
ExecStart=/root/goproxy-vps/goproxy-vps /root/goproxy-vps/goproxy-vps.toml
Restart=always
[Install]
WantedBy=multi-user.target
然后运行:
systemctl start goproxy-vps
systemctl enable goproxy-vps
这样,服务器端就运行好了.
然后在客户机上,安装chrome,并安装chrome的插件switchyomega
(https://chrome.google.com/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif)
安装chrome的插件switchyomega后,点击chrome的右上角的switchyomega图标,然后点击“选项”-“新建情景模式”-“情景模式名称”取名为goproxy-vps proxy(名称可以随便取)-点击“创建”- “代理协议”选择https,"代理服务器"栏填写你所绑定的域名mydomain.com,“代理端口”填写8443-点击“应用选项”。
然后在chrome中,即可翻墙。
建议去注册一个top域名,很便宜,才2usd/年;证书的话,可到这里https://cheapsslsecurity.com/sslproducts/domainvalidatedssl.html,购买一个Comodo PositiveSSL证书,8usd/年,不过这种domain validated ssl证书只适用yourdomain.com和www.yourdomain.com,不适用yourdomain.com的其他子域名。我测试过:自签证书不行。若用自签证书,chrome里会显示:err:proxy_certificate_invalid.
注:如果你的mac系统翻墙一段时间后或合上机盖再打开,你会发现翻墙失败,估计是mac系统的dns又变回了isp的dns, 此时请运行:
networksetup -setdnsservers "Wi-Fi" "Empty" && networksetup -setdnsservers "Wi-Fi" 8.8.8.8
设置本地操作系统的dns为8.8.8.8,翻墙速度就会立刻又变得飞快。
https://github.com/phuslu/goproxy-ci/releases优势:
- tls 1.3 的 1-RTT 甚至 0-RTT 的握手时间,并且根据客户端自动选择 ECC/RSA 证书,根据服务端自动选择 ECDHE_ECDSA/X25519 和 AES-GCM/ChaCha20。
- http2 多路复用,网页体验明显。
- autocert 自动使用 letsencrypt 的 tls-sni 协议签发证书,这样就可以无痛部署了。
- 向下兼容 https proxy, 所以 iOS 上的 wingy, surge 也能用了。
- 客户端普通的非代理请求可以反代本地 nginx/apache 的 80 端口,使 443 端口不至于只能用作代理。
- proxy auth 使用是 linux 的 PAM 机制或 htpasswd 文件,便于管理。同时也支持客户端证书验证来对抗 TLS 探针。
- golang 实现,效率较高,部署简单。
- Chrome 请务必打开
chrome://flags/#ssl-version-max
的 tls1.3 支持。 - VPS 请尽可能打开 TCP BBR 算法。
- 某些网络环境对 http2 有限速,请改用
[[https]]
配置.
电脑上可以直接在Chrome+SwitchyOmega里设置https代理,不需要运行本地客户端,比较方便.安卓上可以使用Drony设置。
作者phuslu已删除相关项目:
https://github.com/phuslu/gop
https://github.com/phuslu/goproxy-ci/https://github.com/phuslu/goproxy-ci/releases/
但是,这里有备份:
https://github.com/luckypoem/prom-releases
https://github.com/goproxy0/prom-releases
相关帖子:http://briteming.blogspot.com/2017/06/openshiftgoproxyvps.html
http://briteming.blogspot.com/2017/08/goproxy-vpsyap.html
如果想使用let's encrypt的免费证书,请看:
http://briteming.blogspot.com/2017/06/lets-encryptsslcertbot.html
---------------------
GoProxy 对 golang的周边库做了一些修改。具体的改动请见, 所以编译需要从 golang 工具链开始编译, 以下步骤都假设你的工作目录位于 ~/workspace/goproxy/
- 保证系统安装了如下工具 awk/git/tar/bzip2/xz/7za/gcc/make/sha1sum/timeout/xargs,检查命令:
for CMD in curl awk git tar bzip2 xz 7za gcc sha1sum timeout xargs
do
if ! type -p ${CMD}; then
echo -e "\e[1;31mtool ${CMD} is not installed, abort.\e[0m"
exit 1
fi
done
- 编译 golang 工具链
export GOROOT_BOOTSTRAP=~/workspace/goproxy/goroot_bootstrap
export GOROOT=~/workspace/goproxy/go
export GOPATH=~/workspace/goproxy/gopath
cd ~/workspace/goproxy/
curl -k https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz | tar xz
mv go goroot_bootstrap
git clone --depth 1 https://github.com/phuslu/go
(cd go/src && bash ./make.bash)
export PATH=$PATH:~/workspace/goproxy/go/bin
- 编译 goproxy
git clone https://github.com/luckypoem/gop
cd gop
git checkout master
awk 'match($1, /"((github\.com|golang\.org|gopkg\.in)\/.+)"/) {if (!seen[$1]++) {gsub("\"", "", $1); print $1}}' $(find . -name "*.go") | xargs -n1 -i go get -v -u {}
go build -v
- 运行调试 goproxy
./goproxy -v=3
- 打包 goproxy
./make.bash
- 交叉编译+打包 goproxy
GOOS=windows GOARCH=amd64 ./make.bash
- 一键编译 GoProxy
bash -xe < <(curl -kL https://github.com/luckypoem/gop/raw/master/assets/build/ci.sh)
from https://github.com/luckypoem/gop/blob/wiki/HowToBuild.md
----------
goproxy-vps代理和网站同开
据说,goproxy-vps(r143+)已经是一个成熟可用的 tls1.3 + http2 代理了,这里说说如何在443端口上同开博客和代理。
新版本,是在一个issue里面公布的,着实低调。新版的安装方法和特点都在issue里面讲得很详细了,本文旨在突出新版的反代功能。
这里有个前提,必须有个域名解析到自己的服务器上。可以去www.freenom.com弄个免费域名试试,把A记录解析到服务器的ip.
首先是安装,根据一键脚本便可。
这里仅需修改下nginx配置,释放出443端口.
由于新版的goproxy-vps是自动使用 letsencrypt的tls-sni协议签发证书的,这里根本不需要管证书的问题.
访问自己的的网站,就会看到已经签好的证书,当然同端口下的代理也配置好了。
------------------
------------------
安装从GoGetSSL.COM购买的Comodo SSL证书
博客换证书,在GoGetSSL.com上买了3年的PositiveSSL DV证书。在Nginx上安装是出现了证书链问题。
申请完后GoGetSSL会给你一个压缩包,里面是你的所有证书。按照Nginx的要求应该需要完整的证书链,由于没有ca-bundle,所以我使用了cat命令把下面四个按次序合并成一个完整的证书:
,但是重启Nginx还是报错私钥和证书不匹配,所以我去Comodo官网查看,Comodo提供了下面的ca-bundle文件。再把域名证书和ca-bundle合并一下,证书链就完整了。
DV证书链:
EV证书链:
OV证书链:
organization_validated.ca-bundle (5.50 KB)
-------------
更简单省事的办法:http://briteming.blogspot.com/2017/08/goproxy-vps.html
-------------
更简单省事的办法:http://briteming.blogspot.com/2017/08/goproxy-vps.html
No comments:
Post a Comment