单个SSH SOCKS 5代理中的多个连接

3

这是我在Stackoverflow上的第一个问题:如何才能使SSH SOCKS 5代理(SSH2)允许多个连接?

我注意到,当我在Firefox中加载页面(已配置为使用SOCKS 5代理)时,它逐一加载所有内容。这可以用肉眼感知,并且我还通过使用Firebug的NET选项卡进行确认,该选项卡记录了已进行的连接。

我已经在about:config页面中配置了一些指令,例如pipeline、persistent proxy connections和其他一些内容。但我仍然遇到这种顺序加载资源的情况,这显然非常缓慢。

network.http.pipelining;true
network.http.pipelining.maxrequests;8
network.http.pipelining.ssl;true
network.http.proxy.pipelining;true
network.http.max-persistent-connections-per-proxy;100
network.proxy.socks_remote_dns;true

我司网络服务商很糟糕,白天时会故意随机中断连接。因此,如果不频繁刷新浏览器或按F5键,就无法完成有意义的工作。因此,我开始寻找解决方案。
到目前为止,SSH的动态端口转发是我找到的最佳解决方案,因为它具有一些非常好的压缩功能,可以节省大量无用的流量,并且也很安全。唯一剩下的问题是让它同时运行多个连接。
感谢所有的输入。

1
关于袜子协议,没有任何原因会导致这种行为。更可能是由于HTTP管线化或不太可能的代理实现所导致的。 - Clarus
管道化只是说,它可以在不等待第一个响应的情况下通过同一TCP连接发送所有请求。并非所有代理都支持管道化,但据我所知,您根本不连接到HTTP代理,而是使用Socks服务器,这是一种不同的东西。 - Steffen Ullrich
2个回答

0

我也有同样的想法,我的结论是它应该已经通过袜子代理建立了多个连接。这是因为如果你使用-vvv标志查看ssh连接,你会注意到它为不同的请求打开不同的端口。


0

我认为这可能与SSH-over-TCP本身有关;另外,也许还存在一些额外的低效和/或实现中的错误。您是在Mac OS X / * BSD / Linux上仅使用OpenSSH,还是在Windows上使用PuTTY?

您的情况实际上正是SCTP(作为TCP替代)开发的原因,它具有单个连接内多个流的概念。

希望有一天我们能够轻松地使用SSH over SCTP。 SCTP最好的部分是它仍然可以在IPv4上工作,即它据说主要只是终端主机支持的问题,因此,与IPv6不同,您不必等待您的懒惰ISP(至少在理论上)。


另一个问题是每个域名解析都会阻塞其余的流程(请参见http://superuser.com/questions/700453/forwarded-connection-refused-by-server-administratively-prohibited-open-failed),因此,您设置的 network.proxy.socks_remote_dns;true 可能实际上会适得其反。 - cnst

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接