正向隧道

拓扑如下:

说明:

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正反向隧道的更多相关文章

  1. ssh和SSH服务(包含隧道内容)

    ssh和SSH服务(包含隧道内容) 72.16.10.6:/etc/fstab-->/172.16.10.3:/tmp/a.txt. [root@xuexi ~]# scp 172.16.10. ...

  2. ssh命令:隧道代理+本地端口转发+远程端口转发

        0.前言 nc是一个在网络连接两端的好工具,同时也是也个临时的端口转发的好工具.(永久的端口转发用什么?用iptables) ssh也是这方面的好工具,好处是加密可靠可复用在一端操作即可,代价 ...

  3. 第1章 ssh和SSH服务(包含隧道内容)

    本文对SSH连接验证机制进行了非常详细的分析,还详细介绍了ssh客户端工具的各种功能,相信能让各位对ssh有个全方位较透彻的了解,而不是仅仅只会用它来连接远程主机. 另外,本人翻译了ssh客户端命令的 ...

  4. [转]ssh和SSH服务(包含隧道内容)

    本文对SSH连接验证机制进行了非常详细的分析,还详细介绍了ssh客户端工具的各种功能,相信能让各位对ssh有个全方位较透彻的了解,而不是仅仅只会用它来连接远程主机. 另外,本人翻译了ssh客户端命令的 ...

  5. 图解再谈ssh port forwarding-ssh隧道技术

    https://www.ramkitech.com/2012/04/how-to-do-ssh-tunneling-port-forwarding.html https://www.cnblogs.c ...

  6. ssh的tunnel隧道打洞

    分正向和反向. 假设,本地机器可以ssh连上远程机器.本地机器在下面叫做SSHClient, 远程机器叫做SSHServer. 一. 正向代理(本地转发) 在SSHClient机上执行: : SSHS ...

  7. SSH实现隧道功能穿墙

    Putty和SSH tunnel 目前寻求FQ的方式无非就几种: 寻找web代理(这个可以进我放置的在线代理进行测试) 自行寻找http/sock5代理(这个可以去网上搜索代理ip) vpnFQ(目前 ...

  8. SQLyog通过ssh隧道连接MySQL

    1.简介 因为现在很多公司服务的数据库为了安全起见,都不允许直接连接其服务,而只能通过跳板机进行登陆到数据库.而ssh有一项非常有用的功能,即端口转发的隧道功能,让一些不安全的服务,像TCP.POP3 ...

  9. 通过简单的SSH隧道实现穿越上网(转)

    说明:很惊讶,原来强大的SSH也能实现穿越上网,且配置真的很简单,比OpenVPN简单很多.当然,除了代理简单上网之外,其余功能就没OpenVPN那么的强大,对于用哪个就需要自己去衡量.SSH建立的隧 ...

随机推荐

  1. python注释、脚本参数、字节码

    python注释.脚本参数.字节码 --道心 python安装 1.下载安装包 https://www.python.org/downloads/ 2.安装 默认安装路径:C:\python27 3. ...

  2. 对C#泛型实例化对像

    public class A { } public class B<T> { public static T Get() { //在这一块如何实例化T这个对象呢?如果用default(T) ...

  3. 表单元素——checkbox样式美化

    一.背景 设计狮童鞋总是会设计各种高大上的效果图,比如下面这个土豪金的效果. 该图中“已阅读并同意相关服务条款”前面的复选框有一个金色的边框,打钩时是一个金色的对勾.接下来说说怎样实现该效果. 二.解 ...

  4. Unity中使用Attribute

    Attribute是c#的语言特性 msdn说明如下: The Attribute class associates predefined system information or user-def ...

  5. git submodule初用

    git submodule主要是用于针对git项目中还存在git子模块的情况.在一般情况下,我们通过git clone 获取项目的时候会把项目中的所有信息都拿到.但是,如果相关中存在git子模块那么, ...

  6. 一个virtualbox开机即aborted的问题解决

    问题: 之前想装最新的virtualbox版本,从官网下载了virtualbox最新的5点几的版本,使用sudo dpkg -i *.deb进行安装的. 然而,在virtualbox中启动了ubunt ...

  7. mininet中iperf sever自动退出

    使用iperf 在mininet进行吞吐量测试是常用的方法,之前结束iperf server的方法是运行os.system('pkill iperf')命令. 但是这种方式iperf server有可 ...

  8. [LeetCode] Department Top Three Salaries 系里前三高薪水

    The Employee table holds all employees. Every employee has an Id, and there is also a column for the ...

  9. Mysql基本语句的总结

    1---------------创建一个表------------------------------------ drop table if exists 表名 create   table 表名( ...

  10. java之并发编程线程池的学习

    如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间. java.uitl.concurrent.Thre ...