github-Snawoot/rsp:速度更快的SSH代理客户端软件


假设您要下载在您的大学购买的期刊上发表的论文。在这种情况下,您必须使用IP地址属于您大学的计算机连接到期刊的网站。如果您在家里工作,众所周知您可以连接到大学的VPN,这样您的IP地址将被伪装成校园的IP地址,使您可以下载大学所支付的论文。VPN是否有任何简单的替代解决方案?如果可以通过SSH连接到使用大学IP地址运行的服务器,则答案为“是”。
最简单做法是使用Linux的SSH命令:

$ ssh -NTCD 12345 SSH_remote_host_IP
========================= 
-N不执行远程命令
-T禁用伪终端分配
-C请求压缩所有数据
-D <port>
指定本地“动态”应用程序级端口转发。这通过分配一个套接字来侦听本地端的端口而起作用,可选地,每当与此端口建立连接时,该连接都会通过安全通道转发,然后使用应用协议确定从该端口连接到哪里。远程机器。当前支持SOCKS4和SOCKS5协议,而ssh将充当SOCKS服务器。


rsp是简单的SSH升级版本,是实现SSH协议的SOCKS5代理功能的SSH客户端。关键特点是使用多个连接大幅度提升性能,克服了在单个SSH会话中多路传输许多隧道式TCP连接的缺点。多个会话不受单个连接的TCP窗口大小的限制,并且丢包不会立即影响所有隧道连接。为了减少连接的等待时间,建立rsp了稳定的连接池,并以可配置的速率进行补充。
 
特点

  • 与传统的OpenSSH客户端相比,具有较高的速度。
  • 跨平台(Windows,Linux,macOS和其他类似Unix的系统)。
  • 服务器需要零设置。rsp可以立即用于任何SSH服务器。
  • 自给自足:不需要客户端上的OpenSSH即可运行。
  • SOCKS5远程DNS支持。
  • 使用异步连接池向用户隐藏的连接建立延迟。
  • 连接建立速率限制可防止用户受到SSH泛滥的威胁。
  • 支持透明的操作模式(仅Linux),这意味着rsp可在Linux网关上使用,以无缝包装整个网络的流量。
  • 通过100Mbps连接在Debian 9服务器上进行了测试。到服务器的往返时间为128毫秒,平均数据包丢失率约为0.5%。

该项目比竞争对手穷人的VPNsshuttle速度更快,后者是所有连接都复用到单个连接中,这会降低性能。