用SSH访问内网主机的方法

现在的互联网公司一般不会直接本身直接配主机搭建服务器了,而是采用了相似阿里云的这种云主机,当应用变得愈来愈大了以后,就不可避免地增长主机,而出于成本考虑,不可能给每一台主机都分配公网带宽,因此实际的状况可能会变成这样:html

内网IP为10.51.15.12和10.51.15.13的两台主机并无外网带宽,一般是做为后端数据库服务器或者后端业务逻辑处理服务器使用,这样咱们会遇到一个问题:没法直接用SSH登陆这两台服务器,如何解决这个问题?——固然是借助带有公网IP的服务器“中转”一下了,以下图:nginx

考虑到SSH其实走的是TCP协议,咱们只须要在10.51.15.11上安装和配置一个TCP中转服务器便可,NGINX就具备这个功能。如何安装和配置NGINX请移步这里:简易NGINX TCP反向代理设置数据库

这里介绍的内容和上述文章没有太多不一样,仅仅在配置上有一点点不同(并且还更简单),编辑/etc/nginx/nginx.conf后端

stream{
    upstream ssllink12{
        server 10.51.15.12:22 max_fails=3 fail_timeout=10s;
    }
    
    upstream ssllink13{
        server 10.51.15.13:22 max_fails=3 fail_timeout=10s;
    }

    server{
        listen 1118;
        proxy_connect_timeout 20s;
        proxy_timeout 5m;
        proxy_pass ssllink12;
    }
    
    server{
        listen 1119;
        proxy_connect_timeout 20s;
        proxy_timeout 5m;
        proxy_pass ssllink13;
    }
}

配置很简单,意思也很明确,将链接至1118端口的TCP请求转至10.51.15.12:22,将链接至1119端口的TCP请求转至10.51.15.13:22。服务器

重启NGINX:tcp

systemctl restart nginx

若有必要,配置一下防火墙:阿里云

firewall-cmd --zone=public --add-port=1118/tcp --permanent
firewall-cmd --zone=public --add-port=1119/tcp --permanent
firewall-cmd --reload

而后直接用SSH试试看吧。spa

NGINX采用了“透明”的工做模式,以至SSH客户端不知晓本身的链接请求其实已经被转交到一台内网主机中了。代理

相关文章
相关标签/搜索