是否有可能在Tor网络后面有一个TcpListener?

时间:2018-03-24 15:39:32

标签: .net vb.net routing tor tcplistener

我正在开发一个VB.NET服务器应用程序,它允许客户端连接,与服务器交换一些数据,处理它们,最后给它们一个结果。为了达到这个目的,我使用了经典的TcpListener,如:

Dim server As TcpListener = New TcpListener(PORT)
server.Start()

等待挂起的TcpClient传入连接:

Do
    If server.Pending() Then
          'accept TcpClient connections
          'get its Stream
          'read from it
          'do stuff
          'write response
    End If
Loop

这仅适用于服务器的公共IP。但是,如果我想将这项服务隐藏在另一项服务之后呢?我正在考虑使用Tor网络,但根据我迄今为止所学到的知识,我可以仅使用一些Web请求使其工作,但这不是我想要的。我不想使用HTTP协议,而是我自己开发的协议。

那么,有没有办法使用Tor来路由与Web请求不同的流量?

修改 我没有写过我不希望客户使用Tor连接到我的服务器。我的错。

1 个答案:

答案 0 :(得分:1)

是的,这两件事都是可能的。

首先,您可以将Tor用于除HTTP之外的其他协议 - Tor用于HTTPS,聊天,IRC甚至种子(虽然不推荐使用后者)。它可以隧道传输任何TCP协议,因为它不会查看有效负载。

其次,您可以收听和接收Tor IP地址的请求,这称为“隐藏服务”。它的工作方式,您在Tor配置文件中设置隐藏的服务配置。它可能看起来像:

HiddenServiceDir /var/lib/tor/other_hidden_service/
HiddenServicePort 80 127.0.0.1:4567

HiddenServicePort指令在此处指定Tor隐藏服务将在端口80上“侦听”,并将任何成功连接重定向到127.0.0.1:4567 - 因此您可以在localhost,端口4567或任何其他端口上运行TcpListener,并且接收Tor通信。

编辑: Tor隐藏服务只能为Tor客户端提供服务。因此,您可以执行以下操作之一:

  • 为您的服务设置“Tor转发器”,它将在公共IP上接收连接,并将其重定向到Tor隐藏服务。当然,这必须运行Tor,但您的用户不必这样做。

  • 不使用Tor并设置一些透明的TCP端口重定向器;谷歌“TCP端口转发应用程序”。