อัปเดต:ฉันทำให้มันทำงานตอนนี้ คำตอบของ Jim Zajkowski ช่วยให้ฉันตรวจพบว่า/etc/init.d/couchdbของฉันรีบูตไม่ได้รีบูตอินสแตนซ์ของจริง หลังจากที่ฉันฆ่ากระบวนการ CouchDB ด้วยตนเองและเริ่มต้นอินสแตนซ์ใหม่มันรับการเปลี่ยนแปลง BindAddress ที่จำเป็น
ฉันได้ติดตั้ง CouchDB ผ่านทาง
ความถนัดติดตั้ง couchdb
จากเซิร์ฟเวอร์ของฉันฉันสามารถเชื่อมต่อผ่าน
telnet localhost 5984
และรันคำสั่ง RESTful เมื่อฉันพยายามเข้าถึงเซิร์ฟเวอร์จากเครื่องอื่นบนเครือข่ายของเราหรือจากเครื่องภายนอกเครือข่ายของเราฉันได้รับข้อผิดพลาดการเชื่อมต่อถูกรีเซ็ต ฉันได้ตั้งค่าการส่งต่อพอร์ตบนเราเตอร์และเซิร์ฟเวอร์นั้นสามารถเข้าถึงได้ผ่าน Apache, Tomcat, SSH และอื่น ๆ
ฉันใหม่สำหรับ Linux / Ubuntu ดังนั้นฉันไม่แน่ใจว่ามีไฟร์วอลล์เริ่มต้นที่บล็อกการเชื่อมต่อหรือไม่ดังนั้นฉันจึงวิ่ง:
iptables -A อินพุต -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นั้นเป็นเพราะการเชื่อมต่อ localhost ของฉัน
นี่คือดัมพ์จากการรัน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