美文网首页
从外网 SSH 进局域网,反向代理+正向代理解决方案

从外网 SSH 进局域网,反向代理+正向代理解决方案

作者: E公子笔记 | 来源:发表于2018-04-04 21:19 被阅读0次

简单说一下ssh使用,如果还有什么不懂得可以Q我:281286620

相信很多同学都会碰到这样一个问题。在实验室有一台机器用于日常工作,当我回家了或者回宿舍之后因为没法进入内网,所以访问不到了。如果这个时候我需要 SSH 进去做一下工作,那么怎么解决这个问题呢?本文将给出一种使用 SSH 的代理功能的解决方案。

问题描述:

机器状况

A        192.168.0.A        usr_a        目标服务器,在局域网中,可以访问 A

B        B.B.B.B              usr_b        代理服务器,在外网中,无法访问 A

C        --                                          可以直接访问 B,无法直接访问 A

目标

从 C 机器使用 SSH 访问 A

解决方案

在 A 机器上做到 B 机器的反向代理;在 B 机器上做正向代理本地端口转发

环境需求

每台机器上都需要 SSH 客户端

A、B 两台机器上需要 SSH 服务器端。通常是 openssh-server。

在 Ubuntu 上安装过程为

sudo apt-get install openssl-server

实施步骤

建立 A 机器到 B 机器的反向代理【A 机器上操作】

ssh -fCNR <port_b1>:localhost:22 usr_b@B.B.B.B

<port_b1>为 B 机器上端口,用来与 A 机器上的22端口绑定。

建立 B 机器上的正向代理,用作本地转发。做这一步是因为绑定后的 端口只支持本地访问【B 机器上操作】

ssh -fCNL "*:<port_b2>:localhost:<port_b1>'  localhost

 <port_b2>为本地转发端口,用以和外网通信,并将数据转发到<port_b1> ,实现可以从其他机器访问。

其中的*表示接受来自任意机器的访问。

现在在 C 机器上可以通过 B 机器 ssh 到 A 机器

ssh -p <port_b2>  usra@B.B.B.B

至此方案完成。

附:

SSH 参数解释

-f 后台运行

-C 允许压缩数据

-N 不执行任何命令

-R 将端口绑定到远程服务器,反向代理

-L 将端口绑定到本地客户端,正向代理

相关文章

网友评论

      本文标题:从外网 SSH 进局域网,反向代理+正向代理解决方案

      本文链接:https://www.haomeiwen.com/subject/quplhftx.html