基于主机名的 NGINX SSH 流

基于主机名的 NGINX SSH 流

是否可以根据主机名配置 SSH 代理?

例如:

                                 |-> host1.domainexample1.com
                                 |-> host2.domainexample1.com
 SSH from outsite <-> Firewall <-|-> domainx.com (Default)
                                 |-> host1.domainexample2.com
                                 |-> host2.domainexample2.com

此外,出于安全原因,我希望有一个多路复用端口。这可以使用 SSHL 存档,使端口 443 适用于 OpenVPN、HTTPS 和 SSH。

理想情况下,如果 NGINX 可以支持所有这些,那就太好了。

谢谢。

答案1

由于 SSH 不发送 SNI,Nginx 无法通过主机名路由 SSH 连接。

但是有一个技巧可以在 SSH 之前发送主机名。您需要在您的当地的机器。

调整~/.ssh/config

Host *.domainexample1.com
    ProxyCommand openssl s_client -quiet -servername %h -connect your.firewall.ip.com

这样,你就可以$ssl_preread_server_name在 Nginx 中获取主机名。然后你可以通过设置一些上游来路由它们。

相关内容