分正向和反向。

假设,本地机器可以ssh连上远程机器。本地机器在下面叫做SSHClient, 远程机器叫做SSHServer.

一、 正向代理(本地转发)

在SSHClient机上执行:

: SSHServer -p22
注意:
1. 蓝色部分就是一个ssh语句。绿色是本地。红色是远程。
2. 这里面的"localhost"指的是SSHServer机上的localhost。而绿色1234才是本地。
3. 这条命令的作用是:在本机(SSHClient机)上打开一个端口1234,这个1234能把接收的数据转发到SSHServer机上的12300端口.
4. 注意SSHClient机上的1234在SSHClient的localhost上。如果希望SSHClient的同内网其他机器(能够直接访问SSHClient的机器)也能访问这个1234,怎开办呢?加-g参数:
ssh -g -NfL 1234:localhost:12300 SSHServer -p22
(加-g参数前后,可以看看 lsof -i :1234 的区别: LISTEN从localhost变为*了~)
也可以这样:
ssh -NfL 0.0.0.0:1234:localhost:12300 SSHServer -p22
5. 如果想转发的是SSHServer机器上可以访问的其他服务,比如www.baidu.com:80,那就把上面命令里的红色换成www.baidu.com:80即可。然后浏览器打开localhost:1234,却发现然并卵——"Empty reply from server"。。。其实已经转发成功了,但是对于http应该这样: curl -H "Host: www.baidu.com" -X GET http://localhost:1234

二、反向代理(远程转发)

在SSHClient机上执行:

:localhost:22  SSHServer -p22
注意:
1. 蓝色部分就是一个ssh语句。绿色是本地。红色是远程。
2. 这里面的"localhost"指的就是本机(SSHClient机)上的localhost。而红色是远程机上开了个‘洞’。这时上SSHServer上 lsof -i :2222 就会发现已经打开了端口监听。
3. 这条命令的作用是:在远程机器SSHServer上开了一个端口2222, 这个2222会把接收到的数据转发到SSHClient上的22端口。
(22是ssh,那么登上SSHServer用ssh连SSHClient试试: ssh user@SSHClient -p2222  这里假设SSHClient机上面也安装了ssh服务)

ssh的tunnel隧道打洞的更多相关文章

  1. [daily] 比端口转发更高级的ssh device tunnel转发

    没有什么能够阻挡,你对自由的向往. 场景: 我有一台设备Server100,在某一个f复杂的内网里,需要多次ssh跳转可以访问到.但是它不能直接访问internet. 我现在需要在我的ssh路径上,搭 ...

  2. 关于WinSCP如何通过Tunnel隧道进行远程连接-进行文件的传输

    对于公司业务相关的重要的Linux服务器,一般都会限制源IP登录,一般就会使用到jumper server(跳板机) 这样一来,我们的Client就无法直接ssh/scp/sftp到目标服务器了,这样 ...

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

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

  4. SSH隧道打洞技巧

    SSH Tunnel有三种,分别是Local模式(ssh -NfL),Remote模式(ssh -NfR),Dynamic模式(ssh -NfD). 基本参数说明: -N 不执行任何命令 -f 在背景 ...

  5. ssh reverse tunnel

    ssh反向通道的可用场景之一:从外网访问内网的主机.所必须的是你需要一个有ssh登录权限的公网主机. 步骤如下(将内网主机称作A,公网ssh主机地址为hostP ): 1.在内网A上执行 :local ...

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

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

  7. DNS Tunnel隧道隐蔽通信实验 && 尝试复现特征向量化思维方式检测

    1. DNS隧道简介 DNS隧道技术是指利用 DNS协议建立隐蔽信 道,实现隐蔽数据传输.最早是在2004年 DanKaminsky 在 Defcon大会上发布的基于 NSTX 的 DNS隐蔽 隧道工 ...

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

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

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

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

随机推荐

  1. java 同步 synchronized

    http://www.cnblogs.com/Qian123/p/5691705.html http://www.cnblogs.com/GnagWang/archive/2011/02/27/196 ...

  2. request.environ.get('wsgi.websocket')

    前言 websocket 是一种html5新的接口,以前服务器推送需要进行ajax等方式进行轮训,对服务器压力较高,随着新标准的推进,使用websocket在推送等方面已经是比较成熟了,并且各个浏览器 ...

  3. 关于redis与memcached区别(转载自stackoverflow)

    转载自:http://stackoverflow.com/questions/10558465/memcached-vs-redis Updated 10/9/2014 Today marks the ...

  4. java读取数据,2,2,1方式读取

    /*   * for(int i=0;i<15;)   * { for(int j=0;j<5;j++,i++)   *    {    *      if(j%2==0&& ...

  5. 关于php开发中的字符编码问题总结的几个要点

    用php这么久,今天终于要彻底总结下php乱码问题,因为实在是吃过不少亏啊 1:header("content-type:text/html;charset=utf-8")或者&l ...

  6. event对象中 target和currentTarget 属性的区别。

    首先本质区别是: event.target返回触发事件的元素 event.currentTarget返回绑定事件的元素

  7. 关于“UI线程”

    http://www.cppblog.com/Streamlet/archive/2013/05/05/199999.html 缘起 这是一篇找喷的文章. 由于一些历史原因和人际渊源,周围同事谈论一些 ...

  8. 查询返回JSON数据结果集

    查询返回JSON数据结果集 设计目标: 1)一次性可以返回N个数据表的JSON数据 2)跨数据库引擎 { "tables": [ { "cols": [ { & ...

  9. 构建第一个 Spring Boot 工程

    Spring Boot概述 什么是Spring Boot 随着动态语言的流行,java的开发显得格外笨重,繁多的配置文件编写,低下的开发效率,复杂的部署流程以及第三方技术集成难度大. 在上述环境下Sp ...

  10. crucible 的 破解

    crucible这个东西用了很久,但是从来都没有想过去破解它,毕竟在公司是不能使用破解 软件的.于是再家里面玩一下而已.下载地址 运行crucible_keygen 如图: 点击 patch 将选择安 ...