簡體   English   中英

Tor的主干模塊(python)加載但不卸載配置

[英]Tor's stem module (python) loading but not unloading config

因此,在Tor的python模塊Stem中,我可以添加隱藏服務,替換隱藏服務等。但是! 我無法刪除所有隱藏的服務。 我不知道這樣做的魔力...我嘗試將'HiddenServiceDir / HiddenServicePort'和'HiddenServiceOptions'設置為空字符串,空列表和無。 唯一可以做的事情就是將'HiddenServiceOptions'設置為None ...,這只會帶回上一次成功的隱藏服務設置...。這意味着中間的所有內容都只是一個上下鋪設置,而我神奇地從tor控件翻轉了一個重置...

例如,這里我從一個隱藏的服務開始,然后再用一兩個替換它...

>>> controller.is_authenticated()
True

>>> controller.get_conf_map('HiddenServiceOptions')
{'HiddenServiceDir': ['/tmp/hiddenservice1/'],
 'HiddenServicePort': ['1234 127.0.0.1:1234']}

>>> controller.set_options([('HiddenServiceDir','/tmp/hiddenservice2/'),('HiddenServicePort','1235 127.0.0.1:1235'),('HiddenServiceDir','/tmp/hiddenservice3/'),('HiddenServicePort','1236 127.0.0.1:1236')])

>>> controller.get_conf_map('HiddenServiceOptions')
{'HiddenServiceDir': ['/tmp/hiddenservice2/', '/tmp/hiddenservice3/'],
 'HiddenServicePort': ['1235 127.0.0.1:1235', '1236 127.0.0.1:1236']}

>>> controller.set_options([('HiddenServiceDir','/tmp/hiddenservice3/'),('HiddenServicePort','1236 127.0.0.1:1236')])

>>> controller.get_conf_map('HiddenServiceOptions')
{'HiddenServiceDir': ['/tmp/hiddenservice3/'],
 'HiddenServicePort': ['1236 127.0.0.1:1236']}

...而且現在很有趣...我試圖擺脫所有隱藏的服務...

>>> controller.set_options([('HiddenServiceDir',None),('HiddenServicePort',None)])
### *OR*
>>> controller.set_options([('HiddenServiceDir',''),('HiddenServicePort','')])

### .... and the result is....
>>> controller.get_conf_map('HiddenServiceOptions')
{'HiddenServiceOptions': []}
### ... nothing, as expected... but then...

>>> controller.set_options([('HiddenServiceDir','/tmp/hiddenservice3/'),('HiddenServicePort','1236 127.0.0.1:1236')])
>>> controller.get_conf_map('HiddenServiceOptions')
{'HiddenServiceOptions': []}
### ... hidden service not showing again... until...

>>> controller.set_options([('HiddenServiceOptions',None)])
>>> controller.get_conf_map('HiddenServiceOptions')
{'HiddenServiceDir': ['/tmp/hiddenservice3/'],
 'HiddenServicePort': ['1236 127.0.0.1:1236']}
### ... suprise! It's back!

不過,有趣的是...通過以其他方式檢查我的TOR連接,我可以知道我的服務從未被全部刪除。 他們只是停留在我設置的最后一個隱藏服務中...

...這樣我就可以繼續轉動輪子或在源代碼中搜索valhalla ...或者也許某個開明的靈魂可以通知我...我該如何擺脫莖中隱藏的服務?

更新

問題似乎是“ HiddenServiceOptions”如何自我更新的錯誤。

啟用隱藏服務后,當我將HiddenServiceDir和HiddenServicePort都設置為None(或設置為空字符串;兩者都具有完全相同的效果)時,它將顯示在conf_map中,並且我看到發出了conf事件(從控制器上的偵聽器發出)配置{'HiddenServiceOptions':None}(或作為parsed_content,僅是'HiddenServiceOptions',沒有等號或其他符號)。 這是預期的。

...現在,如果我設置了另一個隱藏服務,則會收到一個發送給我的新配置事件,顯示正確的隱藏服務信息。 在這一點上,隱藏的服務工作,但是如果我用“ get_conf_map”詢問它,它仍然不會顯示。

然后我運行reset_conf,它再次顯示正常。

要點:如果您設置了一項新服務,請首先檢查是否沒有。 如果是這樣,請設置隱藏的服務,然后運行reset_conf ...

或者對於僅依賴event_listeners的人,這根本不會影響他們...

謝謝,達米安...

這當然很奇怪。 我希望set_options()的行為與您期望的一樣,但是tor的HiddenServiceOptions當然是非常規的,因此如果這里有bug,我不會感到驚訝。 如果您確定此問題的根本原因,請告訴我們

出於好奇,發出RESETCONF而不是SETCONF可以解決問題嗎? 您可以通過...

>>> controller.reset_conf('HiddenServiceOptions')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM