问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何使用ssh建立隧道

发布网友 发布时间:2022-04-22 17:03

我来回答

1个回答

热心网友 时间:2022-05-05 06:02

这条通道可以用很多技术来建立,这里我们仅仅介绍如何使用SSH服务器来建立这样一个通道-他被称为SSH隧道。
如何建立本地SSH隧道
在我们计划建立一个本地SSH隧道之前,我们必须清楚下面这些数据:
中间服务器d的IP地址
要访问服务器c的IP地址
要访问服务器c的端口
现在,我们把上面这张图变得具体一些,给这些机器加上IP地址。并且根据下面这张图列出我们的计划:

需要访问234.234.234.234的FTP服务,也就是端口21
中间服务器是123.123.123.123
现在我们使用下面这条命令来达成我们的目的
ssh -N -f -L 2121:234.234.234.234:21 123.123.123.123
ftp localhost:2121 # 现在访问本地2121端口,就能连接234.234.234.234的21端口了
这里我们用到了SSH客户端的三个参数,下面我们一一做出解释:
-N 告诉SSH客户端,这个连接不需要执行任何命令。仅仅做端口转发
-f 告诉SSH客户端在后台运行
-L 做本地映射端口,被冒号分割的三个部分含义分别是
需要使用的本地端口号
需要访问的目标机器IP地址(IP: 234.234.234.234)
需要访问的目标机器端口(端口: 21)
最后一个参数是我们用来建立隧道的中间机器的IP地址(IP: 123.123.123.123)
我们再重复一下-L参数的行为。-L X:Y:Z的含义是,将IP为Y的机器的Z端口通过中间服务器映射到本地机器的X端口。
在这条命令成功执行之后,我们已经具有绕过公司防火墙的能力,并且成功访问到了我们喜欢的一个FTP服务器了。
如何建立远程SSH隧道
通过建立本地SSH隧道,我们成功地绕过防火墙开始下载FTP上的资源了。那么当我们在家里的时候想要察看下载进度怎么办呢?大多数公司的网络是通过路由器接入互联网的,公司内部的机器不会直接与互联网连接,也就是不能通过互联网直接访问。通过线路D-B-A访问公司里的机器a便是不可能的。也许你已经注意到了,虽然D-B-A这个方向的连接不通,但是A-B-D这个方向的连接是没有问题的。那么,我们能否利用一条已经连接好的A-B-D方向的连接来完成D-B-A方向的访问呢?答案是肯定的,这就是远程SSH隧道的用途。
与本地SSH一样,我们在建立远程SSH隧道之前要清楚下面几个参数:
需要访问内部机器的远程机器的IP地址(这里是123.123.123.123)
需要让远程机器能访问的内部机器的IP地址(这里因为是想把本机映射出去,因此IP是127.0.0.1)
需要让远程机器能访问的内部机器的端口号(端口:22)
在清楚了上面的参数后,我们使用下面的命令来建立一个远程SSH隧道
ssh -N -f -R 2222:127.0.0.1:22 123.123.123.123
现在,在IP是123.123.123.123的机器上我们用下面的命令就可以登陆公司的IP是192.168.0.100的机器了。
ssh -p 2222 localhost
-N,-f 这两个参数我们已经在本地SSH隧道中介绍过了。我们现在重点说说参数-R。该参数的三个部分的含义分别是:
远程机器使用的端口(2222)
需要映射的内部机器的IP地址(127.0.0.1)
需要映射的内部机器的端口(22)
例如:-R X:Y:Z 就是把我们内部的Y机器的Z端口映射到远程机器的X端口上。
建立SSH隧道的几个技巧
自动重连
隧道可能因为某些原因断开,例如:机器重启,长时间没有数据通信而被路由器切断等等。因此我们可以用程序控制隧道的重新连接,例如一个简单的循环或者使用 djb’s daemontools . 不管用哪种方法,重连时都应避免因输入密码而卡死程序。关于如何安全的避免输入密码的方法,请参考我的 如何实现安全的免密码ssh登录 。这里请注意,如果通过其他程序控制隧道连接,应当避免将SSH客户端放到后台执行,也就是去掉-f参数。
保持长时间连接
有些路由器会把长时间没有通信的连接断开。SSH客户端的TCPKeepAlive选项可以避免这个问题的发生,默认情况下它是被开启的。如果它被关闭了,可以在ssh的命令上加上-o TCPKeepAlive=yes来开启。
另一种方法是,去掉-N参数,加入一个定期能产生输出的命令。例如: top或者vmstat。下面给出一个这种方法的例子:
ssh -R 2222:localhost:22 123.123.123.123 "vmstat 30"
检查隧道状态
有些时候隧道会因为一些原因通信不畅而卡死,例如:由于传输数据量太大,被路由器带入stalled状态。这种时候,往往SSH客户端并不退出,而是卡死在那里。一种应对方法是,使用SSH客户端的ServerAliveInterval和ServerAliveCountMax选项。ServerAliveInterval会在隧道无通信后的一段设置好的时间后发送一个请求给服务器要求服务器响应。如果服务器在ServerAliveCountMax次请求后都没能响应,那么SSH客户端就自动断开连接并退出,将控制权交给你的监控程序。这两个选项的设置方法分别是在ssh时加入-o ServerAliveInterval=n和-o ServerAliveCountMax=m。其中n, m可以自行定义。
如何将端口绑定到外部地址上
使用上面的方法,映射的端口只能绑定在127.0.0.1这个接口上。也就是说,只能被本机自己访问到。如何才能让其他机器访问这个端口呢?我们可以把这个映射的端口绑定在0.0.0.0的接口上,方法是加上参数-b 0.0.0.0。同时还需要打开SSH服务器端的一个选项-GatewayPorts。默认情况下它应当是被打开的。如果被关闭的话,可以在/etc/sshd_config中修改GatewayPorts no为GatewayPorts yes来打开它。
如何寻找中间服务器
如果你家里使用ADSL上网,多半你会比较幸运。一般的ADSL(例如 联通 的ADSL)都是有互联网地址的。你只需要在家里的路由器上一台装有OpenSSH server机器的SSH端口映射出去即可。同时一些提供SSH访问的虚拟主机也可以用于这一用途。例如: Hostmonser 或者 Dreamhost .
通过SSH隧道建立SOCKS服务器
如果我们需要借助一台中间服务器访问很多资源,一个个映射显然不是高明的办法(事实上,高明确实没有用这个方法)。幸好,SSH客户端为我们提供了通过SSH隧道建立SOCKS服务器的功能。
通过下面的命令我们可以建立一个通过123.123.123.123的SOCKS服务器。
ssh -N -f -D 1080 123.123.123 # 将端口绑定在127.0.0.1上
ssh -N -f -D 0.0.0.0:1080 123.123.123.123 # 将端口绑定在0.0.0.0上
通过SSH建立的SOCKS服务器使用的是SOCKS5协议,在为应用程序设置SOCKS代理的时候要特别注意。
总结
至此,我们已经对如何利用SSH隧道有一个基本的认识了。现在,文章开始时的那些问题应该迎刃而解了吧。这里要特别说一下,由于SSH隧道也使用了SSH加密协议,因此是不会被防火墙上的内容过滤器监控到的。也就是说一切在隧道中传输的数据都是被加密的。当然,离开隧道后的数据还是会保持自己原有的样子,没有加密的数据还是会被后续的路由设备监控到。
如何使用ssh建立隧道

需要访问内部机器的远程机器的IP地址(这里是123.123.123.123)需要让远程机器能访问的内部机器的IP地址(这里因为是想把本机映射出去,因此IP是127.0.0.1)需要让远程机器能访问的内部机器的端口号(端口:22)在清楚了上面的参数后,我们使用下面的命令来建立一个远程SSH隧道 ssh -N -f -R 2222:127...

如何对光传输设备进行调试和维护?

对光传输设备进行调试和维护,需要掌握以下关键点:1. **熟悉设备性能**:深入了解OTN/DWDM等光传输产品的性能特点,确保能够熟练使用设备。2. **按规范操作**:依据产品说明书和维护手册进行调试和维护,确保操作步骤正确无误。3. **故障排查**:掌握常见故障现象及处理方法,能够迅速定位问题并进行修复。4. **性能监测**:定期监测设备性能指标,确保设备运行状态良好,及时发现并解决潜在问题。5. **专业培训**:参与相关培训,不断提升自身技能水平,以更好地应对各种挑战。通过以上措施,可以确保光传输设备的稳定运行,提升网络可靠性和智能…对光传输设备进行调试和维护需要掌握一定的专业知识和技术,包括光功率计、光谱分析仪等测试仪器的使用,以及对光传输系统的工作原理和性能指标的深入理解。深圳市光派通信技术有限公司提供专业的技术支持和服务,可为客户提供全面的光传输设备...

python渗透测试入门之ssh隧道

正式实验步骤如下:1、在Kali虚拟机上启动Web服务。2、在Kali虚拟机上启动SSH服务。3、在Macbook上运行脚本,其中IP地址192.168.0.103分别代表SSH服务器与Web服务器,--user与--password参数则为SSH服务器的用户名与密码。4、在SSH服务器上验证隧道功能的正确性。通过此实验,能够直观地理解SSH隧道的...

如何在xshell中创建一个SSH隧道

1、打开xshell,尚未安装的用户,可以在xshell中文网下载xshell。2、如果会话对话框没有自动打开,点击“文件”菜单中的“打开”3、在会话对话框中,在会话中单击“连接”按钮连接到远程主机,然后在页面中点击“属性”按钮。4、在属性对话框中的类别中选择“SSH—隧道”5、在TCP/IP转移中,点击下方的...

SSH隧道及其使用

如果希望通过本地计算机,让远程服务器 remote 可以连接到 server 上的服务,可以使用SSH远程转发。使用SSH远程转发一个典型的用途是,在企业内部开一个后门,让公网的计算机可以访问到企业的某个内部服务,这个是有一定风险的,使用的时候需要特别小心。在OpenSSH中,远程转发通过 -R 参数开启,在本地计算...

在ssh中,知道怎么来使用ssh隧道.通过

1 打开secureCRT,连接到服务器(本例服务器IP:192.168.102.131),然后打开会话选项。2 进入会话选项后,找到“端口转发”,点击“增加(A)..”。然后填写三个项,a.名称; b.本地端口5901; c.远程端口5901;d.点击确认,如下图。 这样,本地的5901端口将与远程服务器的5901通过ssh隧道连接,...

如何利用XShell隧道通过跳板机连接内网机器

1.首先建立跳板机的连接,并配置隧道。打开XShell点击文件菜单再点击新建弹出新建会话属性窗口,名称就取为跳板机,端口是22,主机填写前面假设的ip地址。2.点击用户身份验证,填写登录跳板机的SSH用户名和密码。3.为防止跳板机连接过久自动断开,所以这里添加登录脚本直接发送top命令。点击登录脚本,勾选上...

ssh端口转发(跳板机)实战详解

1)模拟服务器C不允许A用户连接,在服务器C上输入以下口令:此时,从A(121)用ssh命令连接服务器C是拒绝的:2)开启端口转发:首先,我们在机器A上确认已经开启的端口有哪些:从上图中我们可以看出,2222端口没有被占用,所以我们可以选择使用的2222端口:接着我们建立本地转发的隧道(A上输入以下命令...

使用SSH TUNNEL 打通公司和家里的网络

一般情况下的对应方法:本文的目的就是使用 SSH TUNNEL 这项技术解决上面的问题,也就是打通所谓的 "公司内网" 和 "家庭内网"。经常远程连接 Linux 服务器的小伙伴,对于 ssh 这个命令应该不陌生吧。它还可以不执行远程指令只建立一条和远程服务器之间的连接,也就是形成了一条通道,在这条...

ssh隧道转发解析与内网穿透RDP、简易VPN实现

如在A上设置代理,通过B加密访问网络,突破限制。利用这些转发,我们可以实现内网穿透,如RDP远程桌面,命令如下:将本地3389端口转发到公网服务器的33333,确保服务器的防火墙放行。同样地,简易公司VPN可通过SSH将公司22端口转发至7890端口的动态代理,设置浏览器或应用使用这个代理,即可访问公司内网资源。

Windows安装SSH服务并实现无公网IP远程ssh连接

本地连接测试使用用户名和密码(如Windows账户)在SSH客户端(如Xshell)测试127.0.0.1:22,确认本地连接成功并执行命令。安装Cpolar工具访问Cpolar官网(cpolar.com/)注册并下载Windows客户端。登录后,配置Cpolar以便管理和创建TCP隧道。配置SSH公网地址在Cpolar的隧道管理中创建TCP隧道,获取生成的公网...

sock和ssh隧道区别 ssh 隧道 ssh隧道原理 关闭ssh隧道 ssh隧道转发 ssh反向隧道 android ssh 隧道 ssh隧道穿墙 ssh隧道反向代理实例
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
石磊发表论文 朱龙生履历 贺瑞麟烈士贺瑞麟 石磊最年轻正处级 共青团南京市委大事记 猪的言语比较能兔子吃草特别灵 民法典规定合同撤销权效力消灭的情形有哪些 秘塔ai和天工ai的区别秘塔ai和天工ai的区别在哪 天工ai是国产吗 汉仪字体推荐 全新漫画风字体助力品牌年轻化升级 了解关于SSH远程连接服务 ansible怎么配置ssh参数 ssh 命令怎么用? ssh命令如何使用? 三星s8怎么退出QQ输入法? 硝酸钾 铝粉 镁粉允许买卖吗? 在网络上购买1千克硝酸钾钙合法吗? 买了20KG硝酸钾 硝酸钾在那可以买?? 无锡java培训去哪里比较好 无锡java培训有哪些内容?无锡中软卓越的Java培训课程怎么设置的? 无锡编程课哪个机构最好 无锡JAVA编程开发培训哪家好?知道的推荐一下 无锡java培训有哪些内容?无锡中软卓越的Java培训课程怎么设置的? 无锡哪里有JAVA培训,项目实战5上年开发经验老师 无锡编程课哪个机构最好 无锡 JAVA培训机构 无锡JAVA培训机构哪家比较好 无锡JAVA培训哪里好 无锡比较好的JAVA培训有哪些,请各位提供 详细的 SSH 127.0.0.1 命令的扩展及其含义 关于路由器设置SSH,诚心求教 手机五笔字怎么打 H3C交换机SSH配置方法 ssh通道怎么用 ssh 如果没有信任关系就跳过输入密码用什么参数 手机五笔(好)字怎么打? linux 语言中 ssh -p啥意思 ssh用的命令与linux用的命令有何区别,linux中的命令包括了ssh的命令么 linux系统中SSH命令是什么作用? 怎样用ssh命令vncserver服务 人体果盘是什么 如何把这照片设置更加清晰,帮忙一下? 怎样将QQ输入法退出桌面? 朱元璋为什么要杀掉已是暮年的李善长? 一个人发朋友圈的说说 朋友圈怎么发显得有内涵 内涵高情商朋友圈说说 这图发朋友圈 求一个好听点的文案 有内涵的 如何有内涵的发朋友圈呢?