Cập nhật: Tôi đã làm cho nó làm việc bây giờ. Câu trả lời của Jim Zajkowski đã giúp tôi phát hiện ra rằng /etc/init.d/couchdb các cuộc gọi khởi động lại không thực sự khởi động lại thể hiện. Sau khi tôi giết thủ công các quy trình CouchDB và bắt đầu một phiên bản mới, nó đã chọn thay đổi BindAddress cần thiết.
Tôi đã cài đặt CouchDB qua
năng lực cài đặt couchdb
Từ máy chủ của tôi, tôi có thể kết nối qua
telnet localhost 5984
và thực hiện các lệnh RESTful. Khi tôi cố gắng truy cập máy chủ từ một máy khác trong mạng của chúng tôi hoặc từ một máy bên ngoài mạng của chúng tôi, tôi nhận được lỗi Kết nối được đặt lại . Tôi đã thiết lập chuyển tiếp cổng trên bộ định tuyến và máy chủ có thể truy cập được thông qua Apache, Tomcat, SSH, v.v.
Tôi mới sử dụng Linux / Ubuntu, vì vậy tôi không chắc có tường lửa mặc định chặn kết nối hay không, vì vậy tôi đã chạy:
iptables -A INPUT -p tcp --dport 5984 -j CHẤP NHẬN
nhưng nó không giúp được gì.
Đây là kết xuất từ việc chạy 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
Tôi giả sử các byte hiển thị khi được chuyển cho 5984 là do kết nối localhost của tôi.
Đây là bãi chứa từ việc chạy netstat -an | grep 5984
tcp 0 0 127.0.0.1:5984 0.0.0.0:* LISTEN
Tôi đã cấu hình couch.ini để có "BindAddress = 0.0.0.0" và được khởi động lại, vì vậy nó nên lắng nghe trên tất cả các giao diện. Tuy nhiên, khi tôi chạy "sudo /etc/init.d/couchdb stop" thì chạy netstat, tuy nhiên, tôi vẫn thấy mục trên. Có vẻ như CouchDB thực sự không dừng lại ở tất cả. Điều này có thể giải thích vấn đề của tôi, bởi vì điều đó có nghĩa là CouchDB chưa bao giờ thực sự khởi động lại và không bao giờ chọn thay đổi BindAddress.
Tôi đã giết thủ công quy trình CouchDB và khởi động lại. Bây giờ netstat cho thấy:
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
Tôi vẫn không thể kết nối, ngay cả từ một máy khác trong mạng LAN.