IPv4-адрес - это то, как сервер виден в интернете. На NAT VPS адрес общий: несколько машин делят один внешний IPv4, а входящий трафик направляется на нужную машину через проброс порта. У VPS с выделенным IPv4 адрес закреплен только за вами. Для исходящих запросов разницы почти нет, а для входящих она определяет, что вы сможете запустить.

Как работает NAT на VPS

NAT (трансляция сетевых адресов) позволяет нескольким внутренним машинам выходить в интернет через один внешний адрес. Чтобы подключиться извне к сервису на NAT VPS, нужен проброс порта: внешний порт на общем адресе соответствует порту внутри вашей машины. Например, внешний порт 22022 ведет на порт 22 вашего сервера.

Проброс настраивается на стороне провайдера, а внутри системы вы видите только внутренний адрес. Проверить это можно так:

ip -4 addr show
ip route

Если адрес на интерфейсе относится к диапазону 10.0.0.0/8, 172.16.0.0/12 или 192.168.0.0/16, машина, скорее всего, работает за NAT. Внешний адрес и номер проброшенного порта берутся из настроек VPS у провайдера.

Что работает на NAT VPS без ограничений

Все исходящие соединения работают без проброса: обновления пакетов, API внешних сервисов, парсеры, фоновые задачи и Telegram-боты в режиме long polling. Бот сам запрашивает обновления у Telegram, поэтому входящий порт ему не нужен.

Где нужен входящий доступ и выделенный IPv4

  • публичный сайт или API, к которому обращаются по доменному имени на стандартных портах 80 и 443;
  • почтовый сервер, для которого важны собственный адрес и обратная запись DNS, согласуемая с провайдером;
  • сервисы, принимающие вебхуки, например n8n или собственные интеграции;
  • игровые серверы и приложения, которым нужны стандартные порты;
  • выпуск сертификатов Let's Encrypt по HTTP-проверке: порт 80 должен быть доступен из интернета по адресу домена.

На общем адресе каждый внешний порт принадлежит только одной машине, поэтому стандартные 80 и 443 могут быть уже заняты другим проектом. Нестандартный порт тоже можно пробросить, но тогда в ссылках и вебхуках появляется номер порта, а сертификат через HTTP-проверку получить сложнее.

Плюсы и минусы каждого варианта

NAT VPS

  • самая низкая цена: тариф NAT стоит 99 ₽ в месяц;
  • IPv6 доступен на том же тарифе;
  • подходит для ботов, тестов, личных сервисов и доступа по SSH;
  • минус: входящие подключения работают через внешний порт, и стандартные порты заняты.

VPS с выделенным IPv4

  • собственный адрес: сервисы доступны по стандартным портам;
  • проще работать с доменами, сертификатами, почтой и вебхуками;
  • минус: стоимость выше, например Nano стоит 149 ₽ в месяц против 99 ₽ у NAT.

Что NAT дает с точки зрения безопасности

Многие считают, что NAT защищает сервер сам по себе. Это не так. Общий адрес скрывает внутренний IP вашей машины от прямого сканирования, но любой открытый проброшенный порт остается доступным из интернета, и сервис на нем может быть атакован так же, как на выделенном адресе.

Поэтому на NAT VPS нужны те же меры, что и на любом другом сервере: ключи вместо паролей для SSH, файрвол и обновления. Подробная инструкция есть в статье базовая защита Linux-сервера. Одно отличие все же есть: при проброске на нестандартный порт массовые боты, которые сканируют стандартные порты, реже натыкаются на сервис, но это не повод считать такую защиту достаточной.

С выделенным IPv4 вопросы безопасности те же, но появляется другая задача: адрес закреплен за вами, а значит, вы отвечаете за его репутацию. Если на сервере запустить рассылку без нормальных настроек или сервис со слабыми паролями, адрес может попасть в списки спам-источников. Для почты это особенно важно, поэтому почтовые серверы обычно выносят на отдельный адрес с правильными DNS-записями.

Какой тариф выбрать

Если нужен только удаленный доступ по SSH, бот на long polling или исходящие запросы, хватит NAT. Для сайта, API или почтового сервера, на который ссылаются домены, берите тариф с выделенным IPv4. Из линейки Pulsar выделенный IPv4 указан для Nano: 1 vCPU, 1 ГБ RAM, 10 ГБ за 149 ₽. Для более мощных конфигураций тип адреса уточняйте в карточке тарифа при выборе.

Пример: как выглядит проброс портов

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

  • внешний порт 22022 направляется на порт 22 внутри VPS, то есть на SSH;
  • внешний порт 18080 направляется на порт 80, где работает веб-приложение;
  • внешний порт 13000 направляется на порт 3000, где слушает панель мониторинга.

Для клиента адрес выглядит одинаково, меняется только порт. Вход по SSH будет выглядеть так: ssh -p 22022 deploy@203.0.113.10. Веб-приложение доступно как http://203.0.113.10:18080. Такая схема работает, но ссылки с нестандартным портом неудобны для пользователей, поэтому для публичного сайта вам, скорее всего, понадобится выделенный IPv4.

Типичные ошибки при выборе

  • Покупают NAT для сайта и потом тратят время на обход ограничений портов. Если сайт нужен по домену без номера порта, сразу выбирайте выделенный адрес.
  • Берут тариф с выделенным IPv4, хотя нужен только SSH и бот. Разница между NAT за 99 ₽ и Nano за 149 ₽ составляет 50 ₽ в месяц, но при ненужном адресе эта сумма просто переплата.
  • Пробрасывают наружу много портов сразу. Каждый открытый порт требует обновлений и контроля доступа, поэтому оставляйте снаружи только нужные сервисы.
  • Забывают про DNS. Домен должен указывать на адрес сервера, а при переносе сервиса на другой адрес записи приходится менять вручную.

Как проверить доступ к порту

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

sudo ss -tlnp

С другого компьютера проверьте доступность внешнего адреса и порта. В Linux и macOS используйте nc, в Windows PowerShell:

nc -vz 203.0.113.10 22022
Test-NetConnection -ComputerName 203.0.113.10 -Port 22022

Итог

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