当前位置: 首页 > Linux

通过SSH反向代理,远程登录局域网主机

时间:2023-04-06 19:07:34 Linux

现在共有三台主机:PI@home:家庭服务器Admin@server:公网服务器My@office:公司主机现在我们登录家庭服务器公司主机。首先确保三台主机有相应的权限进行登录和其他操作。接下来在home服务器上使用SSH反向代理连接公网服务器:PI@home:$ssh-NfR2222:localhost:22Admin@serverssh参数:-N:不执行任何命令-f:在公网中执行background-R:建立反向隧道,建议使用processguard保证反向代理服务正常,如autossh,将PI@home的SSH公钥存放在Admin@server中,这样自动登录时无需输入登录密码。现在登录公网服务器,查看代理反向代理是否生效Admin@server:$netstat-tnl|grep127.0.0.1看到2222端口开启了,说明已经生效了tcp00127.0.0.1:22220.0.0.0:*LISTEN现在可以从公网服务器反向登录回家服务器admin@server:$sshPI@127.0.0.1-p2222然后公司主机需要登录到家庭服务器,先登录公网服务器即可,进行以上登录操作。相关链接:ReverseSSHTunnel的实际应用,配合auotssh永不断开,putty建立反向隧道同样的原理也可以实现局域网上公网访问的web服务。同样在局域网服务器上使用SSH反向代理PI@home:$ssh-NfR2280:localhost:80Admin@server注意这次映射的端口是80然后在公网服务器上开启同域名的web服务,然后转发到2280端口,以nginx为例:server{listen80;server_nameyour_domain;#域名设置必须和归属服务器一致location/{proxy_redirectoff;proxy_set_header主机$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_passhttp://127.0.0.1:2280;}}这样,访问公网域名时,会自动代理到归属服务器。我是这样在本地调试第三方服务通信的。