Содержание статьи

Доступ к сетевому порту виртуальной машины в VMware требуется при запуске веб-серверов, баз данных, API-сервисов и тестовых приложений, которые должны принимать входящие соединения. Результат зависит не только от настроек самой виртуальной машины, но и от выбранного сетевого режима, правил проброса портов и конфигурации гостевой операционной системы.
На практике чаще всего используются режимы Bridged и NAT. В Bridged виртуальная машина получает IP-адрес из той же сети, что и хост, и порт становится доступен напрямую. В NAT доступ организуется через port forwarding, где указывается внешний порт хоста и внутренний порт гостевой системы. Ошибка в любом из этих параметров приводит к тому, что сервис запускается, но соединение не устанавливается.
Отдельного внимания требуют настройки брандмауэра внутри гостевой ОС. Даже при корректном пробросе портов VMware входящий трафик будет блокироваться, если порт не разрешён в firewall Windows, iptables или nftables. Поэтому настройка доступа всегда включает проверку состояния сервиса, прослушиваемого порта и правил фильтрации пакетов.
В статье разобраны прикладные шаги: как определить нужный сетевой режим, где настраивается проброс портов в VMware Workstation, какие параметры проверять в гостевой системе и как убедиться, что порт реально доступен с хоста или из внешней сети.
Проверка типа сетевого адаптера виртуальной машины

Тип сетевого адаптера определяет, каким образом виртуальная машина получает IP-адрес и принимает входящие соединения. Перед настройкой доступа к порту нужно точно знать, какой режим используется, так как дальнейшие действия для NAT, Bridged и Host-only отличаются.
Проверка выполняется в настройках виртуальной машины VMware Workstation или VMware Player:
- Полностью выключите виртуальную машину.
- Откройте меню Settings или Edit virtual machine settings.
- Выберите пункт Network Adapter.
- Посмотрите активный режим подключения.
На практике встречаются следующие варианты:
- Bridged – виртуальная машина подключается напрямую к физической сети. Она получает собственный IP от DHCP роутера или сервера. Порты доступны без проброса, как у обычного компьютера.
- NAT – виртуальная машина находится во внутренней сети VMware. Для доступа к порту требуется настройка перенаправления с хоста.
- Host-only – связь возможна только между хостом и виртуальной машиной. Доступ из внешней сети отсутствует.
Дополнительно проверьте, включён ли сетевой адаптер и разрешено ли подключение при запуске:
- Флаг Connected должен быть активен.
- Флаг Connect at power on должен быть включён.
Для подтверждения режима внутри гостевой системы выполните проверку IP-адреса:
- В Linux: ip a или ifconfig.
- В Windows: ipconfig.
Если IP-адрес относится к подсети VMware (например, 192.168.***.* с внутренним шлюзом vmnet), используется NAT или Host-only. Адрес из локальной сети хоста указывает на Bridged. Только после этой проверки имеет смысл переходить к настройке доступа к конкретному порту.
Настройка режима Bridged для прямого доступа к порту
Режим Bridged позволяет виртуальной машине работать как отдельное устройство в локальной сети. В этом случае сервисы внутри гостевой системы принимают входящие соединения напрямую, без проброса портов на уровне VMware.
Для включения Bridged выполните настройку в VMware:
- Выключите виртуальную машину.
- Откройте Edit virtual machine settings.
- Перейдите в раздел Network Adapter.
- Выберите режим Bridged: Connected directly to the physical network.
- При наличии выбора адаптера укажите нужный физический интерфейс хоста.
После запуска виртуальной машины проверьте получение IP-адреса:
- Адрес должен принадлежать той же подсети, что и хост.
- Шлюз и DNS обычно совпадают с параметрами физической сети.
Для стабильной доступности порта рекомендуется закрепить адрес:
- Назначить статический IP в настройках гостевой ОС.
- Либо создать DHCP-резервацию по MAC-адресу виртуального адаптера.
Проверьте, что нужный сервис слушает порт на всех интерфейсах, а не только на 127.0.0.1. В Linux это определяется через ss -lntup, в Windows – через netstat -ano.
Дополнительно убедитесь, что входящий порт разрешён в брандмауэре гостевой системы и не блокируется сетевыми правилами роутера. После этого подключение к сервису выполняется напрямую по IP виртуальной машины и номеру порта.
Настройка режима NAT и проброса портов

В режиме NAT виртуальная машина находится во внутренней сети VMware и не принимает входящие соединения напрямую. Доступ к порту настраивается через перенаправление трафика с хоста на IP и порт гостевой системы.
Для включения NAT выполните настройку сетевого адаптера:
- Выключите виртуальную машину.
- Откройте Edit virtual machine settings.
- В разделе Network Adapter выберите NAT: Used to share the host’s IP address.
Перед созданием правила проброса определите внутренний адрес виртуальной машины:
- В Linux выполните ip a.
- В Windows выполните ipconfig.
- Адрес обычно относится к подсети vmnet8.
Настройка перенаправления портов выполняется через Virtual Network Editor:
- Запустите VMware с правами администратора.
- Откройте Edit → Virtual Network Editor.
- Выберите сеть VMnet8 (NAT).
- Нажмите NAT Settings → Add.
Параметры правила проброса:
| Параметр | Значение |
|---|---|
| Host Port | Порт хоста, на который будет выполняться подключение |
| Type | TCP или UDP в зависимости от сервиса |
| Virtual Machine IP | Внутренний IP виртуальной машины |
| Virtual Machine Port | Порт сервиса внутри гостевой системы |
После сохранения правила проверьте, что сервис внутри виртуальной машины слушает указанный порт и не привязан только к локальному интерфейсу. Брандмауэр гостевой ОС должен разрешать входящий трафик на этот порт.
Подключение к сервису выполняется по адресу хоста и указанному Host Port. Для проверки используйте telnet, nc или браузер в зависимости от типа сервиса.
Добавление правила Port Forwarding в VMware Workstation

Port Forwarding в VMware Workstation применяется при использовании сетевого режима NAT. Правило связывает порт хоста с конкретным IP-адресом и портом виртуальной машины внутри сети VMnet8.
Перед созданием правила убедитесь, что виртуальная машина запущена и имеет постоянный внутренний IP. Адрес можно закрепить в гостевой системе или проверить перед настройкой.
Последовательность действий:
- Запустите VMware Workstation с правами администратора.
- Откройте меню Edit и выберите Virtual Network Editor.
- Выделите сеть VMnet8 с типом NAT.
- Нажмите кнопку NAT Settings.
- В разделе Port Forwarding нажмите Add.
В открывшейся форме укажите параметры:
- Host Port – порт хоста, на который будет выполняться подключение.
- Type – TCP или UDP в соответствии с протоколом сервиса.
- Virtual Machine IP Address – IP виртуальной машины в сети VMnet8.
- Virtual Machine Port – порт сервиса внутри гостевой системы.
Избегайте использования портов, занятых службами хоста, например 80, 443 или 3306. Проверку можно выполнить через netstat или ss на стороне хоста.
После сохранения правила перезапуск виртуальной машины не требуется, но при активных сетевых изменениях иногда помогает перезапуск службы VMware NAT Service. Подключение к сервису выполняется по адресу хоста и указанному порту.
Открытие порта в гостевой операционной системе

Даже при корректной настройке сети VMware входящий трафик блокируется, если порт не разрешён в брандмауэре гостевой ОС. Для работы сервисов нужно добавить правило, позволяющее соединения на конкретный порт.
В Linux с использованием iptables или nftables пример команды для TCP-порта 8080:
iptables -A INPUT -p tcp —dport 8080 -j ACCEPT
или для nftables:
nft add rule inet filter input tcp dport 8080 accept
После добавления правила рекомендуется сохранить конфигурацию, чтобы она применялась после перезагрузки:
- Для iptables: iptables-save > /etc/iptables/rules.v4
- Для nftables: nft list ruleset > /etc/nftables.conf
В Windows откройте Windows Defender Firewall и создайте правило для входящих соединений:
- Выберите Port и укажите номер порта.
- Разрешите соединения для TCP или UDP.
- Укажите профили сети: Private, Public, Domain.
- Сохраните правило и проверьте, что оно активно.
После открытия порта убедитесь, что сервис слушает правильный интерфейс. В Linux это проверяется через ss -lntp, в Windows – через netstat -ano. Порт должен быть доступен на IP виртуальной машины.
Проверка доступности порта с хостовой системы и из сети

После настройки сети и открытия портов важно убедиться, что сервис виртуальной машины действительно доступен. Проверку проводят с хоста и при необходимости из внешней сети.
Для проверки с хостовой системы используйте следующие инструменты:
- telnet: telnet IP_виртуальной_машины PORT. Подходит для TCP-портов.
- nc (netcat): nc -vz IP_виртуальной_машины PORT. Отображает успешное соединение.
- PowerShell в Windows: Test-NetConnection -ComputerName IP -Port PORT.
Если используется NAT с пробросом портов, подключение должно выполняться по IP хоста и указанному Host Port. Для Bridged проверка выполняется напрямую по IP виртуальной машины.
Для проверки из внешней сети:
- Убедитесь, что маршрутизация и правила NAT на роутере позволяют доступ к хосту.
- Используйте онлайн-сервисы проверки портов или nc -vz HOST_IP PORT с удалённой машины.
- Проверьте, что брандмауэр хоста и гостевой ОС не блокирует внешний трафик.
Если соединение не устанавливается, проверьте:
- Сервис на виртуальной машине действительно запущен и слушает указанный порт.
- Правильность IP и порта в настройках VMware и пробросе NAT.
- Брандмауэр гостевой ОС и хоста.
- Сетевые правила роутера и VPN, если они используются.
Только после успешного прохождения этих проверок порт считается доступным для подключения с хоста или из сети.
Типовые причины недоступности порта и способы их устранения

Недоступность порта виртуальной машины чаще всего связана с неправильной конфигурацией сети или блокировкой трафика. Основные причины и методы их устранения:
- Неверный режим сетевого адаптера: если выбран Host-only вместо Bridged или NAT, порт не будет доступен. Решение – проверить настройки Network Adapter и переключить на нужный режим.
- Отсутствие проброса порта в NAT: сервис слушает порт в гостевой системе, но хост не перенаправляет трафик. Решение – добавить правило Port Forwarding через Virtual Network Editor с указанием Host Port и Virtual Machine IP.
- Брандмауэр гостевой ОС: порт заблокирован внутренним firewall. Решение – открыть порт в Windows Firewall или через iptables/nftables в Linux.
- Сервис не слушает нужный интерфейс: сервер настроен только на 127.0.0.1, поэтому внешние подключения невозможны. Решение – настроить прослушивание на 0.0.0.0 или конкретный IP виртуальной машины.
- Используемый порт занят на хосте: проброс невозможен из-за конфликта. Решение – выбрать свободный порт на хосте или остановить службу, использующую этот порт.
- Проблемы маршрутизации и NAT на роутере: для внешнего доступа трафик блокируется сетевыми правилами. Решение – настроить Port Forwarding на роутере или использовать Bridged режим для прямого подключения.
После устранения перечисленных проблем необходимо повторно проверить доступность порта с хоста и из сети с помощью telnet, nc или Test-NetConnection в PowerShell.
Вопрос-ответ:
Как определить, какой сетевой режим использовать для доступа к порту виртуальной машины?
Выбор режима зависит от того, нужно ли, чтобы порт был доступен напрямую из локальной сети или только через хост. В режиме Bridged виртуальная машина получает IP из той же сети, что и хост, и порты доступны напрямую. В режиме NAT доступ выполняется через проброс портов с хоста, а Host-only ограничивает соединение только между хостом и виртуальной машиной.
Почему сервис на виртуальной машине недоступен с хоста, даже если порт проброшен?
Наиболее частая причина — брандмауэр гостевой ОС блокирует входящие соединения. В Linux нужно добавить правило в iptables или nftables, в Windows — создать правило для входящих соединений в Windows Firewall. Также проверьте, что сервис слушает не только 127.0.0.1, а нужный IP виртуальной машины или 0.0.0.0.
Как проверить, что порт виртуальной машины доступен из внешней сети?
Для проверки можно использовать telnet или nc на удалённой машине: nc -vz HOST_IP PORT. Для Windows доступна команда PowerShell: Test-NetConnection -ComputerName HOST_IP -Port PORT. Перед этим убедитесь, что NAT и проброс портов настроены правильно, а брандмауэры хоста и гостя разрешают соединение.
Можно ли использовать один и тот же порт на хосте для нескольких виртуальных машин?
Нет, каждый проброс NAT требует уникального порта хоста. Если два правила указывают один и тот же Host Port, соединения будут конфликтовать. Решение — выбрать разные порты для каждой виртуальной машины или использовать Bridged режим, где проброс не требуется.
Что делать, если виртуальная машина получает IP из подсети VMnet8, но порт всё равно недоступен?
Это указывает на то, что используется NAT, но проброс портов не настроен или сервис заблокирован брандмауэром. Проверьте правила Port Forwarding в Virtual Network Editor и убедитесь, что в гостевой системе порт открыт для входящих соединений. Также убедитесь, что сервис слушает правильный IP и порт.
