Sieć bezprzewodowa w Virtualbox

13

Właśnie zainstalowałem moją pierwszą instancję Ubuntu Server (12.04) i od razu napotkałem następujące problemy:

  • Uruchomiony apt-get installlub updatenie działa (patrz poniżej)
  • Uruchomienie ifconfigpowoduje powstanie osobliwych adresów IP zaczynających się od, 10.x.x.xa mój router w ogóle nie widzi serwera na stronie „Podłączone urządzenia” (to Netgear klasy konsumenckiej)

Po uruchomieniu apt-getotrzymuję ponad 50 następujących błędów:

Failed to fetch <some-http-url>. Temporary failure resolving <blah>.ubuntu.com

Przeczytałem o tym błędzie dla 12.04 i znalazłem podobne posty na tym forum i na temat błędu serwera, które zalecały przejście do /etc/resolv.confi dodanie wpisu:

nameserver 8.8.8.8

Ku mojemu zdziwieniu odkryłem, że /etc/resolv.confjest to dowiązanie symboliczne wskazujące na inne miejsce i musiałem je najpierw usunąć, a następnie utworzyć nowy z wpisem wskazanym powyżej.

Zrestartowałem serwer i spróbowałem uruchomić apt-getponownie, te same wyniki.

Jak rozpocząć diagnozowanie problemu (jestem stosunkowo nowym użytkownikiem Linux / Ubuntu)?

Dodatkowe informacje, które mogą pomóc:

  • W rzeczywistości jest to maszyna wirtualna działająca jako system gościa VirtualBox
  • Fizyczny host, na którym działa ta maszyna wirtualna, to mój laptop, który ma połączenie bezprzewodowe; Zastanawiam się, czy (jakoś) laptop łączy się z siecią bezprzewodowo, ale może VBox VM i / lub system operacyjny serwera Ubuntu nie są skonfigurowane do łączności bezprzewodowej, więc nic nie „przechodzi”?

Z góry dziękuję za wszelkie wskazówki!

Edytuj :

Oto migawka ustawień sieciowych mojej maszyny wirtualnej (tylko Karta 1 zawiera informacje wypełniające jej pola, więc zakładam, że moja maszyna wirtualna ma tylko 1 kartę):

wprowadź opis zdjęcia tutaj

Oto dane wyjściowe, gdy uruchamiam ifconfigz terminala:

wprowadź opis zdjęcia tutaj

A oto dane wyjściowe, gdy uruchamiam routez terminala:

wprowadź opis zdjęcia tutaj

Bieganie ping google.com:

wprowadź opis zdjęcia tutaj

zharvey
źródło
1
Czy możesz dodać wynik dig <blah>.archive.ubuntu.com, dig @ 8.8.8.8 <blah> .archive.ubuntu.com` i dig @8.8.8.8 archive.ubuntu.com. Jaka jest zawartość <blah>? Czy możesz pingować <blah> .archive.ubuntu.com z hosta twojej maszyny wirtualnej?
John S Gruber,
1
HWAddrJest chyba OK, aby pokazać, ponieważ każda VM dostaje swój unikalny adres MAC.
Henrik,
1
A fe80::..adres jest link-local IPv6 której nie mogę się z Tobą skontaktować w sprawie. A od w ping jest serwerem, który pingujesz, a nie bramą, więc niczego nie zdradza.
Henrik

Odpowiedzi:

22

Krótko mówiąc: problem dotyczy sieci.

Sposób, w jaki widzę scenariusz, wygląda następująco:

wprowadź opis zdjęcia tutaj

Teraz, aby poprawnie zobaczyć, gdzie jest problem, w tym przypadku musimy najpierw sprawdzić z sieci zewnętrznych do sieci wewnętrznych.

  1. Upewnij się, że router ma dostęp do Internetu. Możesz użyć tego samego hosta lub innego podłączonego do niego urządzenia, aby to sprawdzić.

  2. Upewnij się, że host ma dostęp do Internetu przez router lub inne źródło. Aby sprawdzić, wystarczy wysłać do ping google.com na przykład tak: ping google.com.

Jeśli punkty 1 i 2 są dobre (Twój router działa świetnie i ma dostęp do Internetu, a Twój host ma dostęp do Internetu), to kontynuujemy z Gośćmi i Virtualbox. Warto przeczytać, w jaki sposób obsługiwane jest wsparcie bezprzewodowe w VirtualBox, czytając kartę Wi-Fi na Ubuntu Virtualbox

Najpierw musimy poznać następujące informacje:

  • W środowisku virtualbox nie ma połączenia bezprzewodowego. Wszystkie połączenia „wirtualne” odnoszą się do połączeń kablowych / przewodowych. Kiedy więc włączysz kartę sieciową w swoim wirtualnym gościu, tworzysz wirtualne połączenie przewodowe , a nie wirtualne połączenie bezprzewodowe .

  • Połączenie wirtualne z hosta do gościa jest niezależne od typu połączenia, z którym host jest połączony (fizycznie podłączony). Jeśli host jest podłączony za pomocą połączenia przewodowego lub bezprzewodowego, nie ma to wpływu ani nie wpływa na połączenie wirtualne utworzone z hosta na gościa, ponieważ połączenia przewodowe i bezprzewodowe są używane w taki sam sposób w gościu. Coś podobnego do następującego obrazu:

    wprowadź opis zdjęcia tutaj

  • Jeśli gospodarz nie ma dostępu do Internetu, gość go nie będzie miał. To samo dotyczy tego, że jeśli twój host ma dostęp do Internetu, a twoje połączenie z hosta do gościa pozwala na dzielenie się internetem, to najprawdopodobniej gość będzie miał również internet (domyślne zachowanie w Virtualbox).

  • Będę używać Virtualbox 4.1.20, który wygląda inaczej niż ten, którego używasz (Może być taki sam, nie wiem). Dodam obraz sieci, aby pomóc i pokazać różnice:

    wprowadź opis zdjęcia tutaj

  • Będę używać Ubuntu 12.04 jako hosta i gościa (działa tak samo w 12.10 lub 13.04). W przypadkach, gdy Windows jest hostem, musisz upewnić się, że zapora sieciowa nie blokuje określonego portu, z którego będzie korzystał gość.

  • Zakładam, że host nie korzysta z serwera proxy, tylko podłączony bezpośrednio do routera za pośrednictwem połączenia bezprzewodowego / przewodowego.

  • Dane wyjściowe gościa są następujące w przypadku ifconfig i route:

    wprowadź opis zdjęcia tutaj

Teraz do punktów, które chcesz rozwiązać:

  1. Skonfiguruj sieć dla VM Ubuntu Server
  2. Uzyskaj VM, aby połączyć się z Internetem
  3. Uzyskaj router, aby zobaczyć maszynę wirtualną

Pozwól mi najpierw wspomnieć, że punkt 3 będzie niemożliwy, chyba że domysł Virtualbox obsługuje przekierowanie portów. Router będzie widział tylko przelewy wykonane od gościa, tak jakby były to przelewy wykonane z faktycznego hosta. Zatem bez przekazywania (który jest nieco obsługiwany w najnowszej wersji) router nigdy nie zobaczy maszyny wirtualnej, tylko hosta.

Istnieją oczywiście sposoby obejścia tego problemu, takie jak nakazanie gospodarzowi przekazywania rzeczy gościowi za pośrednictwem silnika virtualbox. Lub konfigurowanie (myślę, że łatwiej) gościa do przekierowania portów. Na przykład to:

wprowadź opis zdjęcia tutaj

Mając to na uwadze, wykonujemy następujące czynności w Gość:

  1. Sprawdź, czy gość ma dostęp do Internetu przy użyciu wspólnego ping google.compodejścia.

    Jeśli ping działa, to wiemy, że istnieje połączenie internetowe. Problemem może być rozwiązanie witryny docelowej.

  2. Spróbuj wykonać następujące czynności:

    /etc/init.d/network restart i / lub dhclient

  3. Sprawdź, czy /etc/network/interfacejest poprawne. Mój przykład to:

    wprowadź opis zdjęcia tutaj

  4. Zmień typ adaptera w Opcjach sieci w oknie konfiguracji Virtualbox.

  5. Sprawdź, czy klient Ubuntu Desktop lub inny system operacyjny działa poprawnie. (W tej chwili mam tylko obraz ISO Desktop 12.10 i 12.04).

Luis Alvarado
źródło
Wow, dziękuję @Luis Alvarado za tak dokładną odpowiedź (+1). Kilka następnych odpowiedzi dla każdej z 5 sugestii: (1) ping google.comna maszynie wirtualnej gościa wydaje się działać normalnie, więc jakie inne testy mogę wykonać, aby potwierdzić, że faktycznie uzyskuję dostęp do Internetu? (2) Mam tylko /etc/init.d/networking(nie network) usługę, a kiedy próbuję ją ponownie uruchomić, pojawia się ostrzeżenie, że jest przestarzała. (3) Mój etc/network/interfaceplik wygląda dokładnie tak jak twój. (4) Jaki typ adaptera powinienem wypróbować i jakie kolejne ustawienia? (5) Do ustalenia ...
zharvey
Myślę, że pierwszą rzeczą, której potrzebuję, jest potwierdzenie nr 1: ten fakt, który pingwydawał się zaczynać i zachowywać się, jakby działał dobrze. Zaktualizuję moje oryginalne pytanie z zrzutem ekranu wyjścia, daj mi znać, czy jest to „normalne” wyjście ping i wskazuje na udane połączenie inet.
zharvey
Przepraszam, wygląda na to, że zaoferowanie nagrody spadło mi poniżej minimalnego progu upvote 15, więc wygląda na to, że nie mogę głosować za odpowiedzią, w przeciwnym razie zrobiłbym: - /
zharvey 25'12
Cześć. Skrócę o komentarz: 1. Jeśli twój ping działa, wówczas VM ma prawidłowe połączenie z Hostem. 2. Nie martw się o rzeczy / etc / sieciowe, jeśli twój interfejs jest poprawnie skonfigurowany, jak wspomniano, a ping działa, to nie ma znaczenia. 3. Nie martw się o adapter, ponieważ tylko wtedy, gdy inne nie działały. Chciałbym uwzględnić system operacyjny, którego używasz jako hosta i jeśli ten host ma na sobie jakąś zaporę ogniową. Czy możesz również zwirtualizować obraz ISO pulpitu Ubuntu i sprawdzić, czy płyta CD na żywo ma połączenie z Internetem?
Luis Alvarado,
Dzisiaj w końcu udało mi się pobrać Ubuntu Server 12.04.1 i przetestowałem go. Podłączono poprawnie. Dlatego jestem bardziej zorientowany na tworzenie przez hosta problemu lub błędnej konfiguracji podczas instalowania serwera. Opieram się bardziej na gospodarzu, zaprzeczając czemuś, ponieważ dla tego, co mogłem przeczytać, masz trochę doświadczenia z komputerami, a Ubuntu Server jest dość łatwy w użyciu.
Luis Alvarado
3

Jest to zdecydowanie problem z siecią. Aby to potwierdzić, spróbuj najpierw pingować adresy IP w sieci lokalnej:

ping 10.1.1.1

(który prawdopodobnie jest adresem IP twojego routera)

a następnie pingowanie adresów IP w „świecie zewnętrznym”

Ponadto nawet jeśli używasz maszyny wirtualnej na laptopie, który łączy się przez Wi-Fi, nie musisz konfigurować Wi-Fi na maszynie gościa - VirtualBox emuluje „przewodową” kartę sieciową, więc system operacyjny gościa myśli, że działa na maszynie który jest podłączony do sieci LAN za pomocą kabla.

Konfigurowanie sieci w VirtualBox to szeroki temat (chociaż typowe konfiguracje zwykle działają od razu po wyjęciu z pudełka), musisz upewnić się, że twoja maszyna wirtualna ma kartę sieciową skonfigurowaną we właściwościach maszyny wirtualnej itp.

Więcej informacji można znaleźć na stronie http://www.virtualbox.org/manual/ch06.html .

Domyślna konfiguracja VirtualBox (NAT) tworzy „prywatną” sieć między hostem a maszynami gości, przy czym maszyna hosta przekazuje cały ruch przychodzący z maszyny gościa na zewnątrz i wysyła odpowiedzi z powrotem do gościa (podobnie jak router łączy się z laptopem Internet). Gość nie ma indywidualnego adresu IP w sieci LAN i nie można uzyskać do niego dostępu spoza laptopa, ale można uzyskać dostęp do Internetu od gościa, ponieważ pakiety są tłumaczone na sieć LAN przez komputer hosta, a następnie na router przez Internet. To wyjaśnia, dlaczego nie widzisz osobnego urządzenia w ustawieniach routera

Siergiej
źródło
Dzięki za świetną odpowiedź @Sergey (+1) - ale wciąż jestem trochę zdezorientowany! Mówisz, że maszyna wirtualna uruchomiona na moim laptopie może uzyskać dostęp do Internetu, ponieważ pakiety są tłumaczone na sieć LAN z komputera hosta. Jeśli tak, to dlaczego nie apt-getdziała? Jeśli maszyna wirtualna może odbierać przychodzące połączenie sieciowe, apt-getnie powinno być problemu z pobieraniem treści ze zdalnych adresów URL ... tak? Dzięki jeszcze raz!
zharvey
A może maszyna wirtualna może odbierać pakiety tylko z prywatnej sieci LAN (między systemem operacyjnym hosta a wszystkimi gośćmi)?
zharvey
1
@zharvey: Miałem na myśli hosta / gościa z prawidłowo skonfigurowaną siecią NAT (co zwykle ma miejsce w przypadku tworzenia maszyny wirtualnej z ustawieniami domyślnymi) - Podejrzewam, że twoja maszyna wirtualna może być w jakiś sposób źle skonfigurowana. Przejdź do ustawień maszyny wirtualnej i sprawdź, czy masz kartę sieciową, czy wirtualny kabel Ethernet jest „podłączony”, czy typ sieci jest ustawiony na NAT. Może dodaj kilka zrzutów ekranu do swojego pytania. Następnie uruchom VM i uciekaj ifconfigi routepoleceń i tam też po wyniki.
Siergiej
Jeszcze raz dziękuję @Sergey (ponownie +1) - proszę zobaczyć załączone zrzuty ekranu i daj mi znać, jeśli coś na ciebie wyskoczy! Dzięki jeszcze raz!
zharvey
1

Oto, co zauważam z twojego pytania:

  1. Komunikat brzmi: „Pobieranie nie powiodło się. Tymczasowe usuwanie awarii <blah> .ubuntu.com”
  2. Możesz dobrze wejść na google.com.

Powiedziałbym, że jest problem z usługą nazw domen w rozwiązaniu tego adresu, nie na twoim komputerze. Nie ma nic specjalnego w wyszukiwaniu domen w przeciwieństwie do pingowania. Twoja sieć musi działać, ale jest skonfigurowana.

Sugeruję zmianę źródeł oprogramowania, aby używały innego archiwum Ubuntu, być może po prostu archive.ubuntu.com.

John S Gruber
źródło
Właściwie muszę się zgodzić. Jeśli OP może pingować google i przeglądać internet (należy to sprawdzić), oznacza to, że ma działające połączenie. Problemem wydaje się serwer wybrany w źródłach, a nie połączenie internetowe.
fabricator4,
1

Oto, co zadziałało dla mnie:

próba skonfigurowania połączenia bezprzewodowego nie działała,
dodając szczegóły właściwości sieci na maszynie Wirtualnej Ubuntu i zmiana w systemie Windows tak samo nie działała

chociaż host był bezprzewodowy, gość (maszyna wirtualna Ubuntu) działa tak, jakby był połączony wirtualnym kablem, więc następujące rozwiązanie rozwiązało problem:
okno maszyny wirtualnej Ubuntu> Urządzenia> Sieć> Ustawienia sieciowe ...> zaznacz pole wyboru Kabel podłączony

rabin utam
źródło
1

/etc/resolv.conf jest dowiązaniem symbolicznym i będzie dowiązaniem symbolicznym po jego usunięciu, ponieważ resolvconf zawsze go resetuje.

Jeśli chcesz korzystać z Google DNS, dodaj następujące wiersze do /etc/resolvconf/resolv.conf.d/head:

nameserver 8.8.8.8   
nameserver 8.8.4.4

Jeśli chcesz, aby router wykrył twoją maszynę wirtualną, powinieneś użyć „Bridged adapter”. W kartach sieciowych zmień pole z napisem „NAT” na „most zmostkowany”. Jeśli ustawisz go jako most zmostkowany, maszyna wirtualna otrzyma adres IP itp. Z serwera DHCP. Jeśli router nie ma takiego lub nie masz go w swojej sieci, Virtualmachine nie może automatycznie pobrać ustawień i musisz określić je ręcznie.

Nie jestem pewien, czy to <blah>.ubuntu.comnie rozwiązuje problemu, ale proponuję spróbować innego lustra.

Używam mirrors.ubuntu.com/mirrors.txt, który zawsze zawiera najbliższe możliwe lustra. Aby go użyć, dodaj te linie do /etc/apt/sources.list:

deb mirror://mirrors.ubuntu.com/mirrors.txt precise main restricted universe multiverse   
deb mirror://mirrors.ubuntu.com/mirrors.txt precise-updates main restricted universe multiverse   
deb mirror://mirrors.ubuntu.com/mirrors.txt precise-security main restricted universe multiverse   
deb-src mirror://mirrors.ubuntu.com/mirrors.txt precise main restricted universe multiverse   
deb-src mirror://mirrors.ubuntu.com/mirrors.txt precise-updates main restricted universe multiverse    
deb-src mirror://mirrors.ubuntu.com/mirrors.txt precise-security main restricted universe multiverse

Jeśli chcesz mieć również backporty, dodaj również następujące linie:

deb mirror://mirrors.ubuntu.com/mirrors.txt precise-backports main restricted universe multiverse   
deb-src mirror://mirrors.ubuntu.com/mirrors.txt precise-backports main restricted universe multiverse   

Dla mnie http://mirrors.ubuntu.com/mirrors.txt zawiera:

http://ubuntu.trumpetti.atm.tut.fi/ubuntu/

http://www.nic.funet.fi/pub/mirrors/archive.ubuntu.com/

http://mirrors.nic.funet.fi/ubuntu/

http://archive.ubuntu.com/ubuntu/

ponieważ jestem w Finlandii.

Mikaela
źródło
Jeśli wszyscy mogą edytować i są lepsi od Markdown niż ja, nie krępuj się naprawić tego bałaganu, który spowodowałem powyżej.
Mikaela,
To jest błędna odpowiedź. (1) Jeśli /etc/resolv.conf był dowiązaniem symbolicznym i usuniesz to dowiązanie symboliczne, resolvconf nie odtworzy dowiązania symbolicznego. (2) Plik /etc/resolvconf/resolv.conf.d/head nie jest właściwym miejscem do umieszczenia opcji serwera nazw. Adresy serwera nazw powinny znajdować się w / etc / network / interfaces, jeśli używasz ifup, lub powinny zostać wprowadzone do NetworkManager, jeśli używasz NetworkManager. Jeśli naprawdę chcesz naprawdę dołączyć statyczny adres serwera nazw 8.8.8.8 do resolv.conf, to wpisz „nameserver 8.8.8.8” w /etc/resolvconf/resolv.conf.d/base.
jdthood
0

Ten link zawiera samouczek na temat łączenia się z sieciami bezprzewodowymi za pomocą wiersza polecenia: http://www.linuxjournal.com/content/wi-fi-command-line .

Możesz jednak przywrócić resolv.confplik.

Zielony
źródło
Czy to naprawdę takie proste? Serwer Ubuntu nie jest dostarczany z bezprzewodowym automatycznym wykrywaniem? Kiedy więc pokazuje, że adres IP to tylko domyślny system czy coś takiego? Masz pomysł, jak mogę przywrócić resolv.conf? Dzięki (+1)!
zharvey
@zharvey: jest mało prawdopodobne, aby rozwiązać problem, ponieważ NIE musisz konfigurować Wi-Fi na maszynie gościa.
Siergiej
0

Dobrze. Małe pytanie! Czy możesz korzystać z Internetu w przeglądarce? Jeśli tak, spróbuj: Spróbuj zmienić serwer, wybierając menedżera aktualizacji, definicje, pobieranie z, a następnie wybierz serwer bardziej blisko Ciebie. a następnie spróbuj ponownie sprawdzić swoje aktualizacje.

Myślę, że to błąd. Spróbuj mi powiedzieć, czy to działa.

Celso
źródło
0

Pracuję również na Ubuntu Desktop i serwerze na VirtualBox. I miałem taki sam problem jak ty. Moje obejście nie polegało na skonfigurowaniu karty sieciowej w VirtaulBox jako NAT, ale jako Bridged Adapter.

Mam nadzieję, że to pomoże !;)

PS: z linku Serghey opublikowanego (instrukcja VirtualBox):

„Mostowanie sieciowe Jest to przeznaczone do bardziej zaawansowanych potrzeb sieciowych, takich jak symulacje sieciowe i uruchamianie serwerów u gościa. Po włączeniu VirtualBox łączy się z jedną z zainstalowanych kart sieciowych i bezpośrednio wymienia pakiety sieciowe, omijając stos sieciowy hosta.”

Bulix
źródło
0

Ten problem jest zasadniczo spowodowany przydzieleniem tych samych adresów IP zarówno do adaptera WiFi hosta (przez serwer DHCP routera Wi-Fi), jak i interfejsu gościa (przez serwer DHCP VirtualBox w sieci Nat).

Z dokumentacji VirtualBox na temat zintegrowanego serwera DHCP Dostrajanie silnika NAT VirtualBox :

In NAT mode, the guest network interface is assigned to the IPv4 range 10.0.x.0/24
by default where x corresponds to the instance of the NAT interface +2. So x is 2
when there is only one NAT instance active. In that case the guest is assigned to the 
address 10.0.2.15, the gateway is set to 10.0.2.2 and the name server can be found at
10.0.2.3.

Patrząc na adres IP karty WiFi twojego hosta, przekonasz się, że adres przypisany do niego również pochodzi z 10.0.2.0/24zasięgu sieci.

To jest powód tego problemu, ponieważ teraz sterownik Nat dla VirtualBox jest zdezorientowany faktem, że adresy hosta i gościa pochodzą z tej samej podsieci.

Aby to naprawić, możesz zmienić podsieć obsługiwaną przez serwer DHCP VirtualBox za pomocą polecenia VBoxManage (gdy maszyna wirtualna jest wyłączona):

Vboxmanage modifyvm VMName --natnet1 "198.162/16"

I dobrze jest iść (ponieważ 198.162.0.0 prawie nigdy nie jest używany na serwerach DHCP w urządzeniach sieciowych SOHO).

Samveen
źródło
0

Musisz zainstalować „VirtualBox Oracle VM VirtualBox Extension Pack”.

Najpierw uruchom VBoxManage --versionna terminalu Ubuntu (I'm on Mint). Następnie pobierz pakiet rozszerzeń, który jest zgodny z wersją VBox, ze strony https://www.virtualbox.org/wiki/Downloads .

W VBox kliknij Ctrl+ G(„Preferencje”) i przewiń w dół do karty „Rozszerzenie”. Kliknij „Dodaj nowy pakiet”, następnie dodaj pobrany plik i pozwól mu zainstalować.

Spróbuj!

Mag
źródło