Pages

Monday, 24 June 2019

利用gap-proxy翻墙

gap-proxy是一个加速网络的SOCKS5安全代理工具。

mTCP

mTCP 是专门为 gap-proxy 设计的快速、可靠、加密安全、基于 UDP 的传输控制协议,借鉴了 KCP、TCP、Quic 协议的优点。技术特性:
  • 支持连接迁移,在 IP 地址变化的情况下保持连接不断
  • 从协议头到应用数据都使用了 AES-256-CFB 加密
  • 类似 HMAC 机制,可防止数据被篡改
  • 选择确认、快速重传、快速超时选择重传
  • KeepAlive,及时释放意外终止的连接
  • 快速建立、释放连接
mTCP 没有拥塞控制,只有流量控制,因此在高丢包率网络环境中,比使用了拥塞控制的 TCP 更快。

支持平台

gap-proxy 仅支持 macOS, Linux, 其他类 Unix 理论上支持,但并未测试过。

安装

提示:为了简单,如下操作在个人电脑,服务器上可都一样。

下载

根据所使用的操作系统从 releases 下载相应已编译好的二进制文件压缩包。

安装

首先在用户家目录新建 .gap-proxy 目录,接着在此目录里创建 config.json 配置文件,最后配置相关参数。举例:
$ vim ~/.gap-proxy/config.json

{
 "local":  "127.0.0.1:1186", # 客户端监听地址 (SOCKS5)
 "server": "8.8.8.8:2286",   # 服务器端监听地址
 "key":    "gap-proxy"       # 密钥
}

基本使用

启动

一旦安装并配置好后,在个人电脑系统上执行:
$ gap-proxy local start
然后在服务器上执行:
$ gap-proxy server start
这样便分别启动了 gap-local 和 gap-server 后台进程。

代理

gap-proxy 只是个简单的 SOCKS5 代理,如果日常上网需要智能代理,可自己在浏览器安装代理管理插件,插件的 SOCKS5 地址填写为配置文件的 local 字段的地址。

流量控制

gap-proxy 的默认接收窗口为 256 个包,每个包最多能装 1420 字节数据,假设数据包传输每轮次需要 300 毫秒(RTT),一秒就有 3.3 个轮次,那么每秒最多能传输 256 * 1420 * 3.3 / 1024 = 1171 KB 有效数据。
默认值 256 基本上能流畅观看 720p 的 youtube 视频,如果看更高清的视频会卡顿,只要带宽允许,可把接收窗口值逐渐调大:
$ gap-proxy wnd 512
这样便把当前所有连接、新连接的接收窗口都设为 512 个包。跟 TCP 协议一样,gap-server 就能通过 ack 包的 Window字段知道新发送窗口值。
现在每秒最多能传输 2343 KB 有效数据。
from https://github.com/cloudseo/gap-proxy
---------------------

我的补充说明

登陆linx vps.安装go环境,然后
cd $GOPATH
go get -u -v github.com/cloudseo/gap-proxy/
这样,即可装好gap-proxy.然后
mkdir ~/.gap-proxy 
nano ~/.gap-proxy/config.json
内容为:
{
 "local":  "127.0.0.1:1186", 
 "server": "0.0.0.0:2286",   
 "key":    "my-key"       
}
然后,
gap-proxy server start
这样便启动了服务器端的后台进程。服务器端搭建完成。
在本地机器mac上。安装go环境,然后
cd $GOPATH
go get -u -v github.com/cloudseo/gap-proxy/
这样,即可装好gap-proxy.然后
mkdir ~/.gap-proxy 
nano ~/.gap-proxy/config.json
内容为:
{
 "local":  "127.0.0.1:1186", 
 "server": "my-vps-ip:2286",   
 "key":    "my-key"       
}
然后,
gap-proxy local start
这样便启动了客户端的后台进程。客户端搭建完成。
然后,设置浏览器的socks5代理服务器为127.0.0.1,端口为1186,浏览器即可翻墙。

No comments:

Post a Comment