Чтобы ESXi работал с vCenter и пускал администратора к управлению, на пути трафика должны быть открыты два порта: 443 (TCP, веб-интерфейс, API и vSphere Client) и 902 (TCP и UDP, связь vCenter с хостом и консоли виртуальных машин). Этого достаточно для базового управления одним хостом. Всё остальное - SSH, синхронизация времени, миграция vMotion, общее хранилище, кластер - добавляет свои порты по мере того, как вы включаете эти функции.
Ниже - полная таблица портов ESXi и vCenter с направлением трафика и назначением, разбор по задачам и то, что из этого нельзя выставлять в интернет. Статья пригодится, когда между администратором, vCenter и хостами стоит межсетевой экран (firewall) и нужно понять, какие именно порты на нём открыть.
Прежде чем открывать порты, стоит понять одну вещь: на ESXi нет «голого» списка правил, который вы редактируете руками. Фаервол хоста работает через профили сервисов. Каждой службе (SSH, vMotion, NFS, агент vCenter) соответствует свой набор портов, который открывается и закрывается вместе со службой.
Поэтому фраза «открыть порт 8000 на ESXi» на практике означает «включить службу vMotion» - и хост сам откроет нужный порт. По умолчанию закрыто почти всё: фаервол пускает только трафик включённых служб. Это удобно и безопасно: вы не держите открытым то, чем не пользуетесь.
У каждой службы можно дополнительно ограничить список разрешённых адресов - указать, из каких подсетей или VLAN к ней пускать. Это второй рубеж: даже если порт открыт, к нему достучится только админская сеть, а не весь мир.
Открывать порт на ESXi - это включать соответствующую службу, а не вписывать правило в firewall. Список служб - в разделе Security Profile веб-интерфейса хоста.
Здесь собраны порты, которые ESXi использует чаще всего. Направление - откуда и куда идёт трафик (вх. - хост принимает соединение, исх. - хост сам устанавливает).
| Порт | Протокол | Направление | Служба | Зачем |
|---|---|---|---|---|
| 22 | TCP | вх. | SSH | Доступ к консоли хоста по SSH. По умолчанию выключен |
| 53 | UDP/TCP | исх. | DNS | Разрешение имён. Без рабочего DNS vCenter и хост часто «не видят» друг друга |
| 80 | TCP | вх. | HTTP | Перенаправляет браузер на HTTPS (443). Сам по себе данными не управляет |
| 123 | UDP | исх. | NTP | Синхронизация времени. Расхождение часов ломает аутентификацию и сертификаты |
| 427 | TCP/UDP | вх. | SLP (CIMSLP) | Обнаружение служб для CIM-клиентов. Отключён по умолчанию, включать без нужды не стоит |
| 443 | TCP | вх. | vSphere Client / API | Веб-интерфейс хоста, API, подключение vCenter. Главный порт управления |
| 902 | TCP/UDP | вх./исх. | vCenter Agent, консоль ВМ | Связь vCenter с хостом, консоль виртуальных машин (MKS), heartbeat по UDP |
| 2049 | TCP/UDP | исх. | NFS | Подключение хранилища по NFS |
| 3260 | TCP | исх. | iSCSI | Подключение блочного хранилища по iSCSI |
| 8000 | TCP | вх./исх. | vMotion | Живая миграция виртуальных машин между хостами |
| 8080 | TCP | вх./исх. | vSAN Vendor Provider | Служебный канал vSAN (vsanvp) для обмена с vCenter |
| 8182 | TCP/UDP | вх./исх. | vSphere HA | Обмен между хостами в кластере высокой доступности (служба FDM) |
| 8100, 8200 | TCP/UDP | вх./исх. | Fault Tolerance | Трафик отказоустойчивости (FT) между хостами |
| 9080 | TCP | вх. | vSphere I/O Filter | Обмен vCenter с хостом по фильтрам ввода-вывода. Системный порт управляющей сети |
| 2233 | TCP | вх./исх. | vSAN | Передача данных vSAN между узлами (storage I/O) |
| 12321 | UDP | вх./исх. | vSAN | Служебный обмен кластера vSAN (членство, мониторинг) |
| 161, 162 | UDP | вх./исх. | SNMP | Опрос и trap-уведомления для мониторинга |
| 514 | UDP/TCP | исх. | Syslog | Отправка логов на внешний сервер |
| 5988, 5989 | TCP | вх. | CIM | Аппаратный мониторинг по CIM. Устаревшая служба, в современных версиях выключена по умолчанию |
Порты 5988/5989 и обнаружение служб по SLP (порт 427) в новых версиях ESXi отключены по умолчанию. Служба SLP выключена «из коробки» начиная с ESXi 7.0 Update 2c и ESXi 8.0, и это прямое следствие серии уязвимостей: именно через открытый наружу OpenSLP работал шифровальщик ESXiArgs, массово выкосивший хосты, торчавшие в интернет. Правило фаервола называется CIMSLP, и включают его только тогда, когда CIM-клиенту нужно найти хост автоматически. Если аппаратный мониторинг не используется, не трогайте ни 427, ни 5988/5989.
Управление в vSphere идёт по цепочке: администратор открывает vSphere Client в браузере, тот стучится в vCenter, а vCenter уже командует хостами ESXi. На каждом участке свои порты.
Администратор - vCenter: порт 443 (TCP). Это весь веб-интерфейс и API. Порт 80 только перенаправляет на 443.
vCenter - хосты ESXi: порты 443 и 902. По 443 идёт управление, по 902 vCenter шлёт данные на хост, а хост в ответ отправляет heartbeat по UDP 902. Если 902 заблокировать между vCenter и хостом, хост в интерфейсе будет «отваливаться» в статус «не отвечает», хотя сам работает.
Отдельно у vCenter Server Appliance есть порт 5480 (TCP) - это VAMI, интерфейс управления самой виртуальной машиной vCenter (обновления, сеть, сервисы). Его открывают только администраторам, не пользователям.
Если в инфраструктуре несколько vCenter в режиме Enhanced Linked Mode, между ними добавляются служебные порты репликации каталога (389, 636 и другие). Для одного vCenter они не нужны.
Базовое управление - это 443 и 902. Остальные порты появляются, когда вы включаете соответствующую функцию.
Живая миграция виртуальных машин между хостами идёт по TCP 8000. Порт нужен в обе стороны между всеми хостами, которые участвуют в миграции. vMotion обычно выносят в отдельную сеть (VLAN) - и ради скорости (миграция забивает канал), и ради безопасности: служебный трафик переноса памяти виртуальных машин не стоит смешивать с пользовательским.
Программное хранилище vSAN использует TCP 2233 для передачи самих данных и UDP 12321 для служебного обмена в кластере. Добавьте сюда TCP 8080 - по нему vSAN Vendor Provider общается с vCenter. Эти порты нужны только между узлами vSAN и почти всегда живут в выделенной сети хранилища, куда снаружи доступа нет.
Кластер высокой доступности (HA) обменивается состоянием