ssh动态端口转发

时间:2018-05-14 14:49:34

标签: android ssh portforwarding ssh-tunnel

我想在我的Android代码中使用ssh 动态端口转发

我使用了库 jcraft ,但遗憾的是这个库不支持动态端口转发,只支持 本地端口转发 远程端口转发

换句话说,我想在我的android代码中像这样ssh:

ssh -D 10000 user@host

有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

JSCHSSH protocol的Java实现。它不是OpenSSH ssh命令行实用程序的完整重新实现。在动态代理功能的情况下,JSCH提供通过SSH会话隧道TCP连接的能力,但它不提供客户端接收要转发的连接所需的SOCKS代理服务器。

为了完成这项工作,您需要在应用程序中嵌入SOCKS proxy。当客户端连接到应用程序的SOCKS端口(相当于示例中的端口10000)时,它将使用SOCKS协议告诉应用程序它想要连接到哪个主机和端口。

然后,您的应用程序 - 可能使用JSCH创建到某个远程服务器的SSH会话 - 将使用JSCH打开"direct-tcpip" channel到客户端请求的主机和端口。然后,您的应用程序将在direct-tcpip通道和请求代理的客户端之间中继数据。