pdate:動作しました。 Jim Zajkowskiの回答は、私の/ etc/init.d/couchdb再起動呼び出しが実際にインスタンスを再起動していないことを検出するのに役立ちました。 CouchDBプロセスを手動で強制終了し、新しいインスタンスを開始した後、必要なBindAddressの変更を取得しました。
経由でCouchDBをインストールしました
aptitudeインストールcouchdb
私のサーバーから、私は経由で接続できます
telnet localhost 5984
rESTfulコマンドを実行します。ネットワーク上の別のマシンまたはネットワーク外部のマシンからサーバーにアクセスしようとすると、The connection was resetエラーが発生します。ルーターにポート転送を設定しましたが、サーバーはApache、Tomcat、SSHなどを介してアクセスできます。
Linux/Ubuntuは初めてなので、デフォルトのファイアウォールが接続をブロックしているかどうかわからなかったので、実行しました。
iptables -A INPUT -p tcp --dport 5984 -j ACCEPT
しかし、それは助けにはなりませんでした。
これは実行中のダンプです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
ただし、LAN上の別のマシンからでも接続できません。
netstat -an | grep 5984
は何と言いますか? 127.0.0.1:5984
または*:5984
ですか? 127.0.0.1
の場合、すべてのインターフェースをリッスンするようにcouchdbを設定する必要があります。
/etc/couchdb/default.iniのbind_addressを変更する必要があります。次に、サービスを再起動して再試行してください。
構成ドキュメント :
Futon設定パネルから変更する場合、他に何もする必要はありません(dbの再起動など):
デフォルトのbind_addressを変更する前に:
peter@earth:~/$ netstat -an | grep 5984
tcp 0 0 127.0.0.1:5984 0.0.0.0:* LISTEN
0.0.0.0に変更した後:
peter@earth:~/$ netstat -an | grep 5984
tcp 0 0 0.0.0.1:5984 0.0.0.0:* LISTEN
非教祖に注意してください:あなたのコンピューター(通常、ローカルネットワークの外にあるもの)にアクセスできないコンピューターは、コンピューター(CouchDBなど)にアクセスできません。
自宅のPC/Macで次のコマンドを実行します。
ssh -L 5984:localhost:5984 YOUR-SERVER-IP-HERE
次にブラウザーで開くlocalhost:5984/_utils ...それは私にとってはうまくいく
私はこれに遭遇し、Ubuntuのインストールにcouchdbがすでにインストールされているようだったことが問題になりました。私は/ etc/couchdbの下の設定ファイルを編集していましたが、実行されていたものは実際には/ usr/local/etc/couchdbから設定を取得していました。
秘訣は、/ etc/couchdbの設定がcouch 0.10について言及していることですが、私は1.0.1をインストールしたばかりです。
iptables -L -n -v
は、現在のファイアウォールルールを表示します。ルールに到達する前に、それらのパケットをドロップしているパケットがあるかどうかを確認します。