【问题标题】:Create TCP TUNNELING system using Indy使用 Indy 创建 TCP TUNNELING 系统
【发布时间】:2016-04-18 14:54:27
【问题描述】:

您好,是否可以创建充当 tcp 代理服务器的中间应用程序?它将由两个组件组成。 IdTCPServer 和 IdTCPClient。这个想法是:

Application > 连接到 IdTCPServer > 所有数据都被重定向到 > IdTCPClient 连接到目的地。

并且TCPClient收到的数据会被重定向到IdTCPServer和Application。 我做了这么简单的应用程序,它在 HTTP 请求中工作,但是当我尝试将它用于 RDP 客户端时它失败了(我收到协议错误的错误)。甚至可能吗?我使用 ReadByte 方法,每个字节都被发送到另一个 IOHandler。

我想创建某种允许通过 NAT 连接的虚拟 tcp 通道。

我不够清楚。我想要实现的是这样的:

RDP 服务器 IdTCPclient > NAT > IdTCPServer

【问题讨论】:

    标签: delphi tcp proxy indy


    【解决方案1】:

    Application > 连接到 IdTCPServer > 所有数据都被重定向到 > IdTCPClient 连接到目的地。

    并且TCPClient收到的数据会被重定向到IdTCPServer和Application。

    事实上,Indy 有一个专门用于此目的的组件 - TIdMappedPortTCP

    将其MappedHostMappedPort 属性设置为指向预期目标,然后激活它,所有入站连接将自动定向到目标,并且数据在两个方向来回传递。

    【讨论】:

      【解决方案2】:

      我打算只添加一条评论,但没有足够的积分。 您的请求说您想“重定向”,Remy 提供了答案。

      但是,您的描述听起来像是您想自己传递数据(中间人)。 RDP contains some guards against that,虽然早期版本可能对它更加开放。

      如果实际重定向不是您想要的,您可能需要更严格地指定问题。

      【讨论】:

      • 是的,我不够精确。我编辑了问题。
      猜你喜欢
      • 2018-01-27
      • 1970-01-01
      • 2014-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-23
      • 2021-01-05
      • 2013-01-24
      相关资源
      最近更新 更多