Как подключиться по SSH к виртуальной машине VirtualBox оценки извне через хост?



У меня есть Ubuntu VM работает на моей машине Windows 7. Как настроить его так, чтобы я мог получить доступ к веб-серверу извне через SSH?



Я нашел шаги (настройка SSH доступа между хостом VirtualBox и гостевыми виртуальными машинами), чтобы иметь возможность ssh для моего гостя с моего хоста, но это все еще оставляет меня с проблемой доступа к нему через мой маршрутизатор.



Я полагаю, что я мог бы установить SSH-сервер на моей машине Windows, а затем туннелировать несколько раз (хотя я не уверен на 100% , что использовать с точки зрения локального, динамического и т. д. или как настроить несколько туннелей?), но есть ли способ сделать виртуальную машину непосредственно доступной для моего маршрутизатора, чтобы я мог напрямую подключиться к ней?

1441   14  

14 ответов:

лучший способ войти в гостевую виртуальную машину Linux VirtualBox-это переадресация портов. По умолчанию, у вас уже должен быть один интерфейс, который использует нац. Тогда идите в сеть настройки и нажмите кнопку Переадресация Портов. Добавить новый правила. Как правило, вставка "СШ". Как" порт Хоста", вставьте 3022. В качестве "гостевой порт" вставить 22. Все остальное правило можно оставить пустым.

или от командная строка

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

где 'myserver' - это имя созданной виртуальной машины. Проверьте добавленные правила:

VBoxManage showvminfo myserver | grep 'Rule'

вот и все! Пожалуйста, убедитесь, что вы не забыли установить SSH сервер в виртуальной машине:

sudo apt-get install openssh-server

для SSH в гостевой виртуальной машине, напишите:

ssh -p 3022 [email protected]

здесь user - это ваше имя пользователя в виртуальной машине.

измените тип адаптера в VirtualBox на мостовой и установите гостевой для использования DHCP или установить статический IP-адрес вне границ DHCP. Это приведет к тому, что виртуальная машина будет действовать как обычный гость в вашей домашней сети. Затем вы можете перенести вперед.

сохранение адаптера NAT и добавление второго адаптера только для хоста работает потрясающе и имеет решающее значение для ноутбуков (где внешняя сеть всегда меняется).

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

Не забудьте создать сеть только для хоста в самом virtualbox (GUI -> Настройки -> Сеть), в противном случае вы не можете создать интерфейс только для хоста на госте.

как сделать сеть только для хоста (лучше чем мост) для Solaris 10 и Ubuntu 16.04

добавить интерфейс только для хоста

  1. Virtualbox > File > Preferences > Network > Host-only Networks > Add
  2. выключение виртуальной машины.
  3. настройки виртуальной машины > сеть. Первый адаптер должен быть Nat,второй хост-только.
  4. запустить cmd.exe и запустите ipconfig /all. Вы должны увидеть строки:

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

    второй адаптер в гостях также должен быть в 192.168.59.*.

  5. запуск виртуальной машины.

Солярис 10

  1. Регистрация настройкиifconfig -a. Вы должны увидеть e1000g0 и e1000g1. Мы заинтересованы в e1000g1.
  2. ifconfig e1000g down
  3. ifconfig e1000g 192.168.56.10 netmask 255.255.255.0 up
  4. Проверьте от хоста, если этот интерфейс доступен:ping 192.168.56.10

сохранить эти настройки по перезагрузка

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

настроить ssh сервис (администрирование) для входа в систему как root (не рекомендуется)

проверьте, включен ли ssh

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

изменить /etc / ssh / sshd_config так что есть

PermitRootLogin yes

перезапустить службу ssh

svcadm restart ssh

от ведущего его

ssh [email protected]

Ubuntu 16.04

интерфейсы:

ip addr

вы должны увидеть три интерфейса, как lo, enp0s3, enp0s8. Мы будем использовать третий.

Edit /etc / network / interfaces

auto enp0s8
iface enp0s8 inet static
    address 192.168.56.10
    netmask 255.255.255.0

затем sudo ifup enp0s8. Проверьте, если enp0s8 получил правильный адрес. Вы должны увидеть свой ip:

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

если нет, вы можете запустить sudo ifdown enp0s8 && sudo ifup enp0s8

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

вы также можете использовать Сетевой Мост (или" переходник моста", в более новых версиях) в настройки сети. Это поместит вашу виртуальную машину в VLAN с вашей машиной. Таким образом, вы можете просто ssh в виртуальную машину, как это.

ssh user@IP_OF_VM

SSH обратно в ваш дом / офис VirtualBox гостевой машины из интернета

ответы, предоставленные другими пользователями здесь:How to SSH to a VirtualBox guest externally through a host?

... помог мне выполнить задачу подключения из интернета к гостевой машине моего домашнего компьютера. Вы должны иметь возможность подключаться с помощью компьютеров, планшетов и смартфонов (android, IPhone и т. д.). Я добавляю еще несколько шагов, если это может быть полезно кому-то еще:

вот краткая схема Мои настройки:

  • 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)

ключом для меня было понять, что все соединения были PASSING-THROUGH промежуточные устройства для перехода с моего удаленного компьютера на мою гостевую виртуальную машину дома-следовательно, переадресация портов!

заметки: * Нужен SSH клиент с просьбой безопасное соединение и сервер SSH для безопасного процесса соединение.

  • я перешлю порт 3022, как используется в выбранном ответе сверху.

  • введите свой ИПС, где это необходимо (домашний модем/роутер, IP адрес, Ваш IP и т. д.), Выбранные имена являются лишь примерами-использование или изменение.

1.Создайте ssh-туннель для порта 3022 на внешнем IP-адресе вашего модема / маршрутизатора.

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

2.Порт вперед = мы проходим через соединение от маршрутизатора до хост-машины

  • также убедитесь, что правила брандмауэра / IPtable на маршрутизаторе позволяют портам быть вперед (открыть при необходимости)

  • экран Pfwd маршрутизатора необходимые записи: AppName:SSH_Fwd, Port_from: 3022, протокол: оба (UDP / TCP), IP_address:hostIP_address, Port_to:3022, все остальное может быть пустым

программные ресурсы маршрутизатора DD-WRT / Информация:

3.Брандмауэр хост-машины: откройте порт 3022 #, чтобы перенаправленный порт мог пройти через гостевую машину

  • хост-машина: установите VirtualBox, гостевые дополнения и гостевую машину, если это еще не сделано

  • настройка гостевой машины, а затем следуйте инструкциям Раздел сети ниже

  • я использовал графический интерфейс VirtualBox для настройки гостевой сети-проще, чем CLI

  • если вы хотите использовать другие методы относятся к : VirtualBox/manual/ch06.html#natforward

4.Некоторые предлагают использовать адаптер сетевого моста для гостевой = доступ к локальной сети и другим машинам в вашей локальной сети. Это также создает повышенную угрозу безопасности, потому что теперь ваша гостевая машина теперь подвергается воздействию компьютеров LAN и, возможно, интернет-хакеров, если брандмауэр не настроен должным образом. Поэтому я выбрал сетевой адаптер, подключенный к NAT, для меньшего воздействия на мостовые риски безопасности.

на гостевой машине выполните следующие действия:

  • настройки сети VirtualBox гостевой машины: адаптер 1: подключен к NAT
  • правило перенаправления портов VirtualBox гостевой машины: имя: External_SSH, протокол: TCP, порт Хоста: 3022, гостевой порт 22, хост и гостевой IPs: оставьте пустым
  • нажмите на заранее в разделе сети, затем нажмите при переадресации портов ввести правила
  • Брандмауэр гостевой машины: откройте порт 22 #, чтобы ssh-соединение могло войти
  • гостевая машина: убедитесь, что сервер ssh установлен, настроен правильно и работает
  • тест LINUX, чтобы увидеть, работает ли ssh-сервер с командой: sudo service ssh status
  • можно проверить netstat, чтобы увидеть, если подключение к порту 22 на гостевой машине

также существуют различные ssh-серверы и клиенты в зависимости на платформе, используя.

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

Для Пользователей Ubuntu:

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

так и должно быть. Если я сделал ошибку или хочу что-то добавить-не стесняйтесь делать это-я все еще нуб.

надеюсь, это кому-то поможет. Удачи вам!

для хоста Windows, вы можете :

  1. в VirtualBox manager:
    1. выберите ctrl+G в Вашем менеджере virtualbox,
    2. затем перейдите к сетевой панели
    3. добавить частную сеть
      1. убедитесь, что параметр активировать DHCP не выбран
  2. в сетевом управлении (windows)
    1. выберите вновь созданный адаптер virtualbox host only и физическая сетевая карта
    2. щелкните правой кнопкой мыши и выберите "сделать мост"
  3. наслаждайтесь

вы также можете инициировать переадресацию порта на ваш хост или любой другой сервер с Вашего гостя. Это особенно полезно, если ваш гость "заблокирован" или не может иначе завершить опцию ModifyVM (например, нет разрешения на VBoxManage).

три второстепенных требования: 1) Вы / можете войти в гостевой VirtualBox (через графический интерфейс "консоль", другой гость и т. д.), 2) у вас есть учетная запись на хосте VirtualBox (или другом сервере) и 3) пересылка SSH и TCP не блокируется.

предполагая, что вы можете выполнить 3 требования, эти шаги:

  1. на гостя, беги netstat -rn и найти адрес шлюза для назначения маршрута по умолчанию 0.0.0.0. Допустим это "10.0.2.2". Этот адрес "шлюза" является (одним из) виртуальных IP-адресов Хоста VirtualBox.
  2. на гостя, беги ssh -R 2222:localhost:22 10.0.2.2 где "10.0.2.2" - это IP-адрес сервера VirtualBox или любой другой IP-адрес сервера, на который вы хотите перенаправить порт.
  3. на хосте запустите ssh 10.0.2.2 -p2222 где 10.0.2.2-это виртуальный IP-адрес шлюза/VBHost по умолчанию, найденный на шаге 1. Если это не узел VirtualBox, на который вы перенаправляете порт, то команда ssh localhost -p2222

выполните следующие действия, чтобы войти в свою виртуальную машину ubuntu, работающую в виртуальном поле с хост-машины, используя putty (без переадресации портов):

  1. в VirtualBox manager выберите виртуальную машину, нажмите на значок настроек. Затем перейдите в Сеть и включите два адаптера, как показано ниже:

    • адаптер 1 (для доступа в интернет): прилагается к -> NAT, дополнительно -> Проверьте подключенный кабель.
    • адаптер 2: прилагается к - > адаптер только для хоста, расширенный -> Проверьте подключенный кабель и беспорядочный режим -> разрешить все.
  2. запустите виртуальную машину ubuntu.

  3. войдите в виртуальную машину как root.
  4. отредактируйте файл '/etc / network / interfaces ' как показано ниже и сохраните его:

    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet dhcp
    
    auto eth1
    iface eth1 inet dhcp
    
  5. перезагрузите виртуальную машину.

  6. войдите в виртуальную машину и выполните команду ниже, чтобы проверить IP, выделенный eth1:

    ifconfig
    
  7. используйте этот IP для открытия сеанс шпатлевки для виртуальной машины.

для ssh к виртуальной машине Ubuntu, работающей в VirtualBox с вашего хост-компьютера, вам нужно настроить два сетевых адаптера для виртуальной машины.

прежде всего, остановите виртуальную машину, если еще нет.

затем выберите виртуальную машину и нажмите Меню Настройки на панели инструментов VirtualBox:

enter image description here

настройка адаптера 1

enter image description here

настройки адаптера 2

enter image description here

(Примечание: вам не нужно настраивать проброс портов.)

вот именно. После настройки можно запустить виртуальную машину. В вашей виртуальной машине конфигурация сети будет выглядеть следующим образом, и у вас также будет доступ в интернет:

enter image description here

также на вашем хост-компьютере вы можете использовать ssh для своей виртуальной машины:

enter image description here

убедитесь, что сервер SSH был установлен и работает в виртуальной машине.

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

Если нет, то установите его:

$ sudo apt-get install openssh-server

также для вашего сведения:

  • моя версия VirtualBox: 5.2.6 r120293 (Qt5.6.2), 2018
  • моя версия Ubuntu: Ubuntu 16.04.3 LTS
  • моя хост-машина: Windows 10

хорошее объяснение о том, как настроить переадресацию портов с помощью NAT, находится в документах VirtualBox: http://www.virtualbox.org/manual/ch06.html#natforward

просто установив сетевую настройку на мост сделал трюк для меня.

ваш IP изменится, когда вы сделаете это. Однако в моем случае это не изменилось сразу. ifconfig вернул тот же ip. Я перезагрузил виртуальную машину и бум, ip установил себя на один старт с 192.* и мне сразу же разрешили доступ по ssh.

в сети настройки сети на мост может не работать. Администраторы могут разрешить только один mac-адрес на порт или, что еще хуже, заблокировать порт, если коммутаторы обнаружат несколько Mac на одном порту.

лучшим решением на мой взгляд является установка дополнительных сетевых интерфейсов для обработки дополнительных услуг, которые вы хотели бы запустить на своих компьютерах. Поэтому у меня есть интерфейс моста, чтобы обеспечить мост, когда я беру свой ноутбук домой и могу SSH в него с других устройств моя сеть, а также хост-адаптер только тогда, когда я хотел бы SSH в мою виртуальную машину с моего ноутбука, когда я подключен к сети eduroam wifi на территории кампуса.

используйте сетевой адаптер NAT и добавьте порт вперед. Учтите, фактический адрес ИС.Не использовать 127.0.0.1 или localhost.

Comments

    Ничего не найдено.