【问题标题】:TOR Stem not finding the cookie control authentication fileTOR Stem 找不到 cookie 控制身份验证文件
【发布时间】:2021-02-09 23:04:31
【问题描述】:

我使用的是 Windows 10。我正在运行 Tor Win32 服务。

这是我来自 C:...\Tor Browser\Browser\TorBrowser\Data\Tor\torrc 的 torrc 文件

ControlPort 9051
CookieAuthentication 1
CacheDirectoryGroupReadable 1

这是我的 python 3.9 代码:

from stem import Signal
from stem.control import Controller

with Controller.from_port(port = 9051) as controller:
  controller.authenticate()
  controller.signal(Signal.NEWNYM)

运行脚本会生成此堆栈跟踪:

Traceback (most recent call last):
  File "<input>", line 2, in <module>
  File "C:\Users\Shaun\PycharmProjects\scm-hunter-analysis\venv\lib\site-packages\stem\control.py", line 1112, in authenticate
    stem.connection.authenticate(self, *args, **kwargs)
  File "C:\Users\Shaun\PycharmProjects\scm-hunter-analysis\venv\lib\site-packages\stem\connection.py", line 629, in authenticate
    raise auth_exc
  File "C:\Users\Shaun\PycharmProjects\scm-hunter-analysis\venv\lib\site-packages\stem\connection.py", line 591, in authenticate
    authenticate_safecookie(controller, cookie_path, False)
  File "C:\Users\Shaun\PycharmProjects\scm-hunter-analysis\venv\lib\site-packages\stem\connection.py", line 904, in authenticate_safecookie
    cookie_data = _read_cookie(cookie_path, True)
  File "C:\Users\Shaun\PycharmProjects\scm-hunter-analysis\venv\lib\site-packages\stem\connection.py", line 1085, in _read_cookie
    raise UnreadableCookieFile(exc_msg, cookie_path, is_safecookie)
stem.connection.UnreadableCookieFile: Authentication failed: '/run/tor/control.authcookie' doesn't exist

为什么我不能使用 stem 进行身份验证?错误信息让我很困惑,因为我不知道运行目录在哪里。

我尝试设置CookieAuthentication 0,重新启动服务,然后重新设置CookieAuthentication 1 并重新启动。它会产生同样的错误。

【问题讨论】:

    标签: python tor stem


    【解决方案1】:

    这对我有用,首先生成一个密码(例如 welcome)和哈希:

    $ tor --hash-password welcome
    Feb 14 11:31:48.321 [warn] Tor was compiled with zstd 1.4.5, but is running with zstd 1.4.4. For safety, we'll avoid using advanced zstd functionality.
    16:05B7B9E8F3D0AB3160E030928F9517EDA5348ECD1CDCE2D95F0D230016
    

    然后转到/etc/tor/torrc,取消注释HashedControlPassword设置并复制上一步生成的hash:

    HashedControlPassword 16:05B7B9E8F3D0AB3160E030928F9517EDA5348ECD1CDCE2D95F0D230016
    

    然后重启服务:

    $ sudo service tor restart
    

    最后一步,在控制器身份验证方法中传递您的新密码欢迎

    from stem import Signal
    from stem.control import Controller
    
    with Controller.from_port(port = 9051) as controller:
        controller.authenticate("welcome")
        controller.signal(Signal.NEWNYM)
    

    然后确保它有效:

    import requests
    
    proxies = {'http':  'socks5://127.0.0.1:9050',
               'https': 'socks5://127.0.0.1:9050'}
    
    print("first IP:", requests.get('https://ident.me', proxies=proxies).text)
    
    with Controller.from_port(port = 9051) as controller:
        controller.authenticate("welcome")
        controller.signal(Signal.NEWNYM)
        
    print("second IP:", requests.get('https://ident.me', proxies=proxies).text)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-11
      相关资源
      最近更新 更多