SSH 隧道有缺点吗?

SSH 隧道有缺点吗?

我最近“购买”了一个 VPS,我想将其用作代理,以便能够使用我无法从德国访问的一些网站和内容。

由于我还懒得设置 Squid 和 OpenVPN(我目前认为这是必要的),所以我使用 ssh 隧道。

现在,几周后,我问自己 ssh 隧道是否不太好,或者 - 这就是我的问题 - 是否有任何我需要记住的警告/反对/缺点?

答案1

当您在 TCP 上建立 TCP 隧道时,就会出现性能问题,因为您有两层进行自适应校正(慢启动、拥塞避免、快速重传,请参阅RFC2001)。

如果你们失去了外部联系,彼此不了解,他们就会遇到很大的困难。

这一页详细描述了该现象。

与其纠缠于 TCP over TCP 问题,不如看看穿梭这会阻止它。
看一下名为“操作原理”了解有关此情况的更多详细信息。

答案2

我能想到的一件事就是性能。但这实际上取决于您要挖掘的东西类型。

答案3

通常情况下,我发现延迟会增加,但 SSH 隧道的吞吐量正常(90%)。请务必进行设置ServerAliveInterval以防止断开连接,并将其包装在脚本中以在失败时继续重新启动隧道。

主要缺点是它是每个 TCP 端口的隧道,除非您使用 SOCKS。 SOCKS 很好,但延迟似乎会增加更多,当然,并不是每个客户端都支持 SOCKS。

您可能需要GatewayPorts在客户端或 SSH 服务器上运行以允许其他人通过您的隧道进行连接。在服务器上,这需要对 sshd_config 的 root 访问权限。

主要的性能警告(正如其他人所指出的)是,不可靠的连接可能无法很好地适应这种方法,因为 TCP 的算法在封装下反应不佳。

也就是说,大多数时候 SSH 似乎都在“做正确的事”。

答案4

SSH 隧道不应存在 TCP-over-TCP 问题。

ssh 解封装并重新封装 TCP,因此您不会遇到经典的 TCP-over-TCP 问题

参考:

https://en.wikipedia.org/wiki/Tunneling_protocol#cite_note-6

https://marc.info/?l=openssh-unix-dev&m=105554033415532

相关内容