【发布时间】:2020-01-01 21:03:02
【问题描述】:
我想在我的 iOS(objective c) 应用程序中实现动态端口转发。
我已经使用 libssh2 库完成了本地和远程端口转发。我认为这个库只提供本地和远程端口转发功能。
谁能建议如何使用此库或任何其他提供此功能的库进行动态端口转发?
感谢您的帮助。
【问题讨论】:
标签: ssh ios objective-c
我想在我的 iOS(objective c) 应用程序中实现动态端口转发。
我已经使用 libssh2 库完成了本地和远程端口转发。我认为这个库只提供本地和远程端口转发功能。
谁能建议如何使用此库或任何其他提供此功能的库进行动态端口转发?
感谢您的帮助。
【问题讨论】:
标签: ssh ios objective-c
在 SSH 级别,它们是相同的。 “本地”和“动态”转发之间在协议方面没有区别 - 它们都会导致为每个新连接打开一个 direct-tcpip 通道(在 libssh2 中使用 ssh_channel_open_forward( ) 函数)。
在这两种情况下,客户端应用程序都会侦听 TCP 端口,并且每当收到连接时,它都会通过 SSH 创建一个“direct-tcpip”通道并来回复制数据。
唯一的区别是面向用户的行为,这完全在 SSH 应用程序本身中实现:
因此,如果您只需要在内部打开“转发”连接(出于应用程序自身的目的),那么只需使用 ssh_channel_open_forward() 即可直接从该通道读取/写入。
如果您想像“ssh -D”那样接受 SOCKS5 客户端,那么您的应用需要处理整个“SOCKS5 服务器”部分。这不是 SSH 库知道或关心的事情。
【讨论】: