我想使用 ssh 动态端口转发在我的安卓代码中。
我用了库jcraft,可惜这个库不支持动态端口转发并且只支持本地端口转发和 远程端口转发 .
换句话说,我想在我的 android 代码中像这样 ssh:
ssh -D 10000 user@host
有谁能够帮助我?
请您参考如下方法:
JSCH是 SSH protocol 的 Java 实现。 .这不是 OpenSSH 的完全重新实现ssh命令行实用程序。在动态代理功能的情况下,JSCH 提供了通过 SSH session 隧道 TCP 连接的能力,但它不提供客户端接收要转发的连接所需的 SOCKS 代理服务器。
要完成这项工作,您将嵌入 SOCKS proxy进入您的应用程序。当客户端连接到应用程序的 SOCKS 端口(在您的示例中相当于端口 10000)时,它将使用 SOCKS 协议(protocol)告诉您的应用程序要连接到哪个主机和端口。
然后你的应用程序——可能已经使用 JSCH 来创建到某个远程服务器的 SSH session ——将使用 JSCH 打开一个 "direct-tcpip" channel到客户端请求的主机和端口。然后,您的应用程序将在 direct-tcpip channel 和请求代理的客户端之间中继数据。




