记录一下,用过的一些代理技术。
协议
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 团队充分审核。
其他
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