记录一下,用过的一些代理技术。

协议

Socks5 和 Http

这两种协议,几乎没有保密性,所以通常是作为本机代理的一端,同时也是一个应用程序提供代理功能时,最常要求的接口。可以看到一个应用程序,提供代理时,总是要求用户填写http或者socks5配置。

应用程序代理 ----http/socks5 ---> Proxy ----- other protocol ---> Network

Shadowsocks/Shadowsockssr

shadowsocks 缩写ss,最流行的加密代理协议,很多代理工具都支持这种协议,没必要一定要用纯shadowsocks客户端。

shadowsockssr缩写ssr,是shadowsocks的一个改进加密协议版本,也兼容shadowsocks,支持这种协议的工具不多见。

Vmess

VMess 是 V2Ray 原创的加密通讯协议。

MTProxy

mtproxy是Telegram 专用的代理协议。

KCP

KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,以 callback的方式提供给 KCP。 连时钟都需要外部传递进来,内部不会有任何一次系统调用。

简单的说,这是一个致力于降低延迟的协议,可以搭配上面的加密协议一起使用。

https://github.com/skywind3000/kcp

工具

Shadowsocks/Shadowsockssr

shadowsocks各平台的server/client,可以从以下链接找到: https://github.com/shadowsocks/shadowsocks/wiki/Ports-and-Clients https://shadowsocks.org/en/download/clients.html https://congcong0806.github.io/2018/04/20/SS/

shadowsockssr就不多了: https://github.com/Ssrbackup/shadowsocks-rss

V2ray

支持Vmess、MTProto、shadowsocks

github 官网 关于 vmess 传入配置中 clients id 和 alterid、level 的疑惑

Glider

glider is a forward proxy with multiple protocols support, and also a dns forwarding server with ipset management features(like dnsmasq).

又一个正向代理工具,还支持dns转发,客户端支持这些协议: shadowsocks、shadowsockssr、vmess、kcp

https://github.com/nadoo/glider

Cow

COW 的设计目标是自动化,理想情况下用户无需关心哪些网站无法访问,可直连网站也不会因为使用二级代理而降低访问速度。

https://github.com/cyfdecyf/cow

KcpTun

一个kcp协议的实现 https://github.com/xtaci/kcptun https://github.com/dfdragon/kcptun_gclient/

Brook

支持Brook、Stream Brook、shadowsocks、SOCKS https://github.com/txthinking/brook

Goflyway

基于 HTTP,比ss要高一层,更类似于ssr 的 http 混淆模式 因为是基于应用层的 HTTP,传输肯定会有 overhead,性能不用指望

https://github.com/coyove/goflywa

OutLine

Outline 可让新闻机构轻松地在自己的服务器上设置企业虚拟专用网络 (VPN),以便更安全地连接到互联网并确保内部通讯隐私。

Outline 是一款完全开源的应用,其代码已经由 Radically Open Security 团队充分审核。

https://www.getoutline.org/

其他

RUDP

tcp做了这几件事:

  • 通过序列号和基于确认的超时重传机制,为上层提供了可靠的字节流服务;

  • 通过滑动窗口、拥塞窗口提供了流量控制;

  • 默认情况下,为了有效利用带宽,tcp的报文一次会尽量携带更多的数据。但与此同时,为了避免IP层的分片,又不会发送超过MTU大小的数据包。

SwitchyOmega

浏览器代理插件,支持规则列表。

最佳实践

SwitchyOmega -> cow -> glider -----wall---> server

配置规则

Clash、Kitsunebi、Quantumult、Shadowrocket、Pepi(ShadowRay)、Surge 的配置规则文件

https://github.com/ConnersHua/Profiles

基于gfwlist的多种代理软件配置文件生成工具

https://github.com/JinnLynn/genpac

支持自定义规则,目前可生成的格式有pac, dnsmasq, wingy

参考资料

收集整理科学上网(GFW)的资料和工具