VM'deki raylar sunucusuna ana bilgisayardan erişilemiyor


12

Sanal makinede bir raylar sunucum var ve ana bilgisayardan localhost'a erişmem gerekiyor. Ben hem NAT (bağlantı noktası yönlendirme - 80 ve 3000 konuk tarafında bağlantı noktası) denedim ve köprülü bağdaştırıcı ama hiçbir şey çalışıyor gibi görünüyor.

Her iki durumda da 80 numaralı bağlantı noktasına erişebildim ancak 3000 numaralı bağlantı noktasındaki localhost'a bağlanmayı denemedim (bu nedenle xampp sunucusuna erişimde sorun olmadı).

Sunucu konuk tarafındayken, ana bilgisayardan localhost'a nasıl erişilebileceğine dair bir fikriniz varsa lütfen bize bildirin.

Ben linux (debian) konuk ve Windows 7 ana bilgisayar tarafında - VirtualBox kullanın.

Yanıtlar:


10

Burada, her biri doğru şekilde yapılandırılması gereken en az üç ayrı bileşen var.

Ray bağlama adresi

Ağ bağlantılarını almak için Rails (veya başka bir sunucu uygulaması) açıldığında, hem bir IP'ye hem de bağlantı noktasına bağlanır. Gelen bir istek her ikisiyle de eşleşmezse, bağlantı kabul edilmez. Gönderen rails server --help:

Usage: rails server [mongrel, thin etc] [options]
-p, --port=port                  Runs Rails on the specified port.
                                 Default: 3000
-b, --binding=IP                 Binds Rails to the specified IP.
                                 Default: localhost
...

Bu nedenle, Rails varsayılan olarak yalnızca localhost(geri döngü) ağ bağdaştırıcısına (çağrılan lo) gönderilen istekleri kabul eder . Bu bağdaştırıcıya yalnızca aynı bilgisayardan erişilebildiğinden, kabul edeceği tek istek Debian VM'nin kendisinden olacaktır: test için iyi ve güvenli, ancak üretim için, hatta farklı bir bilgisayardan test etmek için kullanışlı değil.

Rails'inizin başka bir bilgisayardan (Windows 7 ana bilgisayarınız dahil) erişilebilir olmasını istiyorsanız, Rails'e Debian'ın dışarıdan erişilebilen IP adreslerine bağlanmasını söylemeniz gerekir (aşağıya bakın).

Bununla birlikte, daha kolay bir yol, Rails'e özel IP adresine bağlanmasını söylemektir 0.0.0.0, bu da herhangi bir ağ adaptörü anlamına gelir . Yani, Rails sunucunuzu şu şekilde başlatmak:

rails server -p 80 -b 0.0.0.0

web sitenizi VM'nizi ağda görebilen herkes için erişilebilir hale getirecektir.

Bu, diğer iki bileşeni çalıştırsanız bile, sizi hala berbat eden şeydir.

VM IP adresi

Tarayıcınızı kendi ayrık bilgisayarı olan Debian sanal makinesine yönlendirmeniz gerekir.

Temel kural, localhosther zaman aynı bilgisayara atıfta bulunmasıdır. Ancak, ağ oluşturma amacıyla, Debian VM'niz kendi ayrı bilgisayarıdır. Windows 7 ana makinenizde bir web tarayıcısı kullanıyorsanız, localhosther zaman Windows 7'nize atıfta bulunacak ve başka bir şey olmayacaktır.

Burada iki seçeneğiniz var:

  • VirtualBox VM adaptörünü Köprü moduna ayarlayın (sorunuzda belirtildiği gibi). Bu, Debian'ınızı doğrudan Windows 7 ana makinenizle aynı dış / ev / iş ağına koyacaktır. Daha sonra Debian VM'nizin IP'sini çalıştırarak belirleyebilirsiniz ifconfig. IP'nizi eth0veya eth<something>adaptörünüzü arayın . Bunu tarayıcınızın adres çubuğuna takın.

  • Bir NAT bağdaştırıcısı ve VirtualBox bağlantı noktası iletme kullanın . IMO bu daha karmaşık.

Debian güvenlik duvarı

Debian üzerinde çalıştığımdan beri bir süre geçti, bu yüzden mevcut varsayılanların ne olduğunu bilmiyorum, ancak yukarıdaki iki şey işe yaramazsa, bu göz atmaya değer olabilir. Debian bir güvenlik duvarı çalıştırıyorsa, başka bir makineden erişmek istediğiniz bağlantı noktalarını açmanız gerekir.

Bu yardımcı olur umarım :)

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.