2016-12-13 20 views
0

Когда я пытаюсь подключиться к MongoDB из моего питона сценария я вижу это предупреждение много раз, и, наконец, ошибки:Connect на локальный MongoDB из питона сценария начатого Torify

[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

Я нашел решение для этого случая. Сначала я должен создать Скрытую службу. Для этого мне нужно добавить эти строки в мой файл конфигурации тор (/ и т.д./тор/torrc):

HiddenServiceDir /tmp/tormongo 
HiddenServicePort 27017 127.0.0.1:27017 

После этого мне нужно перезагрузить службу TOR. Если все было сделано правильно, папка должна появиться в /tmp. В этой папке будет новый файл hostname со строкой вроде sgwqrpepus3lwcke.onion. Это хост, который я могу использовать вместо localhost в настройках соединения mongodb.

Или я могу добавить новую переменную ENV для этого параметра и установить его каждый запуск скрипта с помощью команды так:

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