从外网 SSH 进局域网,反向代理+正向代理解决方案
2016-03-10 21:47
483 查看
相信很多同学都会碰到这样一个问题。在实验室有一台机器用于日常工作,当我回家了或者回宿舍之后因为没法进入内网,所以访问不到了。如果这个时候我需要 SSH 进去做一下工作,那么怎么解决这个问题呢?本文将给出一种使用 SSH 的代理功能的解决方案。
A、B 两台机器上需要 SSH 服务器端。通常是 openssh-server。在 Ubuntu 上安装过程为
建立 B 机器上的正向代理,用作本地转发。做这一步是因为绑定后的 端口只支持本地访问【B 机器上操作】
现在在 C 机器上可以通过 B 机器 ssh 到 A 机器
至此方案完成。附:
问题描述:
https://segmentfault.com/a/1190000002718360机器状况
机器号 | IP | 用户名 | 备注 |
---|---|---|---|
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 <portb2> usra@B.B.B.B
至此方案完成。附:
SSH 参数解释
-f 后台运行-C 允许压缩数据-N 不执行任何命令-R 将端口绑定到远程服务器,反向代理-L 将端口绑定到本地客户端,正向代理
相关文章推荐
- Linux Generating SSH Keys
- perl脚本实现限制ssh最大登录次数(支持白名单)
- rsync ssh 数据同步分析
- 搭建SSH时的思考和遇到的几个问题的解决方法
- SSH 使用原理 与解释
- SSH整合中 hibernate托管给Spring得到SessionFactory
- Linux VPS利用SSH重置ROOT密码的方法
- ssh,scp自动登陆的实现方法
- linux下使用ssh远程执行命令批量导出数据库到本地
- shell脚本实现ssh自动登录功能分享
- linux下ssh安装与scp命令使用详解
- ssh项目环境搭建步骤(web项目)
- 脚本实现SSH登录邮件报警
- Linux SSH 安全策略 限制 IP 登录方法
- 解决SSH连接超时的2个配置方法
- 用shell脚本防ssh和vsftpd暴力破解的详解讲解
- 内网ssh/mysql登录缓慢的解决方法
- Java实现SSH模式加密
- Linux sshd_config配置手册中文版