如何编写 http 隧道
Posted
技术标签:
【中文标题】如何编写 http 隧道【英文标题】:How to program an http tunnel 【发布时间】:2013-02-10 13:09:18 【问题描述】:我基本上想捕获选定端口中的所有数据包并通过 HTTP 传输它们。 最好的方法是什么? 我应该为此使用像 SharpPcap 这样的数据包捕获程序吗?
编辑:我想允许 2 台运行安全网络的计算机相互连接。 为此,我需要编写一个客户端程序和一个服务器程序。 所以client1会通过HTTP将数据包发送给服务器,服务器会通过HTTP将数据包发送给client2。
【问题讨论】:
【参考方案1】:你的问题有点含糊,通过HTTP传输它们是什么意思?将它们转移到哪里,然后做什么?
以 Tor 为例。 Tor 会在本地设置一个 SOCKS 和 HTTP 代理供你使用。只要客户端支持其中一种协议,您就可以连接到代理。然后,本地代理将通过 Tor 网络将请求路由到一个出口节点,然后该节点将连接到更广阔的世界。
在您的情况下,您需要类似的东西。本地的 SOCKS 或 HTTP 代理,然后将 HTTP 请求发送到某个出口点,然后该出口点将真正执行相关请求。
您在任何时候都不需要进行数据包捕获,因为这只会使事情变得过于复杂,并且在另一个层面上起作用。
【讨论】:
基本原理还是一样,CodeProject有很多不同的例子,以这个为例-codeproject.com/Articles/71871/… 但是在客户端怎么抓包呢?只使用 TcpListener?你不需要别的吗? 您不需要捕获数据包。如果您的客户端(网络浏览器或其他)支持 SOCKS,您可以将其配置为通过它进行路由。进行数据包级隧道传输是另一回事,我认为目前超出了您的技能范围。首先让 SOCKS/HTTP 代理工作。 如果它不支持 SOCKS?那就是说我需要抓包? 如果它本身不支持代理,那么是的,但你是在自找麻烦。【参考方案2】:我刚刚搜索了“http 隧道示例”并找到了以下链接。也许他们会帮助你。
Link 1
Link 2
【讨论】:
以上是关于如何编写 http 隧道的主要内容,如果未能解决你的问题,请参考以下文章