goproxy试用

in cn •  3 years ago 

之前一直使用 frp 进行内网服务穿透。

前两天折腾公司的VPN的时候,在找 HTTP 代理服务器的时候,发现的 goproxy 这个软件,https://snail007.host900.com/goproxy/manual/zh/

看了文档,除了几种代理服务外,也支持做内网穿透。

前段时间我的备份文件服务器 https://files.steem.fans 因为一块硬盘挂了,导致所有数据损坏了,因为我使用的 LVM 把所有物理硬盘合并成一块虚拟磁盘使用的。

所有的备份数据在我家里的服务器上也有备份,这就需要我从家里传输这些文件到远程的这台服务器上。

因为 GFW 的存在,使用 rsync 传输数据一直有问题,总是意外中断,搞了一周多了,一个文件都没有传上去。又因为运营商的限制(家用网络不允许提供对外服务),不能把家里的服务器开web服务,从远程服务器上用 axel 多线程下载。

这个时候,我想到了内网穿透。

既然运营商有跑脚本,来检测下辖区域是否有家用电脑提供对外服务,那么我直接把我家里服务器的web服务端口穿透映射到远程服务器上,远程服务器再用 axel 下载不就可以了。

开始实施。

两边服务器都下载 goproxy https://github.com/snail007/goproxy/releases

解压缩后,把 proxy 这个程序放到 /usr/bin 目录下面。

在其中一台服务器上执行 proxy keygen -C proxy 生成证书文件,然后用 scp 把证书文件传到另外一台服务器上。这个证书文件将作为两台服务器之间通信加密的签名证书使用。

然后在远程服务器上分别执行下面两条命令:

proxy bridge -p ":33080" -C proxy.crt -K proxy.key --forever --daemon --log /var/log/bridge.goproxy.log

proxy server -r "127.0.0.1:20800@:80" -P "127.0.0.1:33080" -C proxy.crt -K proxy.key --daemon --forever --log /var/log/server.goproxy.log

由于我只想我自己访问,因此我的 20800 端口只绑定到了 127.0.0.1

然后在我家里的服务器上执行:

proxy client -P "22.22.22.22:33080" -C proxy.crt -K proxy.key --forever --daemon --log /var/log/client.goproxy.log

这样,就在两台服务器之间建立了一个隧道,通过服务器的 33080 端口通信,然后把家里的服务器端口映射到了远程服务器的 20800 端口上。

使用 axel 下载:

axel -n 5 http://127.0.0.1:20800/xxxxxx.tar.gz

看上去性能很不错,至少把我家里服务器到国外服务器的上行带宽都跑满了。很牛!

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  
  ·  3 years ago 

牛B,看不懂;ety兄,能不能支持一下我的见证人,shenchensucc,谢谢