C# 动态端口转发libc

C# 动态端口转发libc,c#,c++,c,ssh,proxy,C#,C++,C,Ssh,Proxy,我正在寻找一种解决方案/方法来实现ssh中内置的动态端口转发功能(也称为-D选项)。我已经读了最后一天了,我似乎找不到一个可靠的图书馆来帮助我 我发现ssh.net是一个C#库,但是它的动态端口转发被破坏了,以至于它的代理处理程序不转发破坏了几乎所有东西的dns请求。我已经将代码修补到半工作状态,但它不稳定,而且速度非常慢 我现在正在研究libssh,它有端口转发选项,尽管它没有生成socks服务器以供使用的动态选项。我想我必须自己做这件事 如果是这样的话,我是否必须在客户机和服务器上都运行so

我正在寻找一种解决方案/方法来实现ssh中内置的动态端口转发功能(也称为-D选项)。我已经读了最后一天了,我似乎找不到一个可靠的图书馆来帮助我

我发现ssh.net是一个C#库,但是它的动态端口转发被破坏了,以至于它的代理处理程序不转发破坏了几乎所有东西的dns请求。我已经将代码修补到半工作状态,但它不稳定,而且速度非常慢

我现在正在研究libssh,它有端口转发选项,尽管它没有生成socks服务器以供使用的动态选项。我想我必须自己做这件事

如果是这样的话,我是否必须在客户机和服务器上都运行socks服务器,然后只使用普通的tcpip转发隧道,或者其他什么。我将如何尝试实现这一点

总的来说,我想找到一种方法来实现与ssh上的-D选项相同的效果,或者putty在创建隧道时所做的事情。任何关于此的链接或一般信息,甚至代码/库示例都将不胜感激

其他注意事项:这是针对windows的,因此需要跨平台或仅限windows的库。此外,我似乎也不知道如何使用mingw或cygwin编译libssh2,从而使库不可用

谢谢你抽出时间

我现在正在研究libssh,它有端口转发选项,尽管它没有 有一个动态选项,可以生成要使用的socks服务器。我想我必须自己做这件事


libssh为您提供了使用SSH协议实现动态转发的所有功能。

您是否愿意解释我应该使用/查看的一般设置和转发功能。socks服务器是产生服务器端、客户端还是两者都产生?我是否只使用普通的TCP转发?你能详细介绍一下这一点来帮助澄清你的答案吗?谢谢。根据我在网上找到的这张图片,socks服务器只是客户端,所以使用libssh,如何告诉服务器它想要创建一个动态隧道。我在连接时是否传递了一个标志来告诉它使用socks协议来知道连接到哪里?您必须实现socks服务器。libssh只实现SSH协议。您能详细说明一下@asn吗?有没有我们可以使用的示例代码?嗨@randy。你成功了吗?我正在努力实现同样的目标