SSH Tunnel隧道
ssh(secure shell)是一种对数据进行加密安全传输的协议。利用ssh工具可以非常方便的登录远程提供有ssh服务的主机,也可以很方便的进行文件传输。利用 ssh tunnel 可以进行端口转发(port forwarding), 它在ssh连接上建立一个加密的通道。创建了ssh tunnel之后,可以突破一些网络的限制访问不能直接访问的资源。
ssh tunnel分为三种,本地(L),远程(R)和动态(D)。
比如sshserver上服务监听在127.0.0.1:80上,并没有暴露80端口给网络,可以通过隧道转发到本机端口进行访问.
man ssh
#-L [bind_address:]port:host:hostport
#Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.#-R [bind_address:]port:host:hostport
#Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side. #-N Do not execute a remote command. This is useful for just forwarding ports (protocol version 2 only).
#-T Disable pseudo-terminal allocation.
#-N, -T这个两个参数可以放在一起用,代表这个SSH连接只用来传数据,不执行远程操作。#-f 让ssh后台运行
可能应用的场景
本地端口映射 -L
比如ssh服务器host1上服务监听在127.0.0.1:80上,并没有暴露80端口给网络,可以通过隧道转发到本机端口进行访问.
ssh -NfL 9000:localhost:80 host1 #默认绑定地址是127.0.0.1
ssh -NfL 0.0.0.0:9000:localhost:80 host1 #监听0.0.0.0,将端口暴露给网络
这样一来,我们只要连接本地的9000端口,就等于连上了host1本地的80端口。
远程端口转发 -R
既然”本地端口转发”是指绑定本地端口的转发,那么”远程端口转发”(remote forwarding)当然是指绑定远程端口的转发。
比如在家里想访问到公司里面的电脑,由于都不是在同一个局域网中不能直接访问,需要一台外网服务器remoteHost
#在公司电脑上,将本地的ssh服务端口映射到远程机器的9022端口。
ssh -NfR 9022:localhost:22 remoteHost
#在家里登录外网服务器后,ssh连接公司电脑.
ssh -p 9022 localhost
动态端口映射 -D
因为防火墙等因素本地机器不能访问某些资源,但是远程ssh主机可以访问。你可以从本地ssh到远程那台主机。这时你希望用远程主机做代理以方便本地的网络访问,因为最先介绍的本地端口映射只能对指明的个别网站进行访问。
ssh -NfD 9000 remoteHost
通过SSH建立的SOCKS服务器使用的是SOCKS5协议,在为应用程序设置SOCKS代理的时候要特别注意。
接着在浏览器上设置Socket代理
:地址是localhost
,端口是9000
。从此以后,你的访问都是加密的了,而且走的是远程主机,IP变为了远程主机的IP,一些不能直接访问的资源通过这个代理可以访问。
参照:
- SSH Tunnel (port forwarding) 的一些应用
- https://en.wikipedia.org/wiki/Tunneling_protocol
- SSH隧道技术简介
- SSH原理与运用(二):远程操作与端口转发
SSH Tunnel隧道相关推荐
- SSH Tunnel隧道详解
SSH Tunnel隧道详解 ssh tunnel分为三种 本地 -L 远程 -R 动态 -D 参考:https://blog.csdn.net/chenjh213/article/details/4 ...
- SSH tunnel 隧道技术
常用的隧道技术有三种: 本地(L), 远程(R)和动态端口转发(D) 本文的例子是: 客户服务器A内网,部署了Apollo 并且有可视化界面 客户服务器B:一台跳板机 可以连通服务器A 并且带有公网I ...
- 使用SSH反向隧道进行内网穿透
这篇文章主要介绍了如何利用SSH 反向隧道穿透NAT,并演示了如何维持一条稳定的SSH 隧道. 假设有机器A 和B,A 有公网IP,B 位于NAT 之后并无可用的端口转发,现在想由A 主动向B 发起S ...
- 使用vscode remote ssh功能远程连接服务器或树莓派时,报错Setting up SSH tunnel的终极解决办法,全网仅此一份
当你想用vscode remote ssh 功能远程开发linux服务器.树莓派时,.vscode-server文件创建完成,但是一直显示卡在 Setting up SSH Host <你的用户 ...
- SSH tunnel tips
转自:http://blog.pluskid.org/?p=369 从我两三年前接触 SSH 的时候我就在文档上见过 SSH tunnel 相关的东西,然而当时没有怎么看明白,也就一直没有深究,直到最 ...
- PostgreSQL performance test use ssh tunnel
前面一篇BLOG介绍了PostgreSQL ssl数据加密的性能, 相比未加密性能下降得比较厉害. http://blog.163.com/digoal@126/blog/static/1638770 ...
- NestJS 6.x折腾记- (0) 开胃菜, TypeORM 连接远程的MySQL(ssh tunnel)及Linux信息过滤裁切基础
前言 昨天发现的框架,看了下官方文档,号称Nodejs版本的spring(java) 开发模式有ng6既视感,这对有ng经验的小伙伴来说,莫名的亲切- 适合尝尝鲜,目前有1W+ star, 上正式线我 ...
- Workbench Could not connect the SSH Tunnel Authentication error
1. 问题现象 平日正常使用的 Workbench 在重启电脑之后发现无法连接到对应的数据库,workbench log显示 SSH tunnel]: Authentication error ope ...
- ssh远程工具_Rsync如何利用SSH加密隧道同步文件
请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. 前言 本文主要讲解Linux系统中的Rsync如何利用SSH ...
最新文章
- NLP模型BERT和经典数据集!
- Hyperledger子项目
- 用户运营平台产品设计指南
- 【大连】2021年下半年软考报考时间及通知
- android动画效果 translate,Android利用translate、scale、alpha、rotate实现动画效果
- mysql 表丢失_Mysql数据库备份 部分数据表丢失 Mysql table doesn't exist 解决
- [css] 有用过scss和sass吗?说说它们之间的区别是什么?
- select时尽可能少使用as对性能很有好处
- Python爬取2900条数据,深度揭秘到底哪种防脱发洗发水最受欢迎?
- View的滚动原理简单解析(二)
- Jquery 提交表单
- DS18B20驱动详解(蓝桥杯单片机)
- Docx4j简单学习
- Python编程--目标IP地址段主机指定端口状态扫描
- Java 静态代理
- atto软件测试速度,基于ATTO的传输速度VS文件大小测试
- 算法题 高斯消元解线性方程组(Python)
- 中职学计算机专业考本科难吗,国际本科难不难(中职考本科难不难)
- 更改360极速浏览器默认安装路径
- win10电脑360调用不到JAVA,windows10系统下360浏览器打不开网页如何解决
热门文章
- 电容笔和触控笔有什么区别?第三方电容笔了解下
- 校验手机号正则,支持166及199等手机号
- 磁盘管理器/磁盘管理工具给电脑硬盘分区
- 面向95后的营销和增长,你需要知道这些( ゜- ゜)つロ 乾杯
- 国产银河数字式电子计算机是属于什么,邱桂香老师-计算机基础.ppt
- 西门子1200PLC程序SCL数控G代码功能块源文件 S7-1200PLC程序SCL数控G代码功能块源文件
- 用汇编语言写51单片机程序开头为什么一般都这样:ORG 0000H LJMP MAIN ORG 0030H
- Mp3:最后的免费“午餐”
- (七)通过pygame来设置飞机大战中 敌机 的速度、位置等
- Sequence-to-Sequence Model (Seq2Seq)