登录
首页 >  Golang >  Go问答

在 Docker Compose 中连接到运行的 Tor ControlPort 的 TorGo

来源:stackoverflow

时间:2024-02-12 11:33:24 213浏览 收藏

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天golang学习网就整理分享《在 Docker Compose 中连接到运行的 Tor ControlPort 的 TorGo》,文章讲解的知识点主要包括,如果你对Golang方面的知识点感兴趣,就不要错过golang学习网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

问题内容

我有一个运行 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)
}

正确答案


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

torrc默认

controlport 9051

torrc已更新

ControlPort 0.0.0.0:9051

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

这篇文章让我得到了这个答案: https://stackoverflow.com/a/58138489/5750392

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《在 Docker Compose 中连接到运行的 Tor ControlPort 的 TorGo》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>