- GotoX 修改自 goagent,可用于访问被防火墙屏蔽的网络服务。
- 其特色,一是自动代理,可支持标准 HTTP/1.1 请求;二是可根据需要修改来自客户端的请求以及服务器的响应。
- 主要使用 GAE 服务作为后端代理,也支持任意 HTTP/SOCKS4/SOCKS5 代理,两者处于同等地位。SOCKS 代理支持认证。
- 运行时会一直维护一个较小但快速的 GAE IP 列表。
- 配置 GAE 路径为“ /_gh/ ”可使用 GoProxy、XX-Net 及 GoAgent 3.2.X 服务端,“ /2 ”使用 GoAgent 3.1.X 服务端。
- 推荐使用 GoProxy 服务端。
- 部署服务端时,请在 VPN、Shadowsocks 等代理条件下上传,或者去 XX-Net 配置 中取用公共 APPID 填入本代理来上传。公共 APPID 不支持视频和下载。
- 相关链接
- 简易教程 https://github.com/phuslu/goproxy/blob/wiki/SimpleGuide.md
- 常见问题 https://github.com/phuslu/goproxy/blob/wiki/FAQ.md
- 新版谷歌云部署问题 XX-net/XX-Net#4720
- GoProxy 服务端 https://github.com/phuslu/goproxy/tree/server.gae
- XX-Net 服务端 https://github.com/jzp820927/Deploy_XXNET_Server
- XX-Net 公共 APPID https://github.com/XX-net/XX-Net/blob/master/code/default/gae_proxy/local/proxy.ini
- 主要配置:
- 具体配置说明,在配置文件中都有较为详细的描述。只有 Config.ini 支持 Config.user.ini 用户配置。
- 需事先提供由其它扫描工具取得一个较大的(上万也支持)可用 GAE IP 列表以供筛选,放入“data/ip.txt”或“data/ipex.txt(优先)”中,格式为每行一个完整 IP;ipex.txt 文件会在建立时间两小时后被删除,其中的 IP 会保存在统计记录中直到无法稳定使用为止,如果要长期使用这些 IP 需同时将之加入 ip.txt 文件中。
- 也可以在 [gae/iplist] 配置中指定使用固定的 GAE IP 列表,不再进行 IP 检查筛选。
- 自动化:
- 自动代理规则和 IP 列表文件可以在运行时替换,无需重启 GotoX。
- 直连和转发规则失败后,如果主机 IP 地址不属于国内会根据条件判断是否尝试使用 GAE 规则。
- 可设置三级 DNS 查询优先级:系统设置、[dns/server] 配置、谷歌 DNS-over-HTTPS API。
- 使用 IP 列表:
- google IP 列表名称“google_gws、google_com”选项由代理自身维护,无需用户填写;
- 用户可以使用其它名称配置自己的 IP 列表,以供自动规则使用。
- “google_gws”是未分类的 gws 服务器,用于 GAE 代理,一般不用设置成这个。
- “google_com”是支持一般谷歌域名反向代理的服务器,可用于大部分 google 域名直连,转发则有极小概率出现证书错误。
- 默认谷歌配置是用 google_gws 直连,兼容性较好;也可配置成用 google_com 转发,保持谷歌证书不变,特殊谷歌主机名需自行测试调整。
- 代理端口: 现提供两个端口。
- 自动代理端口需自行配置规则,可根据需要自动分配链接路径,推荐使用(开发动力之一);
- 要使用自动代理请先仔细阅读配置规则说明,由于未添加完全的检测,错误规则可能导致程序出错或非预期的代理结果;
- GAE 端口完全使用 GAE 代理,只有当遇到不支持的方法时转用直连,如果此网络资源处于屏蔽状态链接会失败。
- 用户认证: 支持以下方法,可设置免验证 IP 白名单。
- Basic 方法认证。
- 优点是支持广泛,基本不会因出错而无法使用;
- Basic 方法是不安全的认证方法,不建议在外网使用。
- 自写的 IP 认证。
- 优点是安全性大大提升,但有个例外,见下面;
- 需登录,登录时强制使用加密链接;
- 登录后,如果连续 30 分钟没有发起任何请求,登录将会失效;
- 重要:由于只认 IP,多台主机可以通过一个处于成功登录状态的 IP 来使用本代理,所以请谨慎分享代理地址;
- 同一个用户,只有最新登录成功的 IP 才能通过认证使用代理。
- Basic 方法认证。
- 导入证书:
- 成功运行后会创建独一无二的 CA 证书,证书名称为:“GotoX CA”。配置好浏览器代理后,在地址栏输入“http://gotox.go/ ” 即可安装或下载 CA 证书,也可在“cert”文件夹找到“CA.crt”证书文件。由于还不完善,暂时不打算启用自动导入和删除功能,如有需求请手动删除老旧证书。
- 本地服务: 提供一个简单的支持加密链接的静态 web 服务器。
- 不提供单独端口,无法直接访问,需要在设置了 GotoX 代理的情况下访问。
- 主机名为 gotox.go 或 GotoX 代理地址,如果是在本机运行 GotoX 且未设置成代理例外,那也可以是本机地址(127.0.0.1、localhost)。
- 路径根目录为程序的 web 文件夹。
- 路径为目录时不自动发现 index 文件,显示目录列表以替代。
- 返回头部支持常见文件类型,不包含缓存信息。
- 辅助工具:
- Windows 下提供一个系统托盘辅助工具,作者没有条件为其它系统开发类似工具,欢迎感兴趣者分享代码。
- 使用发布的便携版 Python 可以从 GotoX.vbs 或新建快捷方式启动(GotoX.vbs 里有写怎么新建);
- 使用安装版 Python 可直接运行 launcher/win32.py 启动。
- 可以打开 GotoX 配置文件;
- 可以下载生成直连 IP 数据库,其它系统需直接运行 launcher/buildipdb.py 脚本;
- 隐藏或显示窗口;
- 监视和设置系统代理;
- 重新载入 GotoX。
- Windows 下提供一个系统托盘辅助工具,作者没有条件为其它系统开发类似工具,欢迎感兴趣者分享代码。
- 小技巧:
- 对于不支持 GAE 出口的网址
- 可在转发(forward)或直连(direct) 规则中设置成反向代理 IP;
- 或在其它代理(proxy) 规则中设置成 SOCKS 代理(格式见 ActionFilter.ini)。
- 反向代理一般不支持非加密链接,请慎用支持非加密链接的反向代理!
- 对于不支持 GAE 出口的网址
- CPython 3.4/3.5 已测试。
- 不支持 Python 2,保持兼容比较麻烦,已放弃。
- 必须组件(可放入“python/site-packages”目录,支持 “.egg”):
- gevent 1.1.2 及以上
- pyOpenSSL 16.0.0 及以上
- dnslib 0.8.3 及以上
- PySocks 1.5.4 及以上
- 发布将提供包含 Windows CPython 3.5 环境的便携版本。
- IPv6 未测试,欢迎反馈。
- 由于自己只使用 Windows,所以其它系统不保证能正常使用。如果有需求作者会尽量修改,但这需要有人帮助测试反馈。
- 由于近期较为忙碌,以下计划不确定完成时间。
- 请求和响应的修改还未完成,将会加入。
- 直连(direct)的自动多线程支持(低)。
- 前置代理代码还未整理,暂时不提供此功能。请使用转发到后端代理(不通过 GAE)。
- 不会提供对 HTTP/2 的直接支持,对我个人来说带来的改善无法与付出对等,代码不是我的本行。其部分特性可用多 IP、多 appid 以及 keep-alive 的组合来替代,主要损失的是头部的压缩支持,其次某些情况下延迟更大些,尤其是对应 IP 稀少或只有 1 个 IP 时。仅在服务器支持 HTTP/2 时对比。
- GAE 问题不大,实际的头部也会压缩。
- 直接转发完全等于直连,是否支持看客户端。
- 转发代理还要看代理服务器是否支持。
- 其余的就完全不支持了。