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

本文介绍了如何通过 SSH 的反向代理和正向代理功能,实现在外网环境下访问局域网内的机器。具体步骤包括在目标机器上设置反向代理,然后在中转机器上配置正向代理,从而实现从外部通过特定端口SSH连接到局域网内的机器。
摘要由CSDN通过智能技术生成

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

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

机器号IP用户名备注
A192.168.0.123usr_a目标服务器,在局域网中,可以访问 A
B202.101.103.44usr_b代理服务器,在外网中,无法访问 A
C可以直接访问 B,无法直接访问 A


实施目标:
从 C 机器使用 SSH 访问 A


解决方案:
在 A 机器上做到 B 机器的反向代理;

在 B 机器上做正向代理本地端口转发

环境需求:
    每台机器上都需要 SSH 客户端
    A、B 两台机器上需要 SSH 服务器端。通常是 openssh-server。
    安装过程就不啰嗦了。

配置步骤:

    建立 A 机器到 B 机器的反向代理【A 机器上操作】
    ssh -fCNR <port_b1>:localhost:22 usr_b@202.101.103.44
    <port_b1> 为 B 机器上端口,用来与 A 机器上的22端口绑定。只要是B机器上空闲端口即可,例如:34。
    22为A机器上的监听端口,本次配置的是SSH服务,所以是22,如果要监听HTTP服务,则可以为80

 

    建立 B 机器上的正向代理,用作本地转发。做这一步是因为绑定后的 端口只支持本地访问【B 机器上操作】
    ssh -fCNL *:<port_b2>:localhost:<port_b1> localhost
    <port_b2>为B机器监听外网的端口,外网通过该端口连接,空闲端口即可,例如:88;

    <port_b1>为B机器上用以转发请求的端口,内网的A机器连接到该端口并接收B机器的转发数据,与上一步中的port_b1一致,实现可以从其他机器访问。
    其中的*表示接受来自任意机器的访问。


    现在在 C 机器上可以通过 B 机器 ssh 到 A 机器:
    ssh -p <port_b2> usr_a@202.101.103.44

至此方案完成。

附:
SSH 参数解释:
-f 后台运行
-C 允许压缩数据
-N 不执行任何命令
-R 将端口绑定到远程服务器,反向代理
-L 将端口绑定到本地客户端,正向代理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值