Открыть порт 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 ».
После того как мы узнали IP адрес виртуальную машину нужно выключить и открыть ее настройки в программе VirtualBox.
В настройках виртуальной машины нужно открыть раздел « Сеть », открыть дополнительные настройки и перейти к пробросу портов.
После этого откроется окно для проброса портов. Здесь нужно нажать на кнопку « Добавить » и заполнить следующие данные:
- Имя : SSH.
- Протокол : TCP.
- Адрес хоста : оставляем пустым или указываем 127.0.0.1.
- Порт хоста : любой свободный порт на вашей основной системе, например, 2222.
- Адрес гостя : IP адрес, который был присвоен вашей виртуальной машине. В нашем случае это 10.0.2.15.
- Порт гостя : порт SSH на виртуальной машине, по умолчанию – 22.
После проброса порта закрываем все окна с помощью кнопки « ОК ».
После этого можно подключаться к виртуальной машине по SSH. Для этого можно использовать клиент OpenSSH, который доступен в Windows 10. Поскольку порт « 2222 » на основной системе был проброшен на порт « 22 » на виртуальной машине, то для подключения по SSH нам нужно выполнить следующую команду:
Как видно по скриншоту вверху, данный способ отлично работает, и мы успешно подключились по SSH к виртуальной машине VirtualBox.
Подключение через сетевой мост
Также есть альтернативный способ подключения к виртуальной машине по SSH для этого нужно изменить тип подключения с « NAT » на « Сетевой мост ». В этом случае виртуальная машина будет подключена к вашей локальной сети и получит IP адрес от вашего роутера из того же диапазона, что и ваша основная система.
Для этого нужно выключить виртуальную машину и зайти в ее свойства в программе VirtualBox. В настройках нужно зайти в раздел « Сеть » и включить тип подключения « Сетевой мост ».
После этого нужно запустить виртуальную машину и выполнить на ней команду « ifconfig » для того, чтобы узнать, какой IP адрес она получила от роутера. В нашем случае был получен IP адрес « 192.168.1.214 ».
После этого к виртуальной машине можно подключаться по SSH. Для этого нужно просто использовать IP адрес, который был ей присвоен роутером. Например, для того чтобы подключиться с помощью клиента OpenSSH нужно выполнить следующую команду:
Где « user » — это имя пользователя, а « 192.168.1.214 » — это ее IP адрес.
Аналогично работает и подключение с помощью PuTTY. Вводим « 192.168.1.214 » и подключаемся по стандартному порту « 22 ».
Как и предыдущий способ, вариант с использованием сетевого моста отлично работает, при этом виртуальная машина не теряет доступа к интернету.
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. Например, выбираем нужную машину и нажимаем кнопку «Настроить», данный пункт также доступен, если нажать правой кнопкой мыши по выбранной виртуальной машине.
Шаг 2
Шаг 3
Далее щелкаем на пункт «Дополнительно», чтобы отобразить дополнительные настройки данного адаптера, и после этого нажимаем на кнопку «Проброс портов».
Шаг 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 сервер.
После заполнения таблицы с правилом, нажимаем «ОК».
Шаг 6
На этом настройка проброса портов закончена, теперь мы можем проверить работу данного правила (проброса). Для этого сначала запускаем виртуальную машину с Ubuntu Server, а затем программу PuTTY. На вкладке Session выбираем тип соединения SSH и в поле Host Name пишем локальный адрес компьютера (хоста), которой мы указывали в колонке «IP хоста» в правилах проброса портов, если ничего не указывали, то пишите 127.0.0.1. В поле порт указываем номер порта, который мы указывали в колонке «Порт хоста», т.е. 2222. Нажимаем кнопку «Open».
Если после этого Вы получили приглашение на ввод логина, то это значит, что подключение работает, и Вы, соответственно, можете вводить учетные данные от гостевой операционной системы.
Проброс портов в виртуальную машину VirtualBox требуется, чтобы получить доступ к сетевым службам гостевой ОС из внешних источников. Этот вариант предпочтительнее, чем смена типа подключения на режим моста (bridge), поскольку пользователь может сам выбирать, какие порты открыть, а какие оставить закрытыми.
Настройка проброса портов в VirtualBox
Данная функция настраивается для каждой машины, созданной в VirtualBox, в индивидуальном порядке. При правильной настройке обращения к порту хостовой ОС будет перенаправляться к гостевой системе. Это может быть актуально, если на виртуальной машине необходимо поднять сервер или домен, доступный для обращения из сети интернет.
Если вы используете файрвол, все входящие подключения к портам должны быть в списке разрешенных.
Для реализации такой возможности тип подключения должен быть NAT, который используется в VirtualBox по умолчанию. При других типах подключения проброс портов не используется.
- Запустите VirtualBox Менеджер и зайдите в настройки своей виртуальной машины.
- Имя — любое;
- Протокол — TCP (UDP используется в редких случаях);
- Адрес хоста — IP хостовой ОС;
- Порт хоста — порт хостовой системы, который будет использоваться для входа в гостевую ОС;
- Адрес гостя — IP гостевой ОС;
- Порт гостя — порт гостевой системы, куда будут перенаправляться запросы с хостовой ОС, отправленные по порту, указанному в поле «Порт хоста».
Перенаправление работает только тогда, когда виртуальная машина запущена. При отключенной гостевой ОС все обращения к портам хост-системы будут обрабатываться ей же.
Заполнение полей «Адрес хоста» и «Адрес гостя»
При создании каждого нового правила для проброса портов, желательно заполнять ячейки «Адрес хоста» и «Адрес гостя». Если нет необходимости в конкретизации IP-адресов, то поля можно оставить пустыми.
Чтобы работать с определенными IP, в «Адрес хоста» требуется вписать адрес локальной подсети, полученный от роутера, или прямой IP хост-системы. В «Адрес гостя» необходимо прописать адрес гостевой системы.
В обоих типах операционных систем (хостовая и гостевая) IP можно узнать одинаково.
После выполненных настроек не забудьте проверить, будут ли работать проброшенные порты.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Имеется виртуальная среда (VirtualBox) с поднятой операционной системой Ubuntu 10.10 расположенная за NAT.
Ubuntu 10.10 \n \l
Посмотреть это можно открыв свойства виртуальной машины, далее перейти в пункт «Сеть», как указано на скриншоте ниже.
Сетевой адрес виртуальной машины:
$ 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).
Во вкладке «Translation» указываем кодировку подключения – «UTF-8»
Во вкладке «Tunnels» настроим туннель для подключения: порт назначения и ip-адрес машины за 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.
Читайте также: