ssh动态端口转发
Posted
技术标签:
【中文标题】ssh动态端口转发【英文标题】:ssh dynamic port forwarding 【发布时间】:2018-10-24 06:51:26 【问题描述】:我想在我的 android 代码中使用 ssh 动态端口转发。
我使用了库jcraft,但不幸的是这个库不支持动态端口转发,只支持本地端口转发 和 远程端口转发。
换句话说,我想在我的 android 代码中像这样 ssh:
ssh -D 10000 user@host
谁能帮帮我?
【问题讨论】:
【参考方案1】:JSCH 是SSH protocol 的Java 实现。这不是对OpenSSHssh
命令行实用程序的完全重新实现。在动态代理功能的情况下,JSCH 提供了通过 SSH 会话隧道 TCP 连接的能力,但它不提供客户端接收要转发的连接所需的 SOCKS 代理服务器。
要完成这项工作,您需要将SOCKS proxy 嵌入到您的应用程序中。当客户端连接到应用程序的 SOCKS 端口(在您的示例中相当于端口 10000)时,它将使用 SOCKS 协议告诉您的应用程序要连接到哪个主机和端口。
然后您的应用程序(可能使用 JSCH 来创建与某个远程服务器的 SSH 会话)将使用 JSCH 向客户端请求的主机和端口打开 "direct-tcpip" channel。然后,您的应用程序将在 direct-tcpip 通道和请求代理的客户端之间中继数据。
【讨论】:
以上是关于ssh动态端口转发的主要内容,如果未能解决你的问题,请参考以下文章