SSH   发布时间:2019-10-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了SSH 端口转发大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

相应的加密及解密服务。其实这一技术就是我们常常听说的隧道(tunnel)技术,原因是 SSH 为其他 TCP 链接提供了一个安全的通道来进行传输。@H_450_1@450_1@616@经常被各种防火墙限制。常见的有禁止访问某些网站、禁用某类软件,同时你的所有网络行为都被监控并分析!同样的通过 SSH 隧道技术我们完全可以规避这些限制。@H_450_1@

title="SSH 端口转发" alt="SSH 端口转发" src="https://cn.js-code.com/res/2019/02-09/10/9fbab994647af0ada00cc73755e5327e.png" >@H_450_1@

如上图所示,通过 SSH 的端口转发, 应用程序的客户端和应用程序的服务器端不再直接通讯,而是转发到了 SSH 客户端及 SSH 服务端来通讯。这样就可以同时实现两个目的:数据的加密传输和穿透防火墙!@H_450_1@450_1@

450_1@

450_1@450_1@

$ 450_1@ -L 450_1@:localhost:450_1@ HostB

450_1@

title="SSH 端口转发" alt="SSH 端口转发" src="https://cn.js-code.com/res/2019/02-09/10/a2544121bff40b14c73e78c7ce9a9746.png" >@H_450_1@

:10025(你可以用 1024 - 65535 之间的任意端口代替 10025,只要不与已有端口冲突就行)。所有在主机 A 上发往 10025 端口的消息都会通过 SSH 隧道转发到主机 B 上的 25 端口。接下来需要配置主机 A 上的邮件客户端程序,让它把消息发送到 localhost:10025。完成之后主机 A 上的邮件客户端就可以通过主机 B 上的 smtp 服务器收发邮件了。具体的数据包的流向为:@H_450_1@

450_1@

450_1@

450_1@如果应用程序的客户端和 SSH 的客户端位于 SSH 隧道的同一侧,而应用程序的服务器和 SSH 服务器位于 SSH 隧道的另一侧,那么这种端口转发类型就是本地端口转发。需要使用 -L 选项来创建。@H_450_1@

是这样的:@H_450_1@

title="SSH 端口转发" alt="SSH 端口转发" src="https://cn.js-code.com/res/2019/02-09/10/3b1ea0cca869030a9183172135c27af6.png" >@H_450_1@

450_1@

$ 450_1@ -g -L P:HostS:W HostB

450_1@450_1@

450_1@ -L ::

450_1@

另外两个选项,它们是 f 和 N。上面的命令在创建隧道的同时登录到远程主机,一般情况下我们不需要这个登录。况且一旦这个登录退出,隧道也会随之关闭。我们更期望的是能够创建在后台运行的隧道,这时就需要添加 f 和 N 选项。@H_450_1@

450_1@

如果应用程序的客户端和 SSH 的服务器位于 SSH 隧道的同一侧,而应用程序的服务器和 SSH 的客户端位于 SSH 隧道的另一侧,那么这种端口转发类型就是远程端口转发。远程端口转发的结构如下图所示(此图来自互联网):@H_450_1@

title="SSH 端口转发" alt="SSH 端口转发" src="https://cn.js-code.com/res/2019/02-09/10/8bc4b344fb68c9b7f9a769a0655c215d.png" >@H_450_1@

450_1@

450_1@ -R ::

例:@H_450_1@

jenkins 服务器监听本机 8080 端口,并运行 SSH 客户端。 外网中的主机 B 上运行 SSH 服务器。 希望可以通过远程端口转发的方式在主机 A 和 B 之间建立隧道,然后外网的 Bitbucket 等代码管理服务可以通过 Webhook 的方式访问主机 B 从而触发 jenkins 服务器中的 Build。@H_450_1@

450_1@

$ 450_1@ -R 450_1@:localhost:450_1@ HostB

450_1@

title="SSH 端口转发" alt="SSH 端口转发" src="https://cn.js-code.com/res/2019/02-09/10/1fa35e1e3bf5d6d27a0cb8fcd1d8cb20.png" >@H_450_1@

450_1@

GatewayPorts yes

然后重新建立隧道:@H_450_1@

title="SSH 端口转发" alt="SSH 端口转发" src="https://cn.js-code.com/res/2019/02-09/10/e64730aa9fc296c1704a4a67047a1dcf.png" >@H_450_1@

450_1@

450_1@

http 请求时才能确定目标服务器的 IP 和端口。在这种场景下静态端口转发的方式是搞不定的,因而需要一种专门的端口转发方式支持即 "动态端口转发"。SSH 动态端口转发是通过 Socks 协议实现的,创建动态端口转发时 SSH 服务器就类似一个 Socks 代理服务器,所以这种转发方式也叫 Socks 转发。@H_450_1@450_1@

$ 450_1@ -D

450_1@

$ 450_1@ -D 450_1@ nick@xxx.xxx.xxx.xxx

450_1@:11080。然后浏览器中的请求会被转发到 SSH 服务器端,并从SSH 服务器端与目标站点建立连接进行通信。@H_450_1@

450_1@

项目中繁杂的网络问题,还能够给我们的生活添加乐趣!@H_450_1@

大佬总结

以上是大佬教程为你收集整理的SSH 端口转发全部内容,希望文章能够帮你解决SSH 端口转发所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: