加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 16:01:43 所属栏目:百科 来源:网络整理
导读:现在有三台主机: PI@home :家庭服务器 Admin@server : 公网服务器 My@office :公司的主机 现在来实现在公司主机上登录家庭服务器,。 首先,先确保三台主机均有相应的权限能够登录及其他操作。 接下来,在家庭服务器上用SSH反向代理连接上公网服务器: P

现在有三台主机:

  • PI@home :家庭服务器

  • Admin@server : 公网服务器

  • My@office :公司的主机

现在来实现在公司主机上登录家庭服务器,。

首先,先确保三台主机均有相应的权限能够登录及其他操作。

接下来,在家庭服务器上用SSH反向代理连接上公网服务器:

PI@home:$ ssh -NfR 2222:localhost:22 Admin@server

ssh参数:
-N:不执行何指令
-f:后台执行
-R:建立reverse tunnel

建议通过进程守护来确保反向代理服务的正常,例如autossh,并且在Admin@server存放PI@home的SSH公钥,这样自动登录时就无需输入登录密码了

此时登录公网服务器,查看代理反向代理是否生效

Admin@server:$ netstat -tnl | grep 127.0.0.1

看到2222端口已启用,说明已经生效

tcp       0      0 127.0.0.1:2222              0.0.0.0:*                   LISTEN

此时即可从公网服务器反向登录回家庭服务器了

Admin@server:$ ssh PI@127.0.0.1 -p 2222

那么公司主机要登录家庭服务器,只要先登录到公网服务器,在做上述登录操作即可了。


同样的原理也可以实现从公网访问局域网的web服务。

同样是在局域网服务器使用SSH反向代理

PI@home:$ ssh -NfR 2280:localhost:80 Admin@server

注意,这次映射的端口是80

然后在公网服务器上开个同样域名的web服务,然后转发到2222端口,以nginx为例:

server {
    listen  80;
    server_name your_domain; #域名设置必须跟家庭服务器上的一致
    location / {
         proxy_pass http://127.0.0.1:2280;
    }
}

这样在公网上访问域名,就会自动代理到家庭服务器上面去了。

我就是通过这种方式在本地来调试第三方服务通讯的。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读