从外网 SSH 进局域网,反向代理+正向代理解决方案(转)
相信很多同学都会碰到这样一个问题。在实验室有一台机器用于日常工作,当我回家了或者回宿舍之后因为没法进入内网,所以访问不到了。如果这个时候我需要 SSH 进去做一下工作,那么怎么解决这个问题呢?本文将给出一种使用 SSH 的代理功能的解决方案。
问题描述:
机器状况
A | 192.168.0.123 | usr_a | 目标服务器,在局域网中,可以访问 A |
B | 202.101.103.44 | usr_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 将端口绑定到本地客户端,正向代理
相关推荐
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part3 SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part2 SSH + Lucene + 分页 + 排序 + 高亮 ...
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part3 SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part2 SSH + Lucene + 分页 + 排序 + 高亮 ...
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part3 SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part2 SSH + Lucene + 分页 + 排序 + 高亮 ...
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part3 SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part2 SSH + Lucene + 分页 + 排序 + 高亮 ...
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part3 SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part2 SSH + Lucene + 分页 + 排序 + 高亮 ...
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part3 SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part2 SSH + Lucene + 分页 + 排序 + 高亮 ...
javaEE健康管理系统SSH-oracle(源码+数据库sql+lun文+视频齐全)javaEE健康管理系统SSH-oracle(源码+数据库sql+lun文+视频齐全)javaEE健康管理系统SSH-oracle(源码+数据库sql+lun文+视频齐全)javaEE健康管理系统SSH-...
ssh spring+stuts+hibernate+sql server 中文乱码解决方案_lj管用.txt
Cisco路由器安全配置方案、校园网设计与配置实例、华为路由器交换机VLAN配置、路由器备份配置、在Cisco路由器上配置SSH服务、在思科路由器上保存超大的配置文件、Cisco路由器配置信息在Unix下的备份、恢复与更新、...
Linux 下使用 ssh 登录局域网其他电脑的方法 Linux 操作系统下使用 ssh 登录局域网其他电脑的方法是非常有用的。在局域网内,使用 ssh 登录其他电脑可以实现远程桌面,文件传输,远程命令执行等功能。下面我们将...
redhat5.4+SSH+Ftp+Apache+Mysql+PHP搭建 redhat5.4+SSH+Ftp+Apache+Mysql+PHP搭建 redhat5.4+SSH+Ftp+Apache+Mysql+PHP搭建 redhat5.4+SSH+Ftp+Apache+Mysql+PHP搭建
基于SSH2+Maven+EasyUI+MySQL技术实战开发易买网电子商务交易平台4
语言程序设计资料:基于SSH(Struts + Spring + Hibernate)框架的网上购物系统.ppt
随着struts的安全问题的暴露,原由Struts2+spring+hibernate构成的SSH2已经被越来越多的开发者所弃用,反而,由Spring+SpringMVC+Hibernate构成的SSH框架越来越受欢迎!这里提供了一个案例代码,希望对大家搭建环境...
sshplus项目 Struts2+Spring2+Hibernate3整合演示 part1 sshplus项目 Struts2+Spring2+Hibernate3整合演示 part2 sshplus项目 Struts2+Spring2+Hibernate3整合演示 part3
基于struts+spring+hibernate+oracle的移动ssh项目源码 基于struts+spring+hibernate+oracle的移动ssh项目源码 基于struts+spring+hibernate+oracle的移动ssh项目源码 基于struts+spring+hibernate+oracle的移动ssh...
ssh集成(Struts2+Hibernate3+spring2) ssh集成(Struts2+Hibernate3+spring2)ssh集成(Struts2+Hibernate3+spring2)ssh集成(Struts2+Hibernate3+spring2)ssh集成(Struts2+Hibernate3+spring2)
oa系统_ssh2_Struts2+spring2.5+JPA) oa系统_ssh2_Struts2+spring2.5+JPA) oa系统_ssh2_Struts2+spring2.5+JPA) oa系统_ssh2_Struts2+spring2.5+JPA)
RHEL6之3:ssh+tcpd+VNC+physical storage+kvm RHEL6之3:ssh+tcpd+VNC+physical storage+kvm
这个压缩包中的资源,"SSH+jQuery+json 实现的Ajax操作,绝对精华,代码简练清晰,绝对能看明白",显然提供了一个使用这些技术实现Ajax级联操作的实例。下面将详细介绍这些技术及其在Ajax操作中的应用。 **SSH ...