【问题标题】:Is it possible to have a TcpListener behind the Tor network?Tor网络后面是否有可能有一个TcpListener?
【发布时间】:2018-09-03 03:07:48
【问题描述】:

我正在开发一个 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 连接到我的服务器。我的错。

【问题讨论】:

    标签: .net vb.net routing tor tcplistener


    【解决方案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 端口重定向器; google“TCP端口转发应用”。

    【讨论】:

    • 这很有趣。这可能是我正在寻找的东西,但文档说客户端也必须在 Tor 网络中。问题是我不希望他们拥有 Tor 只是为了使用我的应用程序。我的错,我没有这么说,我要编辑这个问题。那么,这个项目还有可能吗?
    • 我不明白。所以你想让你的 TcpListener 监听 Tor 网络隐藏服务,但非 Tor 用户可以访问?或者你只想监听一个 IP,让你的 TcpListener 在没有 Tor 的情况下监听 localhost?
    • 我想隐藏服务器的真实 IP 使其加入 Tor 网络。稍后,客户端将能够使用新 IP 进行连接,而无需使用 Tor。我猜这就是您在编辑的第一点中描述的情况。
    猜你喜欢
    • 2012-11-10
    • 1970-01-01
    • 2023-02-26
    • 1970-01-01
    • 2011-03-14
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多