SSH zdalnie do Ubuntu VM

10

Nie mam dużego doświadczenia w pracy w sieci lub Linuksie, ale próbuję ssh na maszynę wirtualną Ubuntu spoza mojej sieci domowej. Maszyna wirtualna Ubuntu (VirtualBox) działa na pulpicie Debiana. Przeprowadziłem badania i okazało się, że muszę przekierować port 22 z routera na maszynę wirtualną.

  • Zmieniłem ustawienia sieciowe na maszynie wirtualnej, aby połączyć.
  • Przesyłam port do maszyny wirtualnej.
  • Sprawdziłem ( http://www.yougetsignal.com/ ), aby pokazać port jako otwarty.

Ale kiedy próbuję się połączyć, nadal nie działa. nazwa użytkownika ssh @ - połączenie odrzucone

Czy jest coś, co muszę zrobić na maszynie wirtualnej, aby zezwolić na połączenia przychodzące? Lub przekierować dowolny port?

Czy jest coś, co robię źle, każda pomoc byłaby bardzo mile widziana !!

użytkownik1354275
źródło
W jaki sposób maszyna wirtualna jest połączona w sieć z hostem. Jeśli jest za NAT (domyślnie w wirtualnym pudełku). Nie działałoby, ale połączenie mostkowe powinno działać, pod warunkiem, że porty zostały poprawnie przesłane.
Matt Mootz
Używasz nazwy użytkownika ssh @ router-ip-address, prawda?
cprofitt
1
tak nazwa użytkownika @ publiczny-adres-IP to prawda?
user1354275
Ubuntu po wyjęciu z pudełka zawiera klienta OpenSSH , który pozwala połączyć się z innym komputerem z serwerem SSH. Aby połączyć się z Ubuntu, musisz załadować serwer OpenSSH ( sudo apt-get install openssh-server ) na maszynę docelową.
david6

Odpowiedzi:

15

Domyślnie VirtualBox działa w trybie „NAT”, co oznacza, że ​​buduje sieć „wirtualną” i tłumaczy dostęp do sieci z maszyny wirtualnej, tak aby na zewnątrz wyglądała, jakby pochodziła z twojego komputera.

VirtualBox sprawia, że ​​VM myśli, że jest podłączony do sieci, ale w rzeczywistości VirtualBox zapewnia usługi sieciowe, w tym mini serwer DHCP. Następnie VirtualBox uzyskuje dostęp do sieci „w imieniu” maszyny wirtualnej, dzięki czemu wygląda jak kolejna aplikacja działająca na komputerze.

Oznacza to jednak, że świat zewnętrzny tak naprawdę nie wie o maszynie wirtualnej i nie może uzyskać do niej bezpośredniego dostępu.

Myślę, że przekierowanie portu zostało wykonane z domowego routera na komputer, a nie na maszynę wirtualną. Być może brakuje pewnej konfiguracji po stronie VirtualBox. Przepraszam, jeśli już to zrobiłeś, ale twoje pytanie nie było jasne.

Zasadniczo musisz zmienić konfigurację sieci maszyny wirtualnej i ustawić ją na „Bridged”. To powoduje, że tworzy wirtualny interfejs na twoim komputerze i sprawia, że ​​maszyna wirtualna używa go do uzyskania dostępu do świata zewnętrznego; wszystko, co wchodzi lub przechodzi do tego interfejsu, jest przesyłane do maszyny wirtualnej. W ten sposób maszyna wirtualna będzie widoczna jako inna maszyna w dowolnej sieci, do której podłączony jest komputer (ma nawet własny adres MAC!).

Następnie, w zależności od konfiguracji sieci, maszyna wirtualna może uzyskać adres DHCP, jak każdy inny komputer podłączony do routera, lub może być konieczne skonfigurowanie dla niego statycznego adresu IP. Zależy to od konfiguracji sieci.

Gdy maszyna wirtualna ma „prawdziwy” adres, możesz na routerze postępować zgodnie z instrukcjami, które znalazłeś, aby skierować port 22 do adresu IP maszyny wirtualnej. Powinno to działać zgodnie z oczekiwaniami.

Jeśli nie:

  • Spójrz na konfigurację zapory maszyny wirtualnej (iptables -L -n). Czy to coś blokuje?
  • Skonfiguruj inny komputer w sieci lokalnej i spróbuj połączyć się z SSH na adres IP maszyny wirtualnej. Jeśli możesz, musisz dokładnie sprawdzić konfigurację przekazywania w routerze. Jeśli nie możesz, musisz ponownie sprawdzić SSH maszyny Wirtualnej i konfigurację zapory.
roadmr
źródło
Cześć roadmr, zmieniłem ustawienia sieciowe na mostek i przekazałem port do maszyny wirtualnej, ponieważ ma ona swój własny adres ip i router mógł go znaleźć. Mam statyczne IP przez ISP. Ale nadal nie działa
użytkownik1354275
1

z tego, co mogę zebrać, twój problem leży w sieci komputerowej serwera, ponieważ po skonfigurowaniu sieci VM do trybu mostkowania możesz zacząć (sprawdź ssh <your.vm.ip.number>w wierszu poleceń serwera - nie w VM).

Twój serwer znajduje się za routerem, podobnie jak vm korzystający z NAT na twoim komputerze.

Musisz skontaktować się z administratorem sieci serwera, aby mógł przekazać lokalny adres IP vm do portu / zakresu portów (upewnij się, że twój vm ma statyczny adres IP).

Możesz to zrobić samodzielnie, jeśli masz do tego uprawnienia w bramie serwera.

trochę wizualizacji:

Internet
     '---ROUTER (SERVER1 and SERVER2 use NAT on this router)
            |   (vm1, vm2, vm3, vm4, vm5 need to be forwarded on this router)
            | 
            '--- SERVER1 (vm1, vm2, vm3 use Bridge)
            |       '---vm1
            |       '---vm2
            |       '---vm3
            '--- SERVER1 (vm4, vm5 use Bridge)
            |       '---vm4
            |       '---vm5
apisKod
źródło