ssh隧道功能,也就是端口转发功能非常好用,可以实现一些代理功能或者是穿透内网功能。

ssh的端口转发(或者叫做隧道)命令分为三种:

本地:ssh -C -f -N -g -L listen_port:DST_Host:DST_port user@Tunnel_Host

远程:ssh -C -f -N -g -R listen_port:DST_Host:DST_port user@Tunnel_Host

动态:ssh -C -f -N -g -D listen_port user@Tunnel_Host

乍一看有点乱,仔细一分析就更蒙了-_-!

但是再深入的分析了搜索出来的相关的说明和别人的一些分享之后,终于搞清楚了使用方法。下面详细的看各个参数的用法。

-L port:host:hostport

将本地机(客户机)的某个端口转发到远端指定机器的指定端口.

ssh -C -f -N -g -L listen_port:DST_Host:DST_port user@Tunnel_Host

以这个为例,在本地监听一个端口listen_port,把listen_port的所有数据通过Tunnel_Host全部转发到DST_Host:DST_port上去。

-R port:host:hostport

将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口.

ssh -C -f -N -g -R listen_port:DST_Host:DST_port user@Tunnel_Host

远程端口转发,在Tunnel_Host上面监听一个端口 listen_port,把listen_port的所有数据通过Tunnel_Host全部转发到DST_Host:DST_port上去。

DST_Host:DST_port是对于本机来说的,但却是通过Tunnel_Host来访问的,所以Tunnel_Host必须能访问到DST_Host:DST_port,才能进行转发。

举个例子:我在家里和公司各有一台电脑,均没有公网ip,不能互通,但是我有一个有公网ip的VPS,我的两台电脑都可以访问vps,但是vps不能访问我的两台电脑,然后通过公司电脑ssh到vps建立一条隧道,我在家里就可以访问公司里的电脑了。说起来罗嗦的不得了,但是做起来很容易:

在公司的电脑上:ssh -C -f -N -g -R 8080:127.0.0.1:80 root@vps的ip

然后在家里直接访问vps的8080端口,就相当与访问了公司电脑的80端口了,over。

当然80端口只是web端口,我们可以转发22或者3389端口,就可以远程控制公司的电脑了。

-D port

指定一个本地机器 “动态的’’ 应用程序端口转发. 这个动态的就简单了,

ssh -N -f -D 8000 登录名@我的vps的ip

就相当与在本机上开了一个sock代理,端口是8000,给浏览器挂上127.0.0.1:8000的代理,查一下本机ip,发现已经变成vps的ip了。

我的上面用的vps是ubuntu系统,有的时候做了远程端口转发之后发现不能从外面访问,需要修改一下vps上面ssh的一个配置,/etc/ssh/sshd_config,把这个改成yes,如果没这句就加上:

GatewayPorts yes

然后重启sshd。这个作用是把转发的端口绑定在0.0.0.0的接口上,让外部地址也可以访问。

还要注意一点就是listen_port必须是没有被使用的,不然会监听失败。

下面是几个辅助参数,看着乱的话可以忽略,用的时候按需加上就好了。

-C Enable compression.
压缩数据传输。

-f Fork into background after authentication.
后台认证用户/密码,通常和-N连用,不用登录到远程主机。

-N Do not execute a shell or command.
不执行脚本或命令,通常与-f连用。

-g Allow remote hosts to connect to forwarded ports.
在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。

-p port Connect to this port. Server must be on the same port.
被登录的ssd服务器的sshd服务端口,省略就是默认的22端口。

SSH自动断开连接的原因

方法一:

用putty/SecureCRT连续3分钟左右没有输入, 就自动断开, 然后必须重新登陆, 很麻烦.

在网上查了很多资料, 发现原因有多种, 环境变量TMOUT引起,ClientAliveCountMax和ClientAliveInterval设置问题或者甚至是防火墙的设置问题. 所以可以这么尝试:

如果你在windows下通过工具连接,可以设置为
secureCRT:选项---终端---反空闲 中设置每隔多少秒发送一个字符串,或者是NO-OP协议包
putty:putty -> Connection -> Seconds between keepalives ( 0 to turn off ), 默认为0, 改为300.

建立SSH隧道(SSH端口转发)相关推荐

  1. ssh远程端口转发到本地_Linux SSH隧道或端口转发本地和远程端口的示例?

    ssh远程端口转发到本地 Ssh protocol secures remote connections which are shell or terminal-based to the remote ...

  2. SSH隧道技术----端口转发,socket代理

    原文的原始出处不详,本文也是在复制引用了某篇转载,并做了必要的整理与编辑. 本文的受众 如果你遇到了以下问题,那么你应该阅读这篇文章 我听说过这种技术,我对它很感兴趣 我想在家里访问我在公司的机器(写 ...

  3. 细说SSH隧道——本地端口转发

    目录 前言 本地端口转发 举例1:服务器与SSH远程主机是分开的 命令 网络拓扑 环境配置 开始连接(-L连接) 登录用户 流量分析 办公网(VM1网卡): 外网(NAT-VM8网卡) 家庭电脑抓包( ...

  4. SSH Tunnel扫盲(ssh port forwarding端口转发)

    2019独角兽企业重金招聘Python工程师标准>>> SSH的的Port Forward,中文可以称为端口转发,是SSH的一项非常重要的功能.它可以建立一条安全的SSH通道,并把任 ...

  5. SSH隧道 / SSH穿透

    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问.但我们一般都会在本地开发,因为这能快速的看到源码修改后的运行结果.但当涉及到需要调用微信接口时,由于不和你 ...

  6. SSH端口转发(ssh隧道)

    在打DarkHole2靶机的时候,使用到了ssh端口转发,在网上搜集了很多资料,特此记录下来,以便后续查找 ssh端口转发 SSH 隧道 本地端口转发 远程端口转发 动态端口转发 当我们需要访问一台主 ...

  7. linux 下ssh端口反弹,利用ssh隧道反弹shell

    说明 本文旨在分析rssh的源代码来学习利用ssh隧道来反弹shell.整个rssh只有1个347行的main文件,所以整体的逻辑结构也比较好分析.关于SSH端口转发的知识可以看实战SSH端口转发这篇 ...

  8. SSH的端口转发:本地转发Local Forward和远程转发Remote Forward

    http://zhumeng8337797.blog.163.com/blog/static/100768914201172125444948/ 实战 SSH 端口转发 https://www.ibm ...

  9. SSH 隧道转发——筑梦之路

    SSH 简介 SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据.但是,SSH 还同时提供了一个非常有用的功能,这就是端口转发优点:linux自带,传输加密,支持socks代理用法示例 ...

  10. ssh本地端口转发,远程端口转发,隧道(这个解释不饶)

    目录 创建隧道时的常用选项 本地端口转发 命令 原理 远程转发 命令 原理 隧道 命令 创建隧道时的常用选项 "-L选项":表示使用本地端口转发创建ssh隧道 "-R选项 ...

最新文章

  1. 从基础设施的演变,看人工智能到底需要什么样的底层平台
  2. SpringBoot(二)——实现一个基本的小网站
  3. android listview添加数据_Android面经分享,失业两个月,五一节前拿到offer
  4. 重温JS基础--创建对象
  5. 翻译 Windows Server 2016和System Center 2016 技术预览版4 使创新更容易
  6. 鸿蒙os 2.0跑分,预装鸿蒙 OS 2.0!华为 MatePad Pro2 跑分曝光:麒麟 9000、8GB 内存
  7. 莫比乌斯函数(bzoj 1101: [POI2007]Zap)
  8. python 实现熵权法确定各指标的权重
  9. python遥感数据有偿处理_地质男转行学遥感Python——DMSP数据预处理一
  10. EMNLP2020 | 模型压缩系列:BERT-of-Theseus(一种基于模块替换的模型压缩方法)
  11. 项目验收流程小TIPS
  12. 微信小程序之上传图片功能
  13. python hog特征提取,直接从原始图像的HoG特征提取编辑图像的HoG特征
  14. 降级至1.1.835教程
  15. 电脑键盘部分按键失灵_win10键盘个别按键失灵的原因及解决方法
  16. 人工神经网络—神经元的数学模型
  17. 使用POI导出数据和图片,
  18. CSS固定格式-小垒
  19. 正基WiFi6模块AP6275S
  20. Java-Java绘图坐标体系

热门文章

  1. 【控制台】快开学了,闲的没事,画个圈圈诅咒你
  2. 【STC单片机学习】第一课:学习介绍
  3. #小车记1--树莓派系统安装及初始化教程
  4. Juniper DHCPv6简单配置
  5. 实战项目-用例评审-问题总结-Dotest-董浩
  6. 软件测试--重新入门
  7. 【机器学习|数学基础】Mathematics for Machine Learning系列之矩阵理论(23):常数项级数的概念和性质(补充知识)
  8. HTML入门笔记15-HTML中插入外部链接
  9. HTML入门笔记7-粗体、斜体和下划线标签
  10. Adobe Photoshop CS3绿色精简版(26M)