ssh 动态端口转发

ssh dynamic port forwarding

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

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

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

ssh -D 10000 user@host

有人能帮帮我吗?

JSCH is a Java implementation of the SSH protocol. It's not a complete reimplementation of the OpenSSH ssh 命令行实用程序。对于动态代理功能,JSCH 提供了通过 SSH 会话隧道传输 TCP 连接的能力,但它不提供客户端接收要转发的连接所需的 SOCKS 代理服务器。

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

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