Jak SSH do Gościa VirtualBox zewnętrznie przez hosta?

Mam maszynę wirtualną Ubuntu działającą na moim komputerze z systemem Windows 7. Jak skonfigurować go tak, że mogę uzyskać dostęp do serwera www zewnętrznie przez SSH?

Znalazłem kroki (Skonfiguruj dostęp SSH między maszynami wirtualnymi VirtualBox Host i gośćmi) aby móc ssh do mojego gościa z mojego hosta, ale nadal pozostawia mi to problem z dostępem do niego przez mój router.

Przypuszczam, że mógłbym zainstalować serwer SSH na moim komputerze z Windows, a potem kilka razy tunelować (choć nie jestem w 100% pewien co do wykorzystania w kategoriach lokalnych, dynamicznych itp. lub jak skonfigurować wiele tuneli?), ale czy istnieje sposób, aby maszyna wirtualna była bezpośrednio dostępna dla mojego routera, abym mógł bezpośrednio do niej portować?

Author: Ali Almoullim, 2011-05-06

14 answers

Najlepszym sposobem na zalogowanie się do gościnnej wirtualnej maszyny Wirtualnej Linux VirtualBox jest przekierowanie portów . Domyślnie, powinieneś mieć już jeden interfejs, który używa nat . Następnie przejdź do ustawień Network i kliknij przycisk Przekierowanie Portów. Dodaj nową regułę . Jako nazwę reguły Wstaw "ssh". Jako" port hosta", insert 3022. Jako "port gościnny" wstawić 22. Wszystko inne zasady można pozostawić puste.

Lub z linii poleceń

VBoxManage modifyvm myserver --natpf1 "ssh,tcp,,3022,,22"

Gdzie "myserver" to nazwa utworzonej maszyny wirtualnej. Sprawdź dodane Zasady:

VBoxManage showvminfo myserver | grep 'Rule'
To wszystko! Nie zapomnij zainstalować serwera SSH w maszynie wirtualnej:
sudo apt-get install openssh-server

Aby SSH do vm gościa napisać:

ssh -p 3022 [email protected]

Gdzie user jest Twoją nazwą użytkownika w maszynie wirtualnej.

 1165
Author: vkostromin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-01 22:14:12

Zmień typ adaptera w VirtualBox na bridged i ustaw gościa do używania DHCP lub ustaw statyczny adres IP poza granicami DHCP. Spowoduje to, że maszyna wirtualna będzie działać jak zwykły gość w sieci domowej. Następnie można przenieść do przodu.

 127
Author: JohnD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-27 18:44:53

Utrzymanie adaptera NAT i dodanie drugiego adaptera tylko dla hosta działa niesamowicie i ma kluczowe znaczenie dla laptopów (gdzie zewnętrzna sieć zawsze się zmienia).

Http://muffinresearch.co.uk/archives/2010/02/08/howto-ssh-into-virtualbox-3-linux-guests/

Pamiętaj, aby utworzyć sieć tylko dla hosta w virtualbox (GUI - > Ustawienia - > Sieć), w przeciwnym razie nie możesz utworzyć interfejsu tylko dla hosta na gości.

 63
Author: orip,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-02 08:53:55

Jak zrobić sieć tylko dla hosta (lepiej niż bridged) dla Solarisa 10 i Ubuntu 16.04

Dodaj interfejs tylko dla hosta

  1. Virtualbox > Plik > Preferencje > Sieć > sieci tylko dla hostów > Dodaj
  2. wyłączanie maszyny wirtualnej.
  3. ustawienia VM > sieć. Pierwszy adapter powinien być Nat, drugi tylko Host.
  4. Uruchom cmd.exe I run ipconfig /all. Powinieneś zobaczyć linie:

    Ethernet adapter VirtualBox Host-Only Network:
       ...
       IPv4 Address. . . . . . . . . . . : 192.168.59.1
    

    Drugi adapter w guest powinien być również w 192.168.59.*.

  5. Uruchom maszynę wirtualną.

Solaris 10

  1. Sprawdź ustawienia ifconfig -a. Powinieneś zobaczyć e1000g0 i e1000g1. Jesteśmy zainteresowani e1000g1.
  2. ifconfig e1000g down
  3. ifconfig e1000g 192.168.56.10 netmask 255.255.255.0 up
  4. sprawdź z hosta, czy ten interfejs jest osiągalny: ping 192.168.56.10

Zachowaj te ustawienia po ponownym uruchomieniu

# vi /etc/hostname.e1000g1
192.168.56.10 netmask 255.255.255.0
# reboot

Skonfiguruj SSH service ( administrowanie ) aby zalogować się jako root (not adviced)

Sprawdź jeśli SSH jest włączone

# svcs -a | grep ssh
online         15:29:57 svc:/network/ssh:default

Zmodyfikuj /etc/ssh / sshd_config tak aby było

PermitRootLogin yes

Restart usługi ssh

svcadm restart ssh

From host check it

ssh [email protected]

Ubuntu 16.04

Lista interfejsów:

ip addr

Powinieneś zobaczyć trzy interfejsy, takie jak lo, enp0s3, enp0s8. Użyjemy trzeciego.

Edycja / etc / network / interfaces

auto enp0s8
iface enp0s8 inet static
    address 192.168.56.10
    netmask 255.255.255.0

Potem sudo ifup enp0s8. Sprawdź, czy enp0s8 ma poprawny adres. Powinieneś zobaczyć swoje ip:

 $ ip addr show enp0s8
 ...
    inet 192.168.56.10/24 brd 192.168.56.255 scope global secondary enp0s8

Jeśli nie, możesz uruchomić sudo ifdown enp0s8 && sudo ifup enp0s8

Https://superuser.com/questions/424083/virtualbox-host-ssh-to-guest/424115#424115

 21
Author: rofrol,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:32

Możesz również użyć Bridged Network (lub "Bridge Adapter", w nowszych wersjach) w ustawieniach sieci . Spowoduje to umieszczenie maszyny Wirtualnej w sieci VLAN z maszyną. Więc możesz po prostu ssh do maszyny Wirtualnej w ten sposób.

SSH user @ IP_OF_VM

 18
Author: Kashyap Kopparam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-01 22:22:23
SSH Back To Your Home / Office VirtualBox Guest Machine From the INTERNET

Odpowiedzi udzielone przez innych użytkowników tutaj: How to SSH to a VirtualBox guest externally through a host?

... pomógł mi wykonać zadanie łączenia się z internetu z maszyną gościa mojego komputera domowego. Powinieneś być w stanie połączyć się za pomocą komputerów, tabletów i smartfonów (android,IPhone itp.). Dodam jeszcze kilka kroków na wypadek, gdyby to mogło być pomocne komuś innemu:

Oto szybki schemat mojego konfiguracja:

  • Remote device ---> INTERNET --> MODEM --> ROUTER --> HOST MACHINE --> GUEST VM

  • Remote device (ssh client) ---> PASS THRU DEVICES ---> GUEST VM (ssh server)

  • Remote device (leave ssh port 3022) ---> INTERNET --> MODEM --> ROUTER (FWD frm:p3022 to:p3022)--> HOST MACHINE (FWD frm:p3022 to:p22) --> GUEST VM (arrive ssh port 22)

Kluczem dla mnie było uświadomienie sobie, że wszystkie połączenia były urządzeniami pośredniczącymi, aby dostać się z mojego zdalnego komputera do mojej maszyny wirtualnej gościa w domu-stąd przekierowanie portów!

Przypisy: * Potrzebujesz klienta ssh, aby zażądać bezpiecznego połączenia i działającego serwera ssh, aby przetworzyć bezpieczne połączenie.

  • Prześlę port 3022 jako użyty w wybranym odpowiedź z góry.

  • Wprowadź swój adres IP w razie potrzeby (Modem domowy/router, adres IP hosta, adres IP gościa itp.), Nazwy wybrane to tylko przykłady-Użyj lub zmień.

1.Utwórz tunel SSH do portu 3022 na zewnętrznym adresie IP modemu / routera.

ssh client/device possible commands: ssh -p 3022 user-name@home_external_IP

2.Port forward = przechodzimy przez połączenie z routera do komputera hosta

  • Upewnij się również, że reguły firewall /IPtable na routerze zezwalają na przenoszenie portów (otwórz, jeśli potrzebne)

  • Routera wymagane wpisy: AppName: SSH_Fwd, Port_from: 3022, Protocol: both( UDP / TCP), IP_address: hostIP_address, Port_to:3022, Wszystko inne może być puste

DD-WRT zasoby oprogramowania routera / Info:

3.Zapora komputera hosta: Otwórz port 3022 #, aby przekierowany port mógł przejść do gościa maszyna

  • Host Machine: Install VirtualBox, guest additions, and guest machine, if not done already

  • Skonfiguruj maszynę gościa, a następnie postępuj zgodnie z sekcją sieć poniżej

  • Używałem interfejsu graficznego VirtualBox do konfiguracji sieci gościa-łatwiej niż CLI

  • Jeśli chcesz użyć innych metod, zapoznaj się z : VirtualBox/manual/ch06.html#natforward

4.Niektórzy sugerują użycie adaptera Network Bridge dla guest = access DO SIECI LAN i innych maszyn na Twoim LAN. Stwarza to również zwiększone ryzyko bezpieczeństwa, ponieważ teraz Twój komputer gościa jest teraz narażony na maszyny LAN i ewentualnie hakerów internetowych, jeśli zapora nie jest prawidłowo skonfigurowana. Dlatego wybrałem kartę sieciową podłączoną do NAT, aby zmniejszyć ryzyko pomostowe.

Na maszynie gościa wykonaj następujące czynności:

  • Ustawienia sieciowe urządzenia Gościa VirtualBox: Adapter 1: dołączony do NAT
  • Guest Machine VirtualBox Reguła Przekazywania Portów: Nazwa: External_SSH, Protokół:TCP, Host Port: 3022, Guest Port 22, Host & guest IPs: leave blank
  • kliknij advance w sekcji Sieć, a następnie kliknij przekierowanie portów, aby wprowadzić reguły
  • Firewall komputera Gościa: Otwórz port 22 #, aby połączenie ssh mogło wejść
  • Guest Machine: upewnij się, że serwer ssh jest zainstalowany, skonfigurowany poprawnie i działa
  • test Linuksa, aby sprawdzić, czy serwer SSH działa w / poleceniu: sudo service SSH status
  • Może Sprawdzić netstat, czy połączenie zostało wykonane na porcie 22 on the guest machine

Istnieją również różne serwery ssh i klienci w zależności od używanej platformy.

  • wikipedia/Secure_Shell
  • wikipedia/Comparison_of_SSH_servers
  • wikipedia/Comparison_of_SSH_clients

Dla Użytkowników Ubuntu:

  • ubuntu community: SSHOpenSSH/Configuring
  • ubuntu/community: OpenSSH/Keys

To powinno być to. Jeśli popełniłem błąd lub chcę coś dodać-nie krępuj się - nadal jestem noobem.

Mam nadzieję, że to komuś pomoże. Powodzenia!
 5
Author: NoobNet14,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-12 13:37:23

Dla Windows host, można:

  1. w virtualbox manager:
    1. Wybierz ctrl+G w Menedżerze virtualbox,
    2. Następnie przejdź do panelu sieci
    3. Dodaj sieć prywatną
      1. Upewnij się, że aktywacja DHCP nie jest zaznaczona
  2. w zarządzaniu siecią (windows)
    1. Wybierz nowo utworzony Adapter virtualbox host only i fizyczną kartę sieciową
    2. Kliknij prawym przyciskiem myszy i wybierz " Make most"
  3. Enjoy
 5
Author: Alexandre Mélard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-22 04:49:12

Możesz również zainicjować przekierowanie portu do hosta lub dowolnego innego serwera od gościa. Jest to szczególnie przydatne, jeśli gość jest "zablokowany" lub nie może w inny sposób zakończyć opcji ModifyVM (np. brak uprawnień do VBoxManage).

Trzy drobne wymagania to 1) jesteś/możesz zalogować się do Gościa VirtualBox (przez GUI 'konsoli', innego gościa itp.), 2) Masz konto na hosta VirtualBox (lub innym serwerze), oraz 3) przekierowanie SSH i TCP nie jest blokowane.

Może spełnić wymagania 3, są to kroki:

  1. u gościa Uruchom netstat -rn i znajdź adres bramy do domyślnego celu trasy 0.0.0.0. Powiedzmy, że to "10.0.2.2". Ten adres "bramy" jest (jednym z) wirtualnych adresów IP hosta VirtualBox.
  2. na gości, uruchom ssh -R 2222:localhost:22 10.0.2.2 Gdzie "10.0.2.2" jest adres IP serwera VirtualBox-lub-dowolny inny adres IP serwera, który chcesz przenieść do przodu.
  3. na hoście uruchom ssh 10.0.2.2 -p2222 gdzie 10.0.2.2 jest domyślną bramką / vbhost virtual IP Znalezione w kroku 1. Jeśli nie jest to host VirtualBox, do którego przekierowujesz port, to polecenie to ssh localhost -p2222
 4
Author: Andrew,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-24 19:00:42

Wykonaj poniższe kroki, aby zalogować się do maszyny wirtualnej ubuntu działającej w virtual box z komputera hosta za pomocą putty (bez przekierowywania portów):

  1. W Menedżerze Virtualbox wybierz maszynę wirtualną, kliknij ikonę Ustawienia. Następnie przejdź do sieci i włącz dwa adaptery, jak poniżej:

    • Adapter 1( dla dostępu do Internetu): dołączony do -> NAT, zaawansowany -> Sprawdź podłączony kabel.
    • Adapter 2: dołączony do - > adaptera tylko dla hosta, zaawansowany - > Sprawdź podłączony kabel i Tryb Promiscuous - > Allow all.
  2. Uruchom maszynę wirtualną ubuntu.

  3. Zaloguj się do maszyny wirtualnej jako root.
  4. Edytuj plik '/ etc / network / interfaces ' jak poniżej i zapisz go:

    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet dhcp
    
    auto eth1
    iface eth1 inet dhcp
    
  5. Uruchom ponownie maszynę wirtualną.

  6. Zaloguj się do maszyny wirtualnej i uruchom poniższe polecenie, aby sprawdzić adres IP przypisany do eth1:

    ifconfig
    
  7. Użyj tego adresu IP, aby otworzyć sesję putty dla maszyny wirtualnej.

 4
Author: Piyush Raj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-30 04:50:29

Aby ssh do maszyny Wirtualnej Ubuntu działającej w VirtualBox z komputera hosta, musisz skonfigurować dwie karty sieciowe dla maszyny wirtualnej.

Po pierwsze, zatrzymaj maszynę wirtualną, jeśli jeszcze nie.

Następnie wybierz maszynę wirtualną i kliknij menu Ustawienia na pasku narzędzi VirtualBox:

Tutaj wpisz opis obrazka

Ustaw Adapter 1

Tutaj wpisz opis obrazka

Ustaw Adapter 2

Tutaj wpisz opis obrazka

(uwaga: nie musisz konfigurować żadnego portu przekierowanie.)

To wszystko. Po skonfigurowaniu można uruchomić maszynę wirtualną. W maszynie wirtualnej konfiguracja sieci będzie wyglądać następująco:]}

Tutaj wpisz opis obrazka

Również w komputerze hosta można ssh do maszyny wirtualnej:

Tutaj wpisz opis obrazka

Upewnij się, że serwer SSH został zainstalowany i uruchomiony w maszynie wirtualnej.

$ ps aux | grep sshd
root 864 0.1 0.5 65512 5392 ? Ss 22:10 0:00 /usr/sbin/sshd -D

Jeśli nie, zainstaluj:

$ sudo apt-get install openssh-server

Również dla twojej informacji:

  • moja wersja VirtualBox: 5.2.6 r120293 (Qt5.6.2), 2018
  • moja wersja Ubuntu: Ubuntu 16.04.3 LTS
  • My host machine: Windows 10
 4
Author: Yuci,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-10 23:23:56

Dobre wyjaśnienie jak skonfigurować przekierowanie portów za pomocą NAT znajduje się w dokumentach VirtualBox: http://www.virtualbox.org/manual/ch06.html#natforward

 2
Author: rodrunner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-10 11:55:11

Proste ustawienie Ustawienia sieci na bridged załatwiło mi sprawę.

Twoje IP zmieni się, gdy to zrobisz. Jednak w moim przypadku nie zmieniło się to od razu. ifconfig zwrócił ten sam adres ip. Zrestartowałem vm i boom, ip ustawiło się na jeden początek z 192.* i natychmiast pozwolono mi na dostęp ssh.

 0
Author: boulder_ruby,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-10 01:15:21

W bezpiecznych sieciach ustawienie sieci na bridge może nie działać. Administratorzy mogą zezwolić tylko na jeden adres mac na port lub co gorsza zablokować port, jeśli przełączniki wykryją wiele komputerów Mac na jednym porcie.

Moim zdaniem najlepszym rozwiązaniem jest skonfigurowanie dodatkowych interfejsów sieciowych do obsługi dodatkowych usług, które chciałbyś uruchomić na swoich maszynach. Mam więc interfejs mostkowy, aby umożliwić mostkowanie, gdy zabieram laptopa do domu i mogę do niego SSH z innych urządzeń na moim sieć, a także adapter tylko dla hosta, gdy chcę SSH do mojej maszyny Wirtualnej z laptopa, gdy jestem podłączony do sieci WiFi eduroam na kampusie.

 0
Author: tensai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-09 19:14:48

Użyj karty sieciowej NAT i Dodaj port do przodu. Wymień rzeczywistego hosta ip.Do nie używaj 127.0.0.1 lub localhost.

 0
Author: anunaki,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-18 10:44:56