此程序可以通过先进的算法为已有socks5代理, 做智能路由(智能分流), 从而可以避免手动配置pac代理清单做静态分流, 静态清单的弊端就是部分网址不在清单中, 无法访问等!
有两种模式,动态模式和静态模式,默认使用静态模式,经过测试可能效果更好,至于使用哪一种模式可以修改配置文件的 static_mode,为true时为静态模式
1.需要监听一个本地socks5端口, 然后需要在您的系统中配置该代理
2.出口需要指定一个已有的socks5代理, 如v2ray等!
3.一条数据发送到程序坚挺的socks5代理后,进行数据解析
4.通过配置文件给定的dns解析访问的域名,得到的ip如果是大陆ip,则直连,反之代理
5.大陆ip列表每次启动时,从网络更新,如果失败使用本地列表
6.此过程失败使用动态模式建立链接
- 需要监听一个本地socks5端口, 然后需要在您的系统中配置该代理
- 出口需要指定一个已有的socks5代理, 如v2ray等!
- 一条数据发送到程序坚挺的socks5代理后,进行数据解析
- 尝试先直连目标服务器,如在若干秒内(可配置,默认300ms)有数据返回,则认为可直连,不走代理
- 如果在若干秒内(可配置,默认300ms)无数据返回,则创建子线程用于通过代理连接目标服务器
- 此时有两条链路同时访问目标服务器,若谁能先返回首帧数据(第一个512kb bytes),便会使另一条链路close (此机制可以在充分利用直连链路的前提下, 测试那条链路速度快,尽可能使用最快的链路)
- 当此请求确认链路后,会被记入临时路由表, 针对每个域名连续做两次上面的测试操作, 只有两次结果均为“代理”时,持久化到路由表为“代理” 否则持久化为“直连”到路由表, 值得注意的是域名并非全域名,比如两次请求地址分别是 www.baidu.com, tieba.cn.baidu.com, 只视作一条baidu.com
- 持久化到路由表的路由条目并非持久不更新,而是默认30分钟后过期,重新测试
修改配置文件后启动
./socks5_route