SSH动态端口转发 - 图1
    相对于动态端口转发,前面介绍的端口转发类型都叫静态端口转发。参考之前的文章:Linux SSH端口转发实践

    所谓的 “静态” 是指应用程序服务器端的 IP 地址和监听的端口是固定的。试想另外一类应用场景:设置浏览器通过端口转发访问不同网络中的网站。这类应用的特点是目标服务器的 IP 和端口是未知的并且总是在变化,创建端口转发时不可能知道这些信息。只有在发送 HTTP 请求时才能确定目标服务器的 IP 和端口。在这种场景下静态端口转发的方式是搞不定的,因而需要一种专门的端口转发方式支持即 “动态端口转发”。SSH 动态端口转发是通过 Socks 协议实现的,创建动态端口转发时 SSH 服务器就类似一个 Socks 代理服务器,所以这种转发方式也叫 Socks 转发。
    动态端口转发的命令格式为:
    ssh -D
    SSH动态端口转发 - 图2
    实例演示:
    ssh -N -f -D 31080@45.32.1.19
    SSH动态端口转发 - 图3
    注意,命令中不需要指定目标服务器和端口号。执行上面的命令后 SSH 客户端就开始监听本机 localhost 的31080 端口。你可以把本机上浏览器网络配置中的 Socks 服务器指定为 localhost:31080。然后浏览器中的请求会被转发到 SSH 服务器端,并从SSH 服务器端与目标站点建立连接进行通信。
    SSH动态端口转发 - 图4
    如上图所示,在Firefox浏览器中手动代理配置中设置Socks主机为127.0.0.1,端口为31080,接下来访问SSH服务器侧的Web站点
    image.png
    image.png


    SecureCRT动态端口转发
    当然SecureCRT也可以同样实现动态端口转发

    image.png
    SSH动态端口转发 - 图8
    SecureCRT中设置好Socket动态端口转发后在Firefox中配置代理
    SSH动态端口转发 - 图9
    接下来访问远程SSH服务器侧的站点
    SSH动态端口转发 - 图10
    总结:SSH 端口转发是一项非常实用的技术,灵活的使用它可以解决工程项目中繁杂的网络问题