SSH的正向连接和反向连接

正向连接

// 将中间主机可访问的主机的指定端口 镜像到本地指定端口
ssh -L 本地IP:本地端口:中间主机可访问的IP:中间主机可访问的IP的端口 root@中间主机

案例:
公司为了安全配置了两台机器,一台可供外网访问[公司主机A]。另外一台不能外网访问[公司主机B],但可与[公司主机A]互连。

现在我在遥远外地,我要取公司[主机B]的文件,但此时无人在公司。
但我有一台连接外网的[个人主机P],可以做如下操作:
ssh -L [个人主机P]:[个人主机P未被占用的任意端口]:[公司主机B]:[公司主机B对应服务的端口] [公司主机A用户]@[公司主机A外网IP]

假设:

主机名外网IP内网IP
[公司主机A]218.200.20.1192.168.1.100
[公司主机B]192.168.1.101
[个人主机P]218.200.20.2

我要访问内网101的FTP的话,就在[个人主机P]上执行:
ssh -L 127.0.0.1:2121:192.168.1.101:21 root@218.200.20.1
然后再在[个人主机P]访问ftp即可访问地址为:ftp://127.0.0.1:2121

反向连接

// 将本地可访问的主机的指定端口 镜像到远程指定端口
ssh -R 远程IP:远程端口:本地可访问IP:本地可访问IP的端口 root@远程主机

案例:
公司为了安全配置了两台机器,一台可供外网访问[公司主机A]。另外一台不能外网访问[公司主机B],但可与[公司主机A]互连。

现在我在公司,外网有同事要取公司[主机B]的文件,但公司不能给他[公司主机A]的账号信息,但他知道[公司主机B]的个人FTP用户信息,但不能给我知道,无奈…..。

做以下操作:

现在可知道的信息

主机名外网IP内网IP用户密码
[公司主机A]218.200.20.1192.168.1.100root我知道
[公司主机B]192.168.1.101root不知道
[同事主机P]218.200.20.2root我知道

ssh -R [要接收该映射的主机的可访问IP]:[要接收该映射的主机的未占用端口]:[公司主机A可访问的主机]:[公司主机A可访问的主机的端口] [要接收该映射的主机的用户]@[要接收该映射的主机的IP]

在公司的[公司主机A]上执行
ssh -R 127.0.0.1:2121:192.168.1.101:21 root@218.200.20.2

其实在外地的同事只需要访问本机的127.0.0.1:2121就相当于访问192.168.1.101:21了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值