Инструкции

Как открыть порт на VPS: ufw, панель провайдера и Windows

Чтобы к программе на сервере можно было подключиться снаружи, нужны две вещи: программа должна слушать порт, а фаервол — пропускать к нему подключения. Ниже — как сделать и то и другое и как закрыть порт обратно.

Обновлено 10.10.2026≈ 5 мин чтения
Содержание 12

Команды для сервера вводятся после подключения к нему по SSH (как подключиться). В примерах открываем порт 8080 — подставьте свой номер. Если система спросит пароль, введите пароль своего пользователя на сервере. Символы при вводе не видны — так и должно быть: наберите пароль и нажмите Enter.

Шаг 1. Проверьте, что программа слушает порт

sudo ss -tlnp | grep ':8080 '
  • Строки нет — программа не запущена или работает на другом номере. Открывать порт в фаерволе пока бесполезно: сначала запустите программу.
  • В строке 127.0.0.1:8080 — программа принимает подключения только с самого сервера. Фаервол здесь не поможет: адрес меняют в настройках программы.
  • В строке 0.0.0.0:8080 или *:8080 — программа ждёт подключений на всех адресах. Можно переходить к фаерволу.

Шаг 2. Посмотрите, включён ли фаервол

sudo ufw status

Status: inactive — фаервол ufw выключен: порт уже доступен снаружи, если его не закрывает фаервол в панели провайдера (о нём ниже). Status: active — фаервол работает, ниже в ответе список разрешённых портов.

Если хотите включить фаервол, сначала разрешите SSH — иначе фаервол не пустит вас на сервер при следующем подключении:

sudo ufw allow OpenSSH
sudo ufw enable

ufw предупредит, что команда может прервать подключения SSH, и спросит, продолжать ли. Нажмите y и Enter.

Шаг 3. Откройте порт

sudo ufw allow 8080/tcp comment 'myapp'

/tcp — открыть порт только для TCP: так работают сайты, боты и базы данных. Без /tcp ufw откроет порт и для TCP, и для UDP. comment — подпись, чтобы потом помнить, зачем открыт порт; её можно не писать.

Диапазон портов открывают так — с протоколом и номерами через двоеточие:

sudo ufw allow proto tcp from any to any port 8080:8090

Как открыть порт только для одного адреса

К базе данных или панели администратора безопаснее пускать только известный адрес — например, другой ваш сервер:

sudo ufw allow proto tcp from 198.51.100.7 to any port 3306

198.51.100.7 — адрес, которому вы разрешаете подключаться, 3306 — порт: подставьте свои. Остальные адреса фаервол к порту не пустит. Подробнее о базах — в разделе Как не открыть базу всему интернету.

Шаг 4. Проверьте результат

sudo ufw status

В списке появится строка с номером порта и словом ALLOW. Строка с пометкой (v6) — то же правило для адресов IPv6. Проверить порт со своего компьютера — по инструкции Как проверить, открыт ли порт.

Как закрыть порт обратно

Повторите команду, которой открывали порт, добавив слово delete:

sudo ufw delete allow 8080/tcp

Так удаляются сразу оба правила — для IPv4 и IPv6. Второй способ — по номеру. Сначала посмотрите номера правил:

sudo ufw status numbered

Номера стоят в квадратных скобках. Удалите правило по номеру, например третье:

sudo ufw delete 3

ufw спросит подтверждение — нажмите y и Enter. По номеру удаляется одно правило: если у порта есть строка с (v6), удалите и её. После удаления номера сдвигаются, поэтому перед следующим удалением снова посмотрите список.

Фаервол в панели провайдера

У части провайдеров есть свой фаервол в панели управления VPS: он стоит перед сервером и работает отдельно от ufw. Если он включён, порт нужно открыть и там. Найдите в панели раздел про фаервол или сетевые правила либо спросите поддержку провайдера.

Если программа запущена в Docker

Порты, которые публикует Docker, проходят мимо правил ufw: порт контейнера может быть доступен снаружи, даже если в ufw он не открыт. Разбор — в статье Docker открывает порт мимо ufw.

Как открыть порт в Windows Server

Откройте PowerShell от имени администратора: нажмите Win+X или щёлкните правой кнопкой по «Пуску» и выберите пункт «Терминал» или Windows PowerShell со словом «администратор». Введите:

New-NetFirewallRule -DisplayName 'myapp 8080' -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow

myapp 8080 — название правила, по нему его потом можно найти. Закрыть порт — удалить правило по названию:

Remove-NetFirewallRule -DisplayName 'myapp 8080'

Ошибки и как их исправить

  • Порт открыт в ufw, но снаружи Connection refused — программа не слушает порт или слушает только 127.0.0.1. Вернитесь к шагу 1.
  • Порт открыт в ufw, но подключение висит до тайм-аута — порт закрыт фаерволом в панели провайдера. Откройте его там.
  • После sudo ufw enable не подключиться по SSH — правило для SSH не было добавлено. Войдите через консоль в панели провайдера и выполните sudo ufw allow OpenSSH.
  • Браузер пишет ERR_CONNECTION_REFUSED или ERR_CONNECTION_TIMED_OUT — разборы: ERR_CONNECTION_REFUSED, ERR_CONNECTION_TIMED_OUT.

Источники

Сверено 10 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 10.10.2026