从 torify 启动的 python 脚本连接到本地主机 mongodb
Connect to localhost mongodb from python script started by torify
当我尝试从我的 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
它有效。
我做错了什么?在另一台机器上也是一样的情况。
我找到了这个案例的解决方案。我必须先创建一个隐藏服务。为此,我必须将此行添加到我的 tor 配置文件 (/etc/tor/torrc):
HiddenServiceDir /tmp/tormongo
HiddenServicePort 27017 127.0.0.1:27017
之后我需要重新启动我的 tor 服务。如果一切正确,该文件夹必须出现在 /tmp
中。在此文件夹中将是新文件 hostname
,其字符串类似于 sgwqrpepus3lwcke.onion
。这是我可以在 mongodb 连接设置中代替 localhost
使用的主机。
或者我可以为此设置添加一个新的 ENV 变量,并使用如下命令在每个脚本启动时设置它:
export DB_HOST=$(cat /tmp/tormongo/hostname) && torify python /var/www/myproject/myscript.py
当我尝试从我的 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
它有效。
我做错了什么?在另一台机器上也是一样的情况。
我找到了这个案例的解决方案。我必须先创建一个隐藏服务。为此,我必须将此行添加到我的 tor 配置文件 (/etc/tor/torrc):
HiddenServiceDir /tmp/tormongo
HiddenServicePort 27017 127.0.0.1:27017
之后我需要重新启动我的 tor 服务。如果一切正确,该文件夹必须出现在 /tmp
中。在此文件夹中将是新文件 hostname
,其字符串类似于 sgwqrpepus3lwcke.onion
。这是我可以在 mongodb 连接设置中代替 localhost
使用的主机。
或者我可以为此设置添加一个新的 ENV 变量,并使用如下命令在每个脚本启动时设置它:
export DB_HOST=$(cat /tmp/tormongo/hostname) && torify python /var/www/myproject/myscript.py