Открыть порт ubuntu virtualbox

Обновлено: 29.06.2024

После установки серверного дистрибутива Linux на виртуальную машину VirtualBox вы можете обнаружить, что подключение по SSH не работает. Это связано с тем, что по умолчанию на VirtualBox используется подключение к интернету с помощью NAT.

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

В данной статье мы рассмотрим сразу два способа, как можно решить эту проблему. Первый вариант – проброс портов через NAT, а второй – использование сетевого моста. Оба этих способа сохраняют доступ к интернету на виртуальной машине.

Проброс портов для SSH

Для проброса портов вам нужно знать IP адрес, который присваивается виртуальной машине. Для этого запустите виртуальную машину и выполните на ней команду « ifconfig ». В ответ вы получите информацию о сетевых подключениях, в которой будет указан и IP адрес. В нашем случае был получен IP адрес – « 10.0.2.15 ».

Обратите внимание, если в вашей системе нет команды « ifconfig », то ее нужно будет установить отдельно. В случае Debian и Ubuntu Linux это можно сделать с помощью команды « apt-get install net-tools ».

выполнение команды ifconfig

После того как мы узнали IP адрес виртуальную машину нужно выключить и открыть ее настройки в программе VirtualBox.

переход к настройкам виртуальной машины

В настройках виртуальной машины нужно открыть раздел « Сеть », открыть дополнительные настройки и перейти к пробросу портов.

проброс портов в настройках

После этого откроется окно для проброса портов. Здесь нужно нажать на кнопку « Добавить » и заполнить следующие данные:

  • Имя : SSH.
  • Протокол : TCP.
  • Адрес хоста : оставляем пустым или указываем 127.0.0.1.
  • Порт хоста : любой свободный порт на вашей основной системе, например, 2222.
  • Адрес гостя : IP адрес, который был присвоен вашей виртуальной машине. В нашем случае это 10.0.2.15.
  • Порт гостя : порт SSH на виртуальной машине, по умолчанию – 22.

После проброса порта закрываем все окна с помощью кнопки « ОК ».

проброс портов для ssh

После этого можно подключаться к виртуальной машине по SSH. Для этого можно использовать клиент OpenSSH, который доступен в Windows 10. Поскольку порт « 2222 » на основной системе был проброшен на порт « 22 » на виртуальной машине, то для подключения по SSH нам нужно выполнить следующую команду:

подключение к ssh через openssh

подключение к ssh через putty

Как видно по скриншоту вверху, данный способ отлично работает, и мы успешно подключились по SSH к виртуальной машине VirtualBox.

Подключение через сетевой мост

Также есть альтернативный способ подключения к виртуальной машине по SSH для этого нужно изменить тип подключения с « NAT » на « Сетевой мост ». В этом случае виртуальная машина будет подключена к вашей локальной сети и получит IP адрес от вашего роутера из того же диапазона, что и ваша основная система.

Для этого нужно выключить виртуальную машину и зайти в ее свойства в программе VirtualBox. В настройках нужно зайти в раздел « Сеть » и включить тип подключения « Сетевой мост ».

переключение на сетевой мост

После этого нужно запустить виртуальную машину и выполнить на ней команду « ifconfig » для того, чтобы узнать, какой IP адрес она получила от роутера. В нашем случае был получен IP адрес « 192.168.1.214 ».

выполнение команды ifconfig

После этого к виртуальной машине можно подключаться по SSH. Для этого нужно просто использовать IP адрес, который был ей присвоен роутером. Например, для того чтобы подключиться с помощью клиента OpenSSH нужно выполнить следующую команду:

Где « user » — это имя пользователя, а « 192.168.1.214 » — это ее IP адрес.

подключение к ssh через openssh

Аналогично работает и подключение с помощью PuTTY. Вводим « 192.168.1.214 » и подключаемся по стандартному порту « 22 ».

подключение к ssh через putty

Как и предыдущий способ, вариант с использованием сетевого моста отлично работает, при этом виртуальная машина не теряет доступа к интернету.

VirtualBox - одна из самых популярных сред виртуализации, которые используются для запуска различных операционных систем. И довольно часто случается ситуация, что вам необходимо получить доступ к какому-либо сервису гостевой системы из основной, например, веб-серверу или ssh. Но по умолчанию сетевые интерфейсы изолированы и такой возможности нет.

Для решения этой задачи можно пойти двумя путями. Мы можем пробросить необходимый порт виртуальной машины в основную систему или же выдать виртуальной машине отдельный IP адрес, что позволит обращаться к любым ее портам и использовать любые сетевые возможности. В этой небольшой статье мы рассмотрим проброс портов virtualbox двумя способами. Начнем с более простого.

Проброс портов в VirtualBox

По умолчанию для настройки сети для виртуальной машины используется технология NAT. С помощью нее вы можете просматривать интернет-сайты и выполнять различные действия в сети, но вы не будете видеть ваш основной компьютер. Для виртуальной машины создается виртуальная сеть, в которой есть только она одна, а ваша домашняя сеть и ваш компьютер ей не виден.

Но если вам нужно получить доступ к какому-либо сервису гостевой машины, то можно пробросить порт этого сервиса в основную систему. Так работают порты VirtualBox. Для этого откройте контекстное меню для машины и нажмите "Настройки":


Затем перейдите на вкладку "Сеть", а потом разверните строчку "Дополнительно":


Тут вам нужно нажать кнопку "Проброс портов":

Дальше нажмите кнопку с зеленым значком "+". Тут нужно заполнить несколько полей:

  • Имя - любое имя, по которому вы сможете понять с чем имеете дело;
  • Протокол - протокол, по которому работает сервис, например, tcp;
  • Адрес хоста - адрес на основной машине, подключения к которому будут направляться на виртуальную машину, можно написать 127.0.0.1 или ip в локальной сети;
  • Порт хоста - порт, подключения к которому нужно перенаправлять на гостя;
  • Адрес гостя - на который нужно направлять подключения, оставьте пустым;
  • Порт гостя - порт, на который будут перенаправлены подключения с этого порта.

Адрес хоста в локальной сети можно узнать так:

Еще один важный момент, что порт с которого вы перенаправляете и на который перенаправляете не должны совпадать. Странное дело, но если перенаправлять с порта 80 на 80, то работать все это не будет. Нужно использовать 8080 на 80. Тогда все в порядке. Если вы не любитель много кликать, что можно воспользоваться командной терминала:

VBoxManage modifyvm "Имя машины" --natpf1 "rulename,tcp,127.0.0.1,8080,,80"

В этом примере взяты данные из рассмотренного выше примера. Теперь на хосте и виртуальной машине откроется одна и та же страница.


Проброс портов virtualbox nat работает.

Виртуальный адаптер хоста VirtualBox

Еще один способ получить доступ к виртуальной машине извне - использовать виртуальный адаптер хоста. Тут вы можете настроить все более подробно, а также получить отдельный ip для машины, что дает больше возможностей. Сначала нужно создать виртуальный адаптер. Для этого откройте меню "Файл", затем "Настройки":


Тут нужно перейти на вкладку "Сеть", затем "Виртуальные адаптеры":


Дальше нажмите кнопку "+", чтобы в списке появился пункт vboxnet0. Тут готово, нажмите несколько раз "Ok" чтобы закрыть это окно. Дальше откройте контекстное меню вашей виртуальной машины, потом "Настроить", а затем "Сеть":

Тут вам нужно в выпадающем списке заменить "NAT" на "Виртуальный адаптер хоста". В поле имя, выберите "vboxnet0":


Теперь можете запускать виртуальную машину и смотреть ее ip адрес:


По нему гостевая система будет доступной из внешней. Внешняя система теперь тоже полностью доступна из гостевой по адресу 192.168.56.1:



Выводы

В этой небольшой статье мы рассмотрели как выполняется проброс портов VirtualBox, это может быть очень полезным, если вы часто работаете с виртуальными машинами. Если у вас остались вопросы, спрашивайте в комментариях!

В данной статье мы с Вами рассмотрим возможность программы VirtualBox пробрасывать порты в гостевую операционную систему, для того чтобы иметь доступ к ней с хоста, т.е. с реальной машины, например, в тех случаях, когда подключение (сеть) в гостевой ОС в VirtualBox работает в режиме «NAT».

Данная возможность будет полезна, например, когда Вам нужен одновременно и доступ к Интернету в гостевой операционной системе, и доступ к каким-нибудь сервисам в гостевой ОС с хоста.

Доступ к Интернету в гостевой ОС можно получить с помощью выбора типа подключения «NAT», но как Вы, наверное, знаете, при этом теряется доступ к сервисам гостевой ОС с реального Вашего компьютера. Данную проблему как раз и решает проброс портов.

Рассматривать проброс портов мы будем на примере случая, когда Вы создали виртуальную машину в VirtualBox и установили в нее серверную операционную систему, например Linux Ubuntu Server, при этом Вы настроили сеть в режиме NAT для доступа в Интернет, но доступа к гостевой операционной системе (Ubuntu Server) у Вас нет. Например, Вы не можете подключиться к ней по SSH со своего компьютера, или обратиться к Web серверу, или даже просто скопировать команду и вставить в консоль. Поэтому давайте пробросим порт в гостевую ОС, например, для того чтобы подключится к ней по SSH всем известной программой PuTTY. С помощью нее мы сможем без проблем управлять сервером и в случае необходимости копировать команды в нее.

Настройка проброса портов в VirtualBox для SSH

SSH – сервер обычно прослушивает 22 порт, поэтому нам необходимо пробросить подключение именно на 22 порт.

Шаг 1

Для того чтобы пробросить порт, запускаем VirtualBox и заходим в настройки нашей виртуальной машины с Ubuntu Server. Например, выбираем нужную машину и нажимаем кнопку «Настроить», данный пункт также доступен, если нажать правой кнопкой мыши по выбранной виртуальной машине.

Скриншот 1

Шаг 2

Скриншот 2

Шаг 3

Далее щелкаем на пункт «Дополнительно», чтобы отобразить дополнительные настройки данного адаптера, и после этого нажимаем на кнопку «Проброс портов».

Скриншот 3

Шаг 4

В итоге у нас откроется окно «Правила проброса портов». Для добавления нового правила нажимаем на иконку с плюсиком.

Скриншот 4

Шаг 5

На данном этапе Вы уже должны знать IP адрес гостевой операционной системы и порт, который прослушивает SSH сервер (по умолчанию это 22 порт). В Ubuntu Server IP адрес можно узнать с помощью команды ifconfig (по умолчанию это 10.2.0.15).

Описание колонок таблицы с правилами:

  • Имя – название правила, в нашем случае разумно назвать SSH;
  • Протокол – протокол, по которому будет происходить взаимодействие. В обычных случаях это – TCP;
  • IP хоста – IP адрес Вашего реального компьютера, можно указать 127.0.0.1 или оставить данное поле пустым;
  • Порт хоста – любой свободный порт Вашего компьютера, который будет использоваться для перенаправления на нужный порт в гостевой ОС. Я указал 2222;
  • IP гостя – здесь указываем IP адрес гостевой операционной системы на который будет происходить перенаправление, в моем случае это 10.2.0.15;
  • Порт гостя – порт гостевой ОС, на который нам необходимо пробрасывать наши запросы. В нашем случае это 22 порт, который прослушивает SSH сервер.

После заполнения таблицы с правилом, нажимаем «ОК».

Скриншот 5

Шаг 6

На этом настройка проброса портов закончена, теперь мы можем проверить работу данного правила (проброса). Для этого сначала запускаем виртуальную машину с Ubuntu Server, а затем программу PuTTY. На вкладке Session выбираем тип соединения SSH и в поле Host Name пишем локальный адрес компьютера (хоста), которой мы указывали в колонке «IP хоста» в правилах проброса портов, если ничего не указывали, то пишите 127.0.0.1. В поле порт указываем номер порта, который мы указывали в колонке «Порт хоста», т.е. 2222. Нажимаем кнопку «Open».

Скриншот 6

Если после этого Вы получили приглашение на ввод логина, то это значит, что подключение работает, и Вы, соответственно, можете вводить учетные данные от гостевой операционной системы.

Проброс портов в VirtualBox

Проброс портов в виртуальную машину VirtualBox требуется, чтобы получить доступ к сетевым службам гостевой ОС из внешних источников. Этот вариант предпочтительнее, чем смена типа подключения на режим моста (bridge), поскольку пользователь может сам выбирать, какие порты открыть, а какие оставить закрытыми.

Настройка проброса портов в VirtualBox

Данная функция настраивается для каждой машины, созданной в VirtualBox, в индивидуальном порядке. При правильной настройке обращения к порту хостовой ОС будет перенаправляться к гостевой системе. Это может быть актуально, если на виртуальной машине необходимо поднять сервер или домен, доступный для обращения из сети интернет.

Если вы используете файрвол, все входящие подключения к портам должны быть в списке разрешенных.

Для реализации такой возможности тип подключения должен быть NAT, который используется в VirtualBox по умолчанию. При других типах подключения проброс портов не используется.

  1. Запустите VirtualBox Менеджер и зайдите в настройки своей виртуальной машины.
  • Имя — любое;
  • Протокол — TCP (UDP используется в редких случаях);
  • Адрес хоста — IP хостовой ОС;
  • Порт хоста — порт хостовой системы, который будет использоваться для входа в гостевую ОС;
  • Адрес гостя — IP гостевой ОС;
  • Порт гостя — порт гостевой системы, куда будут перенаправляться запросы с хостовой ОС, отправленные по порту, указанному в поле «Порт хоста».

Перенаправление работает только тогда, когда виртуальная машина запущена. При отключенной гостевой ОС все обращения к портам хост-системы будут обрабатываться ей же.

Заполнение полей «Адрес хоста» и «Адрес гостя»

При создании каждого нового правила для проброса портов, желательно заполнять ячейки «Адрес хоста» и «Адрес гостя». Если нет необходимости в конкретизации IP-адресов, то поля можно оставить пустыми.

Чтобы работать с определенными IP, в «Адрес хоста» требуется вписать адрес локальной подсети, полученный от роутера, или прямой IP хост-системы. В «Адрес гостя» необходимо прописать адрес гостевой системы.

В обоих типах операционных систем (хостовая и гостевая) IP можно узнать одинаково.

После выполненных настроек не забудьте проверить, будут ли работать проброшенные порты.

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Имеется виртуальная среда (VirtualBox) с поднятой операционной системой Ubuntu 10.10 расположенная за NAT.

Ubuntu 10.10 \n \l

Посмотреть это можно открыв свойства виртуальной машины, далее перейти в пункт «Сеть», как указано на скриншоте ниже.

Виртуальная машина за NAT

Сетевой адрес виртуальной машины:

$ ifconfig eth0

eth0 Link encap:Ethernet HWaddr 08:00:27:0b:36:ff

inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0

Для решения этой задачи нужно будет настроить «Проброс портов». Проброс портов широко используется для тестирования и разработки, но можно его использовать и для предоставления какого-нибудь сервиса с виртуальной машины.

, через “+” настраиваются дополнительные правила.

Здесь нужно прописать:

IP адрес хоста (т.е. машины где установлена система VirtualBox – это 127.0.0.1)

Порт хоста – любой свободный.

IP гостя – адрес внутри виртуальной машины (10.0.2.15)

Порт гостя (Сервис к которому мы хотим получиться доступ – Port 22 – SSH)

Настраиваем правило проброса портов.

На этом настройка завершена. Протестируем подключение через Putty.

Во вкладке «Session» указываем IP адрес нашей локальной машины (127.0.0.1) и порт (2555).

Конфигурируем Putty клиент для подключение к машине находящейся за NAT

Во вкладке «Translation» указываем кодировку подключения – «UTF-8»

Во вкладке «Tunnels» настроим туннель для подключения: порт назначения и ip-адрес машины за nat.

Настраиваем туннель к NAT

Произведем подключение в виртуальной машине:

Настройка завершено. Окно подключения к виртуальной машине.

Данные по системе Ubuntu:

eth0 Link encap:Ethernet HWaddr 08:00:27:0b:36:ff

inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0

inet addr:127.0.0.1 Mask:255.0.0.0

Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:

Поблагодари автора и новые статьи

будут появляться чаще :)

Карта МКБ: 4432-7300-2472-8059

Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.

Читайте также: