【问题标题】:TorGo Connect to Tor ControlPort Running In Docker ComposeTorGo 连接到在 Docker Compose 中运行的 Tor ControlPort
【发布时间】:2021-11-29 08:13:59
【问题描述】:

我有一个运行 tor 节点的 docker-compose 文件,还有一个简单的 Go 脚本,它尝试使用 torgo 连接到所述 tor 节点。

我运行 docker-compose,然后运行一个简单的 curl 命令来检查 SOCKS5 代理是否正常工作,一切都很好:

$ curl --socks5 127.0.0.1:9050 https://check.torproject.org/api/ip
{"IsTor":true,"IP":"185.83.214.69"}

但如果我运行 Go 脚本尝试连接端口 9051 以获取控制器实例,则每次尝试都会失败并出现错误 EOF

我也尝试过通过telnet 连接并在那里收到错误:

$ telnet 127.0.0.1 9051
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.

此时我已经尝试了许多不同的东西,现在想不起来的东西太多了,但包括不同的 docker 图像、安装我自己的 torrc 配置并启用身份验证和各种其他参数等。没有任何效果...

我错过了什么?如何连接到ControlPort

docker-compose

version: "3.8"

services:
  torproxy:
    restart: always
    image: dperson/torproxy:latest
    ports:
      - "9050:9050" # Tor proxy
      - "9051:9051" # Tor control port
      - "8118:8118" # Privoxy

ma​​in.go

package main

import (
    "github.com/wybiral/torgo"
    "log"
)

func main() {
    addr := "127.0.0.1:9051"
    c, err := torgo.NewController(addr)
    if err != nil {
        log.Fatalf("failed to create tor controller: %s", err)
    }
    log.Println(c)
}

【问题讨论】:

标签: docker go docker-compose tor


【解决方案1】:

我终于能够通过将 ControlPort 绑定到 torrc 中的0.0.0.0:9051 而不是默认值来连接到 Docker tor 实例。

torrc 默认

ControlPort 9051

torrc 更新

ControlPort 0.0.0.0:9051

这使得控制端口可以从容器外部访问。

这篇 SO 帖子让我得到了这个答案: https://stackoverflow.com/a/58138489/5750392

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-28
    • 2021-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-04
    • 2022-01-01
    相关资源
    最近更新 更多