如何配置nginx的通过subdomain.domain.tld使ssh服务器:80可用(How t

2019-08-16 18:14发布

我想使端口22可用的SSH服务器通过端口80上的一个子域。

我认为这应该是这样的:

server {
    listen          ssh.domain.tld:80;
    server_name     ssh.domain.tld;

    location / {
        proxy_pass          http://localhost:22;
    }
}

但它不会工作。 nginx的会接受这一点,并用此配置开始,但我只从得到空应答ssh.domain.tld:80

我在想什么?

Answer 1:

您应该使用sslh 。

nginx的配置到不同的端口上比80上运行,比如800,然后配置sslh到网络流量重定向到该端口/etc/default/sslh.conf文件。

这种设置可能需要15分钟。 或更少。



Answer 2:

由于Nginx的版本1.9.0,NGINX支持ngx_stream_core_module模块,应该用--with流启用。 当流模块被使它们能够SSH协议TCP代理

stream {
upstream ssh {
    server localhost:22;
}
    server {
    listen        80;
    proxy_pass    ssh;
} }

https://www.nginx.com/resources/admin-guide/tcp-load-balancing/



Answer 3:

基本上你找错了地方:

  • nginx的股票可以代理网络和/或电子邮件流量,它不处理SSH流量在所有
  • 子域是一个DNS isue:在您的DNS设置进行配置,你需要A和/或AAAA记录链接ssh.domain.tld到您的SSH服务器的ip-adres
  • 你的SSH服务器侦听的端口是SSH服务器设置(见man sshd_config特别是ListenAddressPort指令)


文章来源: How to configure nginx to make ssh server via subdomain.domain.tld:80 available