博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSH Tunnel隧道
阅读量:7051 次
发布时间:2019-06-28

本文共 1651 字,大约阅读时间需要 5 分钟。

hot3.png

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.1ssh -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,一些不能直接访问的资源通过这个代理可以访问。

参照:

转载于:https://my.oschina.net/u/2935389/blog/869104

你可能感兴趣的文章
十一.单表更新及多表更新
查看>>
32位64位操作系统基本数据类型字节大小
查看>>
linux高级编程day04 笔记
查看>>
BZOJ 1006: [HNOI2008]神奇的国度
查看>>
Django 安装
查看>>
Centos Git1.7.1升级到Git2.2.1
查看>>
算法题总结----数组(二分查找)
查看>>
OPENWRT make menuconfig错误之一
查看>>
可集成到APP的车架号识别软件
查看>>
导出查询结果到csv文件
查看>>
Algs4-2.3.19五取样切分
查看>>
IDEA常用快揵键
查看>>
git 学习笔记
查看>>
[HDU5968]异或密码
查看>>
Vue的安装
查看>>
iOS开发~CocoaPods使用详细说明
查看>>
C#扩展方法
查看>>
移动浏览器中实现拨打电话,调用sms,发送email
查看>>
docker 搭建小型的node开发环境。
查看>>
Java第九次作业
查看>>