SSH隧道穿透的原理与实战-深化浅出 (ssh隧道穿透)
SSH(SecureShell)是一种罕用的远程登录和文件传输协定,而SSH隧道穿透是SSH协定的一个弱小性能。经过SSH隧道,咱们可以在两个主机之间建设一个加密的通道,成功安保传输数据和访问远程网络资源。本文将具体引见SSH隧道穿透的基本概念、基本用法和初级用法,并提供实在例子、命令和解析。
一、基本概念
SSH隧道穿透是经过SSH衔接在两个主机之间建设一个加密的通道,将数据从一个主机传输到另一个主机。这种隧道可以用于多种目的,如加密传输、绕过防火墙或代理主机,以及访问远程网络资源。SSH隧道的基本思维是经过SSH协定的加密和安保性,确保数据传输的秘密性和完整性。
二、基本用法
命令示例:
解析:
示例:假定咱们有一台位于内网的主机A,主机A上运转着一个Web运行程序,咱们想经过外部网络访问该运行程序。咱们可以在本地主机上口头以下命令:
ssh-L8080:localhost:80user@serverA
经过口头该命令,咱们将本地主机的端口8080与主机A上的Web运行程序绑定起来。如今,咱们可以在本地阅读器中访问,实践上是经过SSH隧道将恳求发送到主机A上的Web运行程序。
命令示例:
解析:
示例:假定咱们有一台位于内网的主机A,咱们宿愿经过远程主机B访问主机A上的数据库服务。咱们可以在主机B上口头以下命令:
ssh-R3306:localhost:3306user@serverA
经过口头该命令,咱们将主机B上的端口3306与主机A上的数据库服务绑定起来。如今,咱们可以在主机B上经常使用localhost:3306来访问主机A上的数据库服务。
三、初级用法
除了基本用法外,SSH隧道穿透还有一些初级用法,可以满足更复杂的需求。
1.灵活端口转发:灵活端口转发是SSH隧道穿透的初级用法之一。经过灵活端口转发,咱们可以将本地主机上的流量经过SSH隧道转发到远程主机,并经过远程主机访问其余网络资源,实现代理主机的性能。
命令示例:
解析:
示例:假定咱们须要在一个受限度的网络环境中访问互联网。咱们可以在本地主机上口头以下命令:
ssh-D1080user@serverB
经过口头该命令,咱们在本地主机上建设了一个灵活端口转发的SSH隧道。如今,咱们可以在阅读器或其余运行程序中性能代理主机,将代理主机设置为localhost:1080,从而经过SSH隧道访问互联网。
命令示例:
ssh-L<local_port>:<target_host>:<target_port>-J<jump_host1>,<jump_host2>,...<user>@<final_host>
解析:
示例:假定咱们须要经过主机A、主机B和主机C才干访问指标主机D上的Web运行程序。咱们可以在本地主机上口头以下命令:
ssh-L8080:D:80-JuserA@serverA,userB@serverB,userC@serverCuserD@serverD
经过口头该命令,咱们建设了多个SSH隧道,将本地主机的端口8080与指标主机D上的Web运行程序绑定起来。如今,咱们可以在本地阅读器中访问,实践上是经过多级跳转的SSH隧道将恳求发送到指标主机D上的Web运行程序。
论断:
SSH隧道穿透是一种弱小的网络工具,经过SSH衔接和端口转发,可以成功安保传输数据和访问远程网络资源的性能。本文引见了SSH隧道穿透的基本概念、基本用法和初级用法,并提供了实在例子、命令和解析。经过了解和把握SSH隧道穿透的经常使用,咱们可以更好地利用SSH协定的弱小性能,满足不同场景下的安保传输和访问需求。
利用阿里云ECS跳板机内网穿透- ssh
背景: 暴露私网的一台机器,公网可访问。 由于坑爹的电信没有给固定的公网IP,所以没法在路由器上配置公网转发。 网上google后,发现ssh的强大,一条命令搞定。 工作原理: 1、本地主机和远程主机建立连接; 2、远程主机上分配了一个 socket 侦听 port 端口; 3、远程端口上有了连接, 该连接就经过安全通道转向本机的端口。 备注:root 登录远程主机才能转发特权端口。 在内网机器上执行上述命令后,netstat可以看见本机和远程机器已建立ssh的链接。 登录远程机器查看 此时在远程机器直接ssh本机的2222端口,就可以访问内网机器了。 似乎这里一切OK,但是我们需要的是一台跳板机。 当换一台其他的ECS连接远程的机器后,发现链接拒绝。 其实留心下就发现了,上面lsof查看的时候,监听的是localhost,其他机器当然无法访问了。 可是我们的ssh参数中明明有-g选项,-g就是明确允许远程机器可以远程访问啊。 google后发现,运程机器的ssh还需要开启GatewayPorts yes 然后在内网机器重新执行上述命令,这里在远程机器上查看,监听的是公网IP,OK了。 现在可以在可访问远程机器的PC上,ssh 2222端口,从而访问内网的机器了。
有没有简单的内网穿透工具?
1、Ngrokngrok 是一个反向代理,通过在公共端点和本地运行的 Web 服务器之间建立一个安全的通道,实现内网主机的服务可以暴露给外网。 ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放,所以ngrok可以很方便地协助服务端程序测试。 参考博客:10分钟教你搭建自己的ngrok服务器2、Natappnatapp是 基于ngrok的国内收费内网穿透工具,类似花生壳,有免费版本,比花生壳好。 免费版本:提供http,https,tcp全隧道穿透,随机域名/TCP端口,不定时强制更换域名/端口,自定义本地端口参考文章:NATAPP1分钟快速新手图文教程3、小米球小米球是基于ngrok二次开发的内网穿透工具,支持多协议、多隧道、多端口同时映射(http、https、tcp等等...),同时支持多种系统win、linux、linux_arm、mac等。 具体的使用直接参考官网。 4、Sunny-NgrokSunny-Ngrok同样是ngrok二次开发的内网穿透工具,支持http,https协议,同时支持更丰富的系统和语言:linux、win、mac、openwrt、 python、php等。 教程:Sunny-Ngrok使用教程5、echositeechosite同样ngrok二次开发的内网穿透工具,支持多种协议,以前是全部免费的,现在推出了收费版和免费版,可根据自己的需要去选择。 参考教程:EchoSite---让内网穿透变得简单6、Ssh、autosshssh 配合autossh工具使用,因为autossh会容错,自动重新启动SSH会话和隧道。 autossh是一个程序,用于启动ssh的副本并进行监控,在死亡或停止传输流量时根据需要重新启动它。 这个想法来自rstunnel(Reliable SSH Tunnel),但是在C中实现。 作者的观点是,它不像匆匆忙忙的工作那么容易。 使用端口转发环路或远程回显服务进行连接监视。 在遇到连接拒绝等快速故障时,关闭连接尝试的速度。 在OpenBSD,Linux,Solaris,Mac OS X,Cygwin和AIX上编译和测试; 应该在其他BSD上工作。 免费软件。 使用教程:SSH内网穿透7、Lanproxylanproxy是一个将局域网个人电脑、服务器代理到公网的内网穿透工具,目前仅支持tcp流量转发,可支持任何tcp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面...)。 目前市面上提供类似服务的有花生壳、TeamView、GoToMyCloud等等,但要使用第三方的公网服务器就必须为第三方付费,并且这些服务都有各种各样的限制,此外,由于数据包会流经第三方,因此对数据安全也是一大隐患。 参考教程:业余草推荐一款局域网(内网)穿透工具lanproxy8、SpikeSpike是一个可以用来将你的内网服务暴露在公网的快速的反向代理,基于ReactPHP,采用IO多路复用模型。 采用Php实现。 参考教程:使用 PHP 实现的的内网穿透工具 “Spike”9、Frpfrp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。 利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。 对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。 利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。 教程:一款很好用的内网穿透工具--FRP、使用frp实现内网穿透10、FcnFCN[free connect]是一款傻瓜式的一键接入私有网络的工具, fcn利用公共服务器以及数据加密技术实现:在免公网IP环境下,在任意联网机器上透明接入服务端所在局域网网段。 支持多种系统,有免费版和付费版。 教程:内网穿透工具FCN介绍上面便是我所知道的内网穿透工具,其中ngrok相关的我基本都用过还有frp,都差不多。 大部分都可以免费去使用,但是我不建议大家把这些免费的穿透工具去放到比较重要的云服务器中去使用,容易被攻击。 我的小伙伴,开始你的穿透之旅吧。 Proxy-Go 详细介绍Proxy是golang实现的高性能http,https,websocket,tcp,udp,socks5代理服务器,支持正向代理、反向代理、透明代理、内网穿透、TCP/UDP端口映射、SSH中转、TLS加密传输、协议转换、DNS防污染代理。 Features链式代理,程序本身可以作为一级代理,如果设置了上级代理那么可以作为二级代理,乃至N级代理。 通讯加密,如果程序不是一级代理,而且上级代理也是本程序,那么可以加密和上级代理之间的通讯,采用底层tls高强度加密,安全无特征。 智能HTTP,SOCKS5代理,会自动判断访问的网站是否屏蔽,如果被屏蔽那么就会使用上级代理(前提是配置了上级代理)访问网站;如果访问的网站没有被屏蔽,为了加速访问,代理会直接访问网站,不使用上级代理。 域名黑白名单,更加自由的控制网站的访问方式。 跨平台性,无论你是widows,linux,还是mac,甚至是树莓派,都可以很好的运行proxy。 多协议支持,支持HTTP(S),TCP,UDP,Websocket,SOCKS5代理。 TCP/UDP端口转发。 支持内网穿透,协议支持TCP和UDP。 SSH中转,HTTP(S),SOCKS5代理支持SSH中转,上级Linux服务器不需要任何服务端,本地一个proxy即可开心上网。 KCP协议支持,HTTP(S),SOCKS5代理支持KCP协议传输数据,降低延迟,提升浏览体验.集成外部API,HTTP(S),SOCKS5代理认证功能可以与外部HTTP API集成,可以方便的通过外部系统控制代理用户。 反向代理,支持直接把域名解析到proxy监听的ip,然后proxy就会帮你代理访问需要访问的HTTP(S)网站。 透明HTTP(S)代理,配合iptables,在网关直接把出去的80,443方向的流量转发到proxy,就能实现无感知的智能路由器代理。 协议转换,可以把已经存在的HTTP(S)或SOCKS5代理转换为一个端口同时支持HTTP(S)和SOCKS5代理,转换后的SOCKS5代理不支持UDP功能,同时支持强大的级联认证功能。 自定义底层加密传输,http(s)\sps\socks代理在tcp之上可以通过tls标准加密以及kcp协议加密tcp数据,除此之外还支持在tls和kcp之后进行自定义加密,也就是说自定义加密和tls|kcp是可以联合使用的,内部采用AES256加密,使用的时候只需要自己定义一个密码即可。 底层压缩高效传输,http(s)\sps\socks代理在tcp之上可以通过自定义加密和tls标准加密以及kcp协议加密tcp数据,在加密之后还可以对数据进行压缩,也就是说压缩功能和自定义加密和tls|kcp是可以联合使用的。 安全的DNS代理,可以通过本地的proxy提供的DNS代理服务器与上级代理加密通讯实现安全防污染的DNS查询。 Why need these?当由于安全因素或者限制,我们不能顺畅的访问我们在其它地方的服务,我们可以通过多个相连的proxy节点建立起一个安全的隧道,顺畅的访问我们的服务.微信接口本地开发,方便调试.远程访问内网机器.和小伙伴一起玩局域网游戏.以前只能在局域网玩的,现在可以在任何地方玩.替代圣剑内网通,显IP内网通,花生壳之类的工具.
免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。