Обновление: у меня это работает сейчас. Ответ Джима Зайковски помог мне обнаружить, что мои вызовы перезагрузки /etc/init.d/couchdb фактически не перезагружали экземпляр. После того, как я вручную убил процессы CouchDB и запустил новый экземпляр, он выбрал необходимое изменение BindAddress.
Я установил CouchDB через
aptitude установить couchdb
С моего сервера я могу подключиться через
telnet localhost 5984
и выполнить команды RESTful. Когда я пытаюсь получить доступ к серверу с другого компьютера в нашей сети или с компьютера, находящегося за пределами нашей сети, я получаю сообщение об ошибке сброса соединения . Я настроил переадресацию портов на маршрутизаторе, и в противном случае сервер доступен через Apache, Tomcat, SSH и т. Д.
Я новичок в Linux / Ubuntu, поэтому я не был уверен, был ли брандмауэр по умолчанию, блокирующий соединение, поэтому я запустил:
iptables -A INPUT -p tcp --dport 5984 -j ПРИНЯТЬ
но это не помогло
Вот дамп от запуска iptables -L -n -v
Chain INPUT (policy ACCEPT 2121K packets, 1319M bytes)
pkts bytes target prot opt in out source destination
70 3864 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:5984
9 1647 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 1708K packets, 1136M bytes)
pkts bytes target prot opt in out source destination
Я предполагаю, что байты, показанные как переданные для 5984, происходят из-за моего локального соединения.
Вот дамп из запущенного netstat -an | grep 5984
tcp 0 0 127.0.0.1:5984 0.0.0.0:* LISTEN
Я настроил файл couch.ini на «BindAddress = 0.0.0.0» и перезагрузил его, поэтому должен прослушивать все интерфейсы. Когда я запускаю «sudo /etc/init.d/couchdb stop», а затем запускаю netstat, я все равно вижу приведенную выше запись. Похоже, что CouchDB на самом деле не останавливается вообще. Это может объяснить мою проблему, потому что это может означать, что CouchDB фактически никогда не перезагружался и никогда не получал изменение BindAddress.
Я вручную убил процесс CouchDB и снова запустил его. Теперь netstat показывает:
tcp 0 0 127.0.0.1:5984 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:5984 127.0.0.1:35366 TIME_WAIT
Я все еще не могу подключиться, даже с другой машины в локальной сети.
источник
Ответы:
Что
netstat -an | grep 5984
говорит? Это говорит127.0.0.1:5984
или*:5984
? Если это так127.0.0.1
, то couchdb должен быть настроен на прослушивание всех интерфейсов.источник
127.0.0.1:5984/_utils/config.html
(или эквивалентному URL-адресу для вашей настройки) и дважды щелкните значение параметра, измените его и нажмите зеленую галочку.Вы должны изменить адрес привязки в /etc/couchdb/default.ini. Затем перезапустите службу и попробуйте снова.
источник
Я заметил, что для того, чтобы это работало, нужно по какой-то причине вручную убить запущенный процесс erlang
ps ax | grep beam
Должен показать процесс erlang, вы должны получить что-то вроде чего-0:00 /usr/lib/erlang/erts
то на выходе. Если вы убьете этот процесс, а затем запустите/etc/init.d/couchdb restart
новый файл конфигурации будет загружен.источник
На домашнем ПК / Mac запустите эту команду:
следующий откройте в вашем браузере localhost: 5984 / _utils ... у меня работает
источник
Документация по конфигурации :
Если вы измените его с панели конфигурации Futon, вам больше ничего не нужно делать (перезагрузка БД и т. Д.):
Перед изменением bind_address по умолчанию:
После изменения на 0.0.0.0:
Обратите внимание, что не гуру: компьютеры, которые не могут получить доступ к вашему (обычно к чему-либо за пределами вашей локальной сети), все равно не смогут получить доступ к вашему компьютеру (CouchDB или что-либо еще).
источник
Я столкнулся с этим, и моя проблема закончилась тем, что, по-видимому, в моей установке Ubuntu уже был установлен couchdb. Я редактировал файлы конфигурации в / etc / couchdb, но тот, который был запущен, фактически вытягивал конфигурацию из / usr / local / etc / couchdb.
Подсказка заключалась в том, что в конфигах в / etc / couchdb упоминается couch 0.10, но я только что установил 1.0.1.
источник
iptables -L -n -v
покажет вам ваши текущие правила брандмауэра. Посмотрите, есть ли один, который отбрасывает эти пакеты, прежде чем он доберется до вашего правила.источник
lsof -i -n -P | grep LISTEN
и публикации этого? Вы ищете процесс CouchDB и с чем он связан. Если это так127.0.0.1:5984
, вам нужно настроить CouchDB для прослушивания внешних подключений. Если это*:5984
, ну, по крайней мере, CouchDB настроен правильно :)lsof
вывода?