SSH 端口转发

前端之家收集整理的这篇文章主要介绍了SSH 端口转发前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

功能能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。其实这一技术就是我们常常听说的隧道(tunnel)技术,原因是 SSH 为其他 TCP 链接提供了一个安全的通道来进行传输。禁止访问某些网站、禁用某类软件,同时你的所有网络行为都被监控并分析!同样的通过 SSH 隧道技术我们完全可以规避这些限制。

方法。

邮件客户端才能与 smtp 服务器建立连接。此时另外一台主机 A 上的邮件客户端如果想要通过主机 B 上的 smtp 服务器收发邮件该怎么设置呢?通过 SSH 的本地端口转发功能可以轻松的搞定这样的场景!

$ -L :localhost: HostB

邮件客户端程序,让它把消息发送到 localhost:10025。完成之后主机 A 上的邮件客户端就可以通过主机 B 上的 smtp 服务器收发邮件了。具体的数据包的流向为:

邮件客户端把数据包发送到 localhost(主机 A) 的 10025 端口 2 SSH 客户端把数据包加密并从主机 A 发送到主机 B 的 SSH 服务器 3 SSH 服务器把数据包解密并发送到 localhost(主机 B) 的 25 端口

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

$ -g -L P:HostS:W HostB

-L ::

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

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

-R ::

不支持 -g 参数,这让我们很难实现类似下面的用例:

代码管理服务可以通过 Webhook 的方式访问主机 B 从而触发 Jenkins 服务器中的 Build。

$ -R :localhost: HostB

修改 SSH 服务器的配置来实现这个功能!在 SSH 服务器的配置文件 /etc/ssh/sshd_config 中添加一行:

GatewayPorts yes

调用了。

站点,哈哈)。这类应用的特点是目标服务器的 IP 和端口是未知的并且总是在变化,创建端口转发时不可能知道这些信息。只有在发送 HTTP 请求时才能确定目标服务器的 IP 和端口。在这种场景下静态端口转发的方式是搞不定的,因而需要一种专门的端口转发方式支持即 "动态端口转发"。SSH 动态端口转发是通过 Socks 协议实现的,创建动态端口转发时 SSH 服务器就类似一个 Socks 代理服务器,所以这种转发方式也叫 Socks 转发。

$ -D

$ -D nick@xxx.xxx.xxx.xxx

站点建立连接进行通信。

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

原文链接:https://www.f2er.com/ssh/71481.html

猜你在找的SSH相关文章