SSH正反向隧道
正向隧道
拓扑如下:

说明:
CLIENT不能直接访问WEB服务器,AGENT可访问WEB服务器;
在AGENT上通过创建ssh正向隧道,使CLIENT可以通过AGENT间接访问WEB服务器;
AGENT需要SSH客户端和服务端。
AGENT上执行指令如下:
[root@pool---- ~]#
[root@pool---- ~]# netstat -antp |
[root@pool---- ~]#
[root@pool---- ~]#
[root@pool---- ~]#
[root@pool---- ~]# netstat -antp |
[root@pool---- ~]#
[root@pool---- ~]# : root@100.1.1.100
root@100.1.1.100's password:
[root@pool---- ~]# netstat -antp |
tcp 0.0.0.0:*
LISTEN /ssh
[root@pool---- ~]#
说明:使用root账户登录100.1.1.100(自己),然后将自己的8880端口映射到172.19.2.250的80端口。
在CLIENT访问测试:

测试成功!
另一拓扑:

说明:
AGENT2和CLIENT都不能直接访问WEB服务器,只有AGENT1可以访问WEB服务器;
在AGENT2和AGENT1之间创建SSH正向隧道,使CLIENT可以通过AGENT2访问WEB服务器;
AGENT2需要安装SSH客户端,AGENT1需要安装SSH服务端。
在AGENT2上执行指令如下:
说明:在AGENT2上通过root用户ssh连接到AGENT1,并将自己的8880端口映射到WEB的80端口。
[root@pool----~]# : root@100.1.1.100
以上两个拓扑中创建隧道的主机(ssh客户端)也可以是windows主机,使用xshell、putty等工具也可以实现,以第二个拓扑,使用xshell举例设置如下:





打开会话链接

本地端口已经监听

访问测试

测试成功 !
注:如果使用xshell等类似ssh客户端工具创建SSH隧道时,连接会话断开会导致隧道失效,而linux的ssh客户端则不会。
反向隧道

说明:
CLIENT不能直接访问AGENT1,此时AGENT1可以通过在与WEB之间建立反向隧道的方法,让CLIENT可以访问AGENT1的22端口;
AGENT1需要安装SSH客户端,WEB需要安装SSH服务端;
在AGENT1上执行指令如下:
[root@pool---- ~]# ssh 172.19.2.250 root@172.19.2.250's password: Last :: from 192.168.6.44 [root@localhost ~]# netstat -antp | [root@localhost ~]# [root@localhost ~]# exit logout Connection to 172.19.2.250 closed. [root@pool---- ~]# : root@172.19.2.250 root@172.19.2.250's password: Permission denied, please try again. root@172.19.2.250's password: [root@pool---- ~]# netstat -antp | [root@pool---- ~]# ssh 172.19.2.250 root@172.19.2.250's password: Last :: from 192.168.6.44 [root@localhost ~]# netstat -antp | tcp /sshd tcp ::: :::* LISTEN /sshd [root@localhost ~]#
说明:首先确认在WEB服务器上确认没有监听22022端口,然后再AGENT上执行反向隧道创建指令,意思是将100.1.1.100的22端口映射为172.19.2.250的22022端口,执行后,发现WEB服务上监听了22022端口,但IP却为127.0.0.1,解决办法是将WEB服务器的SSH服务的配置文件中"GatewayPorts no"改为yes即可,重启SSH服务,并在AGENT1上重新创建反向隧道
[root@localhost ~]# netstat -antp | tcp /sshd tcp ::: :::* LISTEN /sshd [root@localhost ~]#
链接测试:

链接成功 !
在使用xshell创建反向隧道时,修改类型即可

SSH正反向隧道的更多相关文章
- ssh和SSH服务(包含隧道内容)
ssh和SSH服务(包含隧道内容) 72.16.10.6:/etc/fstab-->/172.16.10.3:/tmp/a.txt. [root@xuexi ~]# scp 172.16.10. ...
- ssh命令:隧道代理+本地端口转发+远程端口转发
0.前言 nc是一个在网络连接两端的好工具,同时也是也个临时的端口转发的好工具.(永久的端口转发用什么?用iptables) ssh也是这方面的好工具,好处是加密可靠可复用在一端操作即可,代价 ...
- 第1章 ssh和SSH服务(包含隧道内容)
本文对SSH连接验证机制进行了非常详细的分析,还详细介绍了ssh客户端工具的各种功能,相信能让各位对ssh有个全方位较透彻的了解,而不是仅仅只会用它来连接远程主机. 另外,本人翻译了ssh客户端命令的 ...
- [转]ssh和SSH服务(包含隧道内容)
本文对SSH连接验证机制进行了非常详细的分析,还详细介绍了ssh客户端工具的各种功能,相信能让各位对ssh有个全方位较透彻的了解,而不是仅仅只会用它来连接远程主机. 另外,本人翻译了ssh客户端命令的 ...
- 图解再谈ssh port forwarding-ssh隧道技术
https://www.ramkitech.com/2012/04/how-to-do-ssh-tunneling-port-forwarding.html https://www.cnblogs.c ...
- ssh的tunnel隧道打洞
分正向和反向. 假设,本地机器可以ssh连上远程机器.本地机器在下面叫做SSHClient, 远程机器叫做SSHServer. 一. 正向代理(本地转发) 在SSHClient机上执行: : SSHS ...
- SSH实现隧道功能穿墙
Putty和SSH tunnel 目前寻求FQ的方式无非就几种: 寻找web代理(这个可以进我放置的在线代理进行测试) 自行寻找http/sock5代理(这个可以去网上搜索代理ip) vpnFQ(目前 ...
- SQLyog通过ssh隧道连接MySQL
1.简介 因为现在很多公司服务的数据库为了安全起见,都不允许直接连接其服务,而只能通过跳板机进行登陆到数据库.而ssh有一项非常有用的功能,即端口转发的隧道功能,让一些不安全的服务,像TCP.POP3 ...
- 通过简单的SSH隧道实现穿越上网(转)
说明:很惊讶,原来强大的SSH也能实现穿越上网,且配置真的很简单,比OpenVPN简单很多.当然,除了代理简单上网之外,其余功能就没OpenVPN那么的强大,对于用哪个就需要自己去衡量.SSH建立的隧 ...
随机推荐
- rsync同步
本地同步: rsync -avz /boot /test C/S架构: 远程同步:rsync+ssh 远程浏览器目录文件:rsync 用户@192.168.0.250:/boot 下行:rsync ...
- python排序之一插入排序
python排序之一插入排序 首先什么是插入排序,个人理解就是拿队列中的一个元素与其之前的元素一一做比较交根据大小换位置的过程好了我们先来看看代码 首先就是一个无序的列表先打印它好让排序后有对比效果, ...
- 升级 python 2.6.6 系统到 2.7.10 版本
CentOS 6 系统默认 Python 版本是:2.6.6 平时在使用中遇到很多的库要求是 2.7.x 版本的库,比如使用 ConfigParser 库,在 2.6 版本库就不支持没有 value ...
- Ubuntu 16.04下Linux驱动编写第一步
源码环境的搭建 Install源码 >sudo apt-cache search linux-source linux-source - Linux kernel source with Ubu ...
- BZOJ 2705: [SDOI2012]Longge的问题 [欧拉函数]
2705: [SDOI2012]Longge的问题 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 2553 Solved: 1565[Submit][ ...
- AC日记——忠诚 洛谷 P1816
题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人的挑拨,财主还是对管家产生了 ...
- HTMl5的存储方式sessionStorage和localStorage详解
html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage.sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有 ...
- SQL Server中行列转换 Pivot UnPivot
SQL Server中行列转换 Pivot UnPivot PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PI ...
- Ubuntu解压缩命令
原文链接:http://www.linuxidc.com/Linux/2012-08/68122.htm ZIP zip可能是目前使用得最多的文档压缩格式.它最大的优点就是在不同的操作系统平台,比如L ...
- Spring中配置数据源的4种形式
不管采用何种持久化技术,都需要定义数据源.Spring中提供了4种不同形式的数据源配置方式: spring自带的数据源(DriverManagerDataSource),DBCP数据源,C3P0数据源 ...