Neden CouchDB örneğime Ubuntu 9.04 sunucusundan harici olarak erişemiyorum?


27

Güncelleme: Şimdi çalışıyor. Jim Zajkowski'nin cevabı /etc/init.d/couchdb yeniden başlatma çağrılarımın örneği yeniden başlatmadığımı tespit etmeme yardımcı oldu . CouchDB işlemlerini manuel olarak öldürdükten ve yeni bir örnek başlattıktan sonra, gerekli BindAddress değişikliğini seçti.

CouchDB'yi aracılığıyla yükledim

yetenek yüklemek couchdb

Sunucum üzerinden bağlanabiliyorum

telnet localhost 5984

ve RESTful komutlarını yürütün. Sunucuya ağımızdaki başka bir makineden veya ağımızın dışındaki bir makineden erişmeye çalıştığımda, Bağlantı sıfırlandı hatası oluştu . Yönlendirici üzerinde bağlantı noktası iletmeyi ayarladım ve sunucuya Apache, Tomcat, SSH vb.

Linux / Ubuntu'da yeniyim, bu yüzden bağlantıyı engelleyen varsayılan bir güvenlik duvarı olup olmadığından emin değildim, o yüzden koştum:

iptables - GİRİŞ -p tcp --dest 5984 -j KABUL

ama yardımcı olmadı.

İşte iptables -L -n -v çalışan dökümü

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'e aktarılmış olarak gösterilen baytların localhost bağlantımdan kaynaklandığını tahmin ediyorum .

İşte çalışan netstat -an dökümü | grep 5984

tcp        0      0 127.0.0.1:5984          0.0.0.0:*               LISTEN

Couch.ini dosyasını "BindAddress = 0.0.0.0" olacak şekilde yapılandırdım ve yeniden başlattım, bu yüzden tüm arayüzleri dinliyor olmalı . "Sudo /etc/init.d/couchdb stop" komutunu çalıştırdığımda netstat komutunu çalıştırdığımda yine de yukarıdaki girişi görüyorum. Görünüşe göre CouchDB hiç durmuyor. Bu benim sorunumu açıklayabilir, çünkü bu, CouchDB'nin hiçbir zaman yeniden başlatılmadığı ve BindAddress değişikliğini asla almadığı anlamına gelebilir.

CouchDB işlemini manuel olarak öldürdüm ve yeniden başlattım. Şimdi netstat gösterir:

 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

Yine de, LAN üzerindeki başka bir makineden bile bağlanamıyorum.


Bu sorun Ubuntu 12'de hala var. Paket sahibinin bunu şimdiye kadar düzelteceğini mi düşünüyorsunuz?
Mark E. Haase,

Yanıtlar:


33

Ne netstat -an | grep 5984diyor? Yazıyor mu 127.0.0.1:5984yoksa *:5984? Eğer öyleyse 127.0.0.1, couchdb'nin tüm arayüzleri dinleyecek şekilde ayarlanması gerekir.


3
"tcp 0 0 127.0.0.1:5984 0.0.0.0:* LISTEN" sonucu. Couch.ini dosyasını "BindAddress = 0.0.0.0" olacak şekilde yapılandırdım ve yeniden başlattım, bu yüzden tüm arayüzleri dinliyor olmalı. İşte garip olan kısım: "sudo /etc/init.d/couchdb stop" komutunu çalıştırdığımda, sonra netstat'ı çalıştırdığımda, hala yukarıdaki girişi görüyorum. Görünüşe göre CouchDB hiç durmuyor. Bu benim sorunumu açıklayabilir, çünkü bu muhtemelen hiç bir zaman yeniden başlatılmadığı ve muhtemelen hiç bir zaman BindAddress değişikliğini almadığı anlamına gelir
rcampbell

3
evet, arka plan işlemi olarak çalışıyordum. couchdb -d'yi kullanarak couchdb'yi öldürdüğümde çalıştı ve yeniden başlattı
Kristian

2
Bu cevap bana yardımcı oldu! Futon web arayüzünü kullanarak, diskteki asıl config dosyasını bulmak ve düzenlemek zorunda kalmadan bu ayarı kolaylıkla değiştirebileceğini paylaşmak istedim . Sadece 127.0.0.1:5984/_utils/config.html(veya kurulumunuz için eşdeğer URL) adresine gidin ve seçenek değerini çift tıklayın, düzenleyin ve ardından yeşil onay işaretini tıklayın.
Steve Benner

@SteveBenner Maalesef 127.0.0.1:5984/_utils/config.html hiçbir şey getirmiyor!
Dr.Jacky

@rcampbell couch.ini nerededir?
Dr.Jacky


7

Bunun çalışması için çalışan erlang işlemini bir nedenden dolayı el ile öldürmeniz gerektiğini fark ettim. ps ax | grep beamerlang sürecini ortaya çıkarmalı 0:00 /usr/lib/erlang/erts, çıktıdaki herhangi bir yerdeki çizgilerden bir şeyler almalısınız . Bu işlemi öldürürseniz ve sonra /etc/init.d/couchdb restartyeni config dosyasını çalıştırırsanız yüklenir.


benim için aynı - sadece ışın sürecini öldürdükten sonra, o zaman sofadb -d yapın ve sonra servis durdurma / başlatma .. yeni ayar etkili oldu.
Bobby,

4

Evde PC / Mac'te şu komutu çalıştırın:

ssh -L 5984:localhost:5984 YOUR-SERVER-IP-HERE

tarayıcınızda bir sonraki açık localhost: 5984 / _utils ... Benim için çalışıyor


4

Yapılandırma dokümanları :

bind_address

Futon konfigürasyon panelinden değiştirirseniz, başka bir şey yapmanıza gerek yoktur (db'yi yeniden başlatmak vb.):

görüntü tanımını buraya girin

Varsayılan bind_adresi değiştirmeden önce:

peter@earth:~/$ netstat -an | grep 5984
tcp        0      0 127.0.0.1:5984          0.0.0.0:*               LISTEN

0.0.0.0'a değiştirdikten sonra:

peter@earth:~/$ netstat -an | grep 5984
tcp        0      0 0.0.0.1:5984          0.0.0.0:*               LISTEN

Guru olmayanlara dikkat edin: size erişemeyen bilgisayarlar (normalde yerel ağınız dışındaki herhangi bir şey), bilgisayarınıza erişemez (CouchDB veya başka bir şey).


Bu cevap oldukça eski olmasına rağmen doğru yere yönlendirmiş gibi görünüyor. Futon, Fauxton ile değiştirildi, ancak bence insanlar Konfigürasyondaki bind_address'i değiştirmenin özünü alırlar.
Scott Biggs

2

Bununla karşılaştım ve benim sorunum, görünüşe göre, Ubuntu kurulumumda zaten kurulmuş olan couchdb'nin olmasıydı. / Etc / couchdb altındaki config dosyalarını düzenliyordum, fakat çalışmakta olanı aslında config / usr / local / etc / couchdb dosyasından çekmekti.

Bahşiş, / etc / couchdb içindeki config. 010 nolu kanepeden bahsetti, ancak ben sadece 1.0.1 yükledim.


1

iptables -L -n -vsize mevcut güvenlik duvarı kurallarınızı gösterecektir. Bakalım bu paketleri sizin kuralınıza uymadan bırakan var mı?


Tabloda listelenen herhangi bir DENY kuralı yoktur. Aksi halde, biri 5984, biri 8080 olmak üzere iki kopyası olmak üzere üç KABUL vardır. Neden 8080 için iki kesin kopya olduğundan emin değilim. Ağımızdaki makineler Tomcat’ı iyi şekilde etkileyebilir.
rcampbell

Çıktısını göstermek ister misiniz? Gerekirse IP adresinizi çıkarın.
Bill Weiss,

Bunu çalıştırıp lsof -i -n -P | grep LISTENgöndermeye ne dersin ? CouchDB işlemini ve neye bağlı olduğunu arıyorsun. Eğer öyleyse 127.0.0.1:5984, harici bağlantıları dinlemek için CouchDB'yi yapılandırmanız gerekir. Eğer öyleyse *:5984, en azından CouchDB doğru şekilde yapılandırılmış :)
Bill Weiss

Merhaba Bill, daha önce cevap veremediğim için üzgünüm. Soruya istediğiniz ham petrolü gönderdim.
rcampbell

Peki ya bu lsofçıktı?
Bill Weiss,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.