首先需要知道的是,服务器登录,默认是22端口登录的,所以如果有域名解析到你的服务器了,你通过域名+22端口也能登录服务器,原理就是,首先dns先将你的域名解析成ip,然后在通过22端口,进行登陆,原理就是通过IP+22端口是一样的,用域名登录无非是为了装个小B而已。若现在要实现我通过服务器A的IP登录服务器2。那需要怎样实现呢。
对于这个问题,就可以用到Nginx的转发,原理就是当你不使用22端口的情况下,通过nginx监听非22端口,实现转发。就比如你用IP:127.0.0.1:23进行登录,首先由于不是22端口,就不会默认本机登录,然后你在nginx中配置监听23端口,接着转发到对应的服务器IP+22端口,例如:192.1.173.28:22 ,接着就会转发到这台服务器上面进行登录。说了那么多,那具体需要怎么做呢?下面贴代码。
nginx的安装就不说了,这里需要说一点的是,安装的时候,需要添加一个 stream 组建。
编译安装的话直接贴:./configure --prefix=/usr/local/nginx/ --with-http_stub_status_module --with-http_ssl_module --with-stream --with-stream_ssl_module 就完事了。
安装成功后,就可以使用stream模块了。
该配置是配置在http外,不要配置在http里面,因为这个tcp转发,不是http转发。
listen 是监听的IP(或者域名)+你需要的端口,切记80端口不要写,因为80端口是http要用的,还有22端口,这个端口是默认服务器登录端口
proxy_pass 转发的地址 写上你需要登录的服务器ip+22端口就OK了。
接着保存配置,nginx重启一下就OK了。
下面来实践一下
可以看到通过密码登录,就成功了。当然如果想要更加方便的话,可以通过SSH登录,只需要在需要登录的服务器上面添加上你的公钥就可以了。这样就不用每次登录都填写密码。
关于一台服务器登录多台服务器的用处在哪呢。举个简单的例子,如果你有4台服务器,只能在局域网访问,但是你想要外网访问,所以你做了一个端口映射,恰巧你只在一台服务器上面做了,端口映射,在这样的情况下,你就可以通过这样的方式,实现4台服务器都能外网访问了