Sanal makinedeki web sunucusuna internetten erişilemiyor


0

Sanal makinede bulunduğunda web sunucuma erişmekte sorun yaşıyorum. Web sunucusunu fiziksel ana makineye koyarsam, internetten erişebilirim. Ancak, web sunucusuna VM’de (aynı ana makinede) iken erişmeye çalıştığımda, yalnızca tarayıcıdan curl externalip:forwardedport ).

Bunun neden işe yaramadığını biraz rahatsız ediyorum, çünkü bu düzeneğin parçaları tamamen yalıtılmış halde çalışıyor, ancak bir araya getirildiğinde çalışmaz.

Sanal bir makineye yerleştirdiğimde, köprülü bir ağ bağlantısı kurduğumdan ve ağımın başka bir yerinden ayrı makinelerde erişebildiğimden emin oluyorum. Ayrıca, yönlendiricideki bağlantı noktası iletimini, VM'ye atanan statik IP'ye atanan statik ip için ayarlıyorum.

Aşağıdaki yapılandırmaları temsil eder. İlk yapılandırma, elde etmeye çalıştığım yapılandırma. İkinci ve üçüncüsü, her ikisi de çalışıyorsa (ve yaparlarsa) ilk görünen yapılandırma da çalışmalı gibi görünen "kısmi yapılandırmalar" dır.

  1. web sunucusu & lt; - & gt; sanal makine & lt; - & gt; ana makine & lt; - & gt; yönlendirici & lt; - & gt; modem & Lt; - & gt; Internet
  2. web sunucusu & lt; - & gt; sanal makine & lt; - & gt; ana makine & lt; - & gt; yönlendirici & lt; - & gt; diğer bilgisayar
  3. ................................ web sunucusu & lt; - & gt; ana makine & lt; - & gt; yönlendirici & lt; - & gt; modem & lt; - & gt; Internet

Temel olarak # 2, yerel olarak web sunucusuna erişebildiğim anlamına gelir;

Şu anda kullanıyorum:

webserver: python's SimpleHTTPServer at port 8888
virtual machine: centos deployed by vagrant on virtualbox. 
host machine: thinkpad, windows
router: apple airport, wrt-54g (tried both, same results)
modem: SB6121 cable modem
internet: comcast 

Bağlantı noktası yönlendirme 8888'den web sunucusunun yerel statik ip adresine 10.0.1.99 @ 8888'e bağlantı kurdum.

Her şeyin doğru olması gerektiğini düşündüm. Bir arkadaşımdan web sunucusuna kendi yönlendiricisinden / internetinden erişmeye çalışmasını istedim ve aynı sonuçları aldı: sadece kilitleniyor.

Yönlendiricideki bağlantı noktası iletme ve sorunlara neden olan vm ağ bağdaştırıcısını köprülemenin birleşimidir. Oldukça eminim ki doğru portu, doğru statik IP'ye iletiyorum. Ayrıca, neden bağlandığından emin değilim, sadece bağlantımı bırakıyorum. Bazıları önerdi, paketler internete geri dönüş yolunu bulamadı.


Hangi VM sistemini kullandığınızı bilerek, bir başlangıç ​​için bize yardım etmemiz için yeterli bilgi sağlamadınız. Tahminen, NAT ve Bridging probunun bir kombinasyonu gibi geliyor.
davidgo

Bu bilgiyi verdiğimi sanıyordum. VM'de iki adaptörüm var. Kapatmak istemediğim SSH bağlantıları için bir NAT adaptörü var, diğeri ise statik IP'ye atanmış köprülü bağlantı. Köprülü bağlantıya ağımın başka yerlerinden erişebilirim.
barrrista

1
Giden yönlendirmenin doğrudan yolu tercihli olarak NAT yolunu seçmesi mümkün mü - Bence bu, farklı ağ geçitlerine sahip çoklu Arayüzler kurarken, yani 2 yönlendirme tablosuna sahip olmamanın yaygın bir hata olduğunu düşünüyorum.
davidgo

1
Vm'ye IPtables kurulumu hakkında hiçbir şey görmedim. Bana göre bu bir sorun olabilir. Bunu vm'de çalıştırmayı deneyin iptables -A INPUT -p tcp --dport 8888 -j ACCEPT
xR34P3Rx

1
Ayrıca bu web sunucusunu daha önce hiç yapılandırmadım, ancak özel ipinize bağlı olması da mümkündür (dinleyen ip). Mümkünse 0.0.0.0:8888. Bu, herhangi bir gelen adresi dinlemesini sağlayacaktır.
xR34P3Rx

Yanıtlar:


1

Sorunun ne olduğunu buldum. Vagrant, ssh bağlantısı için sözde bir NAT olan ve VagrantFile'de istediğim köprülenmiş adaptör olan iki adaptör yaratıyor. NAT bağdaştırıcısını (yani, VirtualBox aracılığıyla) devre dışı bırakıp köprülü bağdaştırıcıyı etkin bırakırsam, aniden çalışır ve web sunucusuna internetten erişebilirim. NAT bağdaştırıcısını içeride bırakırsam, web sunucusuna yalnızca ağımın içinden (örn. Diğer kutular) erişebilirim.

İşte işe yaramadığı zamanki yapılandırma:

NAT Adaptörü: NAT adapter

Köprülü adaptör: Bridged adapter

VM'imde ifconfig, web sunucusunu barındırıyor. İnternetten erişilemiyor. Buradaki ip adresi: 99 çünkü VagrantFile (vagrant'ın yapılandırma dosyası) üzerinden statik bir ip kurdum: ifconfig within my VM, hosting the webserver

Birden, yalnızca bağdaştırılmış bağdaştırıcı kullanarak NAT bağdaştırıcısını çıkarırsam çalışır. IP adresi DHCP tarafından atanan bir şeye dönüşüyor, çünkü basitçe açıyorum: removed the NAT adapter, only using the bridged adapter

Yerel IP köprülü bağdaştırıcısında her değiştiğinde bağlantı noktası iletmeyi doğru ayarlamıştım ve sorunu birden çok kez kopyaladım.


Eh, varsayılan rota hiledir. Vm'niz muhtemelen yönlendirme için nat bağdaştırıcısını varsayılan olarak ayarlıyor (kontrol edilecek ip yolu) ve köprülü bağdaştırıcıdaki gelen paketler atılacak. Köprülü bağdaştırıcıda varsayılan yol belirlemeye çalışın ve onu doğal bağdaştırıcıda silin.
maudam

Görünüşe göre, Nat adaptörünü silmemeliyim çünkü Vagrant kullanıyorum. Nat bağdaştırıcısı kaldırılırsa "sersemlet" gibi komutlar çalışmaz. Yani benimki en iyi çözüm olmayabilir.
barrrista
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.