当我尝试从我的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
就可以了。
我做错了什么?同样的情况是在另一台机器上。
答案 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