从torify启动的python脚本连接到localhost mongodb

时间:2016-12-13 10:09:29

标签: python mongodb dns tor

当我尝试从我的python脚本连接到mongodb时,我多次看到此警告并最终出现错误:

[Dec 13 11:58:56] WARNING torsocks[8133]: [connect] Connection to a local address are denied since it might be a TCP DNS query to a local DNS server. Rejecting it for safety reasons. (in tsocks_connect() at connect.c:177)

pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [Errno 1] Operation not permitted

我使用torify命令启动命令 - torify python myscript.py。没有torify就可以了。

我做错了什么?同样的情况是在另一台机器上。

1 个答案:

答案 0 :(得分:0)

我找到了这种情况的解决方案。我必须先创建一个隐藏服务。要做到这一点,我必须将这些行添加到我的tor配置文件(/ etc / tor / torrc):

HiddenServiceDir /tmp/tormongo
HiddenServicePort 27017 127.0.0.1:27017

之后我需要重启我的服务。如果一切都正确完成,文件夹必须出现在/tmp中。在此文件夹中将是新文件hostname,其字符串为sgwqrpepus3lwcke.onion。在mongodb连接设置中,这是我可以使用的主机,而不是localhost

或者我可以为此设置添加一个新的ENV变量,并使用以下命令设置每个脚本的开始:

export DB_HOST=$(cat /tmp/tormongo/hostname) && torify python /var/www/myproject/myscript.py