Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何配置nginx使ssh服务器通过subdomain.domain.tld:80可用_Ssh_Nginx_Subdomain - Fatal编程技术网

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

如何配置nginx使ssh服务器通过subdomain.domain.tld:80可用,ssh,nginx,subdomain,Ssh,Nginx,Subdomain,我想通过端口80上的子域使端口22上的ssh服务器可用 我想应该是这样的: server { listen ssh.domain.tld:80; server_name ssh.domain.tld; location / { proxy_pass http://localhost:22; } } 但这行不通。nginx将接受这一点并从这个配置开始,但我只从ssh.domain.tld:80获得空响应

我想通过端口80上的子域使端口22上的ssh服务器可用

我想应该是这样的:

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

    location / {
        proxy_pass          http://localhost:22;
    }
}
但这行不通。nginx将接受这一点并从这个配置开始,但我只从
ssh.domain.tld:80
获得空响应


我遗漏了什么?

基本上你找错地方了:

  • stock nginx可以代理web和/或电子邮件流量,它根本不处理ssh流量
  • 子域是dns isue:在dns设置中配置它,您需要一个
    a
    和/或
    AAAA
    记录链接
    ssh.domain.tld
    到您的ssh服务器的
    ip地址
  • ssh服务器侦听的端口是ssh服务器设置(请参见
    mansshd\u config
    特别是
    listenadress
    port
    指令)
    • 您应该使用

      将nginx配置为在80以外的端口(比如800)上运行,然后将sslh配置为在
      /etc/default/sslh.conf
      文件中将web流量重定向到该端口


      此设置可能需要15分钟或更短时间

      由于Nginx版本1.9.0,Nginx支持ngx_stream_core_模块,因此应该使用--with stream启用它。当启用流模块时,可以使用ssh协议tcp代理

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

      我在这里找到了我需要的东西:这使我能够转发tcp流量。正是我需要的东西,我一弄清楚细节就会给你一个详细的答案。。。3年后呢?我想情况已经不是这样了,也许答案应该更新?