小编Joh*_*hnW的帖子

nginx 可以在同一个端口上同时提供 SSH 和 HTTP(S) 服务吗?

语境

我有一个用于网络的个人服务器。我有时需要 SSH/SFTP 到它。

免责声明:我对nginx内部结构的经验很少。

问题

今天早上,我发现一家知名咖啡馆连锁店的免费 wifi 阻止了 SSH(实际上,他们阻止了任何不在 80/443 上的东西)。但是当我需要 SSH 时,我需要它,所以我寻找在同一端口上共享 SSH 和 HTTPS 的方法。

我看的

我查看了一些可以在端口 443 上运行的可能解决方案:

  • SSHL:SSH/OpenVPN/HTTPS 多路复用器;
  • OpenVPN:VPN 解决方案具有用于 OpenVPN 和 HTTPS 的内置多路复用器;
  • HAProxy:网络服务器/负载平衡器也可以多路复用所有内容。

所有这些看起来都很简单,我真的不喜欢添加层和复杂性的事实,并且可能会在不太可能的情况下放慢速度,因为我需要在 443 上使用 SSH。

将 nginx 放入混合中

我知道它nginx已经支持原始 TCP 流处理。所以我想知道我是否可以直接在nginx. 这个想法是,如果模块识别 HTTP(S) 或其他所有内容,则nginx可以选择使用该http模块stream

问题

在这种情况下,我有两个问题:

  • nginx即使能够做这样的区别?(我什至不确定我是否能够同时httpstream块和块中侦听端口 443。)
  • 如果是这样,该设置是否会存在明显的性能问题?(例如,我正在考虑使用 SFTP 的传输速度,而不是真正的 SSH 本身。)

multiplexing nginx

21
推荐指数
4
解决办法
3万
查看次数

标签 统计

multiplexing ×1

nginx ×1