Answers:
当您通过TCP隧道传输TCP时会出现性能问题,因为您需要进行两层自适应调整(慢启动,避免拥塞,快速重传,请参阅RFC2001)。
如果您在外部连接上不知所措,他们将不会互相意识到。
本页详细描述了这种现象。
编辑:
与其坚持使用TCP over TCP问题,不如通过sshuttle来阻止它。有关这种情况的更多详细信息,请参阅“ 操作理论 ”
一节。
tun/tap
导致tcp-over-tcp的隧道。SOCKSv5不会遇到相同的问题,但不能对所有应用程序透明地工作(而tun / tap只是另一个网络接口,因此可以透明地进行处理)。
正常情况下,我发现延迟会增加,但是吞吐量可以达到SSH隧道正常情况的90%。确保设置ServerAliveInterval
为防止断开连接,并将其包装在脚本中以在发生故障时继续重新启动隧道。
主要的缺点是,它是每个TCP端口隧道,除非您使用SOCKS。SOCKS很好,但是延迟似乎随之增加,当然,并不是每个客户端都支持SOCKS。
您可能需要GatewayPorts
在客户端或SSH服务器上运行,以允许其他人通过您的隧道连接。在服务器上,这需要对sshd_config的根访问权限。
主要的性能警告(如其他人所述)是,这种方法可能无法很好地实现不可靠的连接,因为TCP的算法在封装下反应不佳。
也就是说,SSH在大多数情况下似乎都是“做正确的事”。