Pterohost docs

Порты Palworld и проброс: 8211 UDP, firewall, NAT

Порты Palworld сервера: 8211 UDP игра, 25575 TCP RCON, 8212 TCP REST API. Настройка ufw и iptables, проброс на роутере, PublicIP/PublicPort, диагностика и CGNAT.

Palworld dedicated server - UDP-сервис без query-порта, и почти все проблемы “не могу подключиться” сводятся к сети: не тот протокол в firewall, забытый проброс на роутере, CGNAT у домашнего провайдера или неверно заполненный PublicIP. В этой статье разберём порты Palworld до конца: какие открывать и почему именно UDP, как настроить ufw и iptables, как пробросить порт на домашнем роутере, когда трогать PublicIP/PublicPort в конфиге и как диагностировать закрытый порт. Установку сервера тут не дублируем - она в отдельной статье установка Palworld dedicated server, а базовый разбор PalWorldSettings.ini - в настройках сервера Palworld.

Таблица портов Palworld

Palworld использует всего три порта, и только один из них обязателен. App ID серверного билда - 2394010.

ПортПротоколНазначениеОбязателенПараметр конфига
8211UDPИгровой трафик (подключение игроков)ДаPublicPort
25575TCPRCON (удалённое управление)НетRCONPort
8212TCPREST API (метрики, управление по HTTP)НетRESTAPIPort

Ключевой момент: игровой порт 8211 работает по UDP. Это не опечатка и не “и TCP тоже”. Весь игровой обмен между клиентом и сервером Palworld идёт по UDP - протоколу без установки соединения и без гарантии доставки, что нормально для realtime-игр. Если вы откроете или пробросите 8211/tcp, игроки всё равно не подключатся: их клиент стучится по UDP.

RCON (25575/TCP) и REST API (8212/TCP) - служебные, работают по TCP, и открывать их наружу в большинстве случаев не нужно вообще. Управлять сервером безопаснее с localhost или через SSH-туннель.

Почему у Palworld нет query-порта

Многие Steam-игры (CS2, Rust, ARK) публикуются в Steam Server Browser и держат query-порт (обычно 27015/UDP), по которому Steam опрашивает сервер: имя, карта, онлайн. Palworld этого не делает. Сервер нигде не публикуется, и игроки не ищут его в браузере серверов - они вводят адрес IP:8211 вручную в меню Join Multiplayer Game. Поэтому порт 27015 открывать не нужно, и никакой “невидимости в списке серверов” у Palworld быть не может - списка просто нет. Подробнее про клиентскую сторону - в статье как подключиться к серверу Palworld.

Firewall: ufw

На большинстве Ubuntu/Debian-серверов ставится ufw. Открываем игровой порт по UDP, а RCON и REST API - только если реально нужны снаружи.

# Обязательно: игровой порт
sudo ufw allow 8211/udp

# Опционально: RCON (лучше не открывать наружу)
sudo ufw allow 25575/tcp

# Опционально: REST API (только если включён RESTAPIEnabled)
sudo ufw allow 8212/tcp

sudo ufw reload
sudo ufw status verbose

Хорошая практика - не выставлять RCON в интернет, а ограничить доступ конкретным IP администратора:

# RCON доступен только с вашего IP
sudo ufw allow from 203.0.113.10 to any port 25575 proto tcp

Проверить, что правило для игрового порта именно UDP, важно: ufw allow 8211 без указания протокола откроет и TCP, и UDP - лишний TCP не мешает, но правило 8211/udp точнее.

Firewall: iptables

Если ufw не используется, те же правила напрямую в iptables:

# Игровой порт Palworld
sudo iptables -A INPUT -p udp --dport 8211 -j ACCEPT

# RCON только с доверенного IP
sudo iptables -A INPUT -p tcp -s 203.0.113.10 --dport 25575 -j ACCEPT

# REST API (при необходимости)
sudo iptables -A INPUT -p tcp --dport 8212 -j ACCEPT

Сохранить правила, чтобы они пережили перезагрузку:

sudo apt install -y iptables-persistent
sudo netfilter-persistent save

На системах с nftables (Debian 12+, где nft - бэкенд по умолчанию) эквивалент:

sudo nft add rule inet filter input udp dport 8211 accept
sudo nft add rule inet filter input tcp dport 25575 ip saddr 203.0.113.10 accept

Если сервер стоит на VPS или у хостинг-провайдера, помимо системного firewall может быть внешний сетевой фильтр в панели управления (Security Group, Cloud Firewall). Правило для 8211/udp нужно продублировать и там - иначе трафик до сервера просто не дойдёт.

Проброс портов на домашнем роутере

Если сервер поднят дома за роутером, наружу торчит только внешний IP роутера, а сам сервер сидит в локальной сети с адресом вида 192.168.x.x. Чтобы игроки из интернета достучались, нужен проброс порта (port forwarding) на роутере.

Общий порядок в вебинтерфейсе роутера (раздел NAT / Port Forwarding / Virtual Server):

  1. Внешний порт (WAN / External): 8211.
  2. Внутренний порт (LAN / Internal): 8211.
  3. Внутренний IP: локальный адрес машины с сервером, например 192.168.1.50.
  4. Протокол: UDP (не TCP, не “Both” ради галочки - именно UDP обязателен).

Критично выбрать UDP. Самая частая ошибка домашнего хостинга Palworld - проброс 8211/TCP: правило создано, “порт проброшен”, а игроки не заходят, потому что игровой трафик идёт по UDP и через TCP-правило не проходит.

Чтобы локальный IP сервера не менялся после перезагрузки, закрепите его в DHCP-роутера (DHCP reservation по MAC-адресу) - иначе однажды проброс уедет на другое устройство.

RCON (25575) и REST API (8212) на домашнем сервере пробрасывать не надо: это открытые двери управления в интернет. Управляйте ими из локальной сети.

Pterohost - игровой хостинг с белым IP и аппаратной DDoS-защитой, где порт 8211 уже открыт из коробки. Промокод 4START даёт -20% на первый заказ. Арендовать Palworld сервер

PublicIP и PublicPort в конфиге

В PalWorldSettings.ini (полный разбор - в настройках Palworld) есть два сетевых параметра, вокруг которых много путаницы:

OptionSettings=(...,PublicIP="",PublicPort=8211,...)
  • PublicPort - порт, который сервер сообщает клиентам как свой публичный. Должен совпадать с реальным игровым портом (по умолчанию 8211). Если вы запускаете сервер с port=8215, то и PublicPort=8215, и проброс/firewall на 8215/udp - всё должно быть согласовано.
  • PublicIP - внешний IP, который сервер объявляет клиентам. Когда заполнять: только если сервер за NAT и должен явно назвать свой внешний адрес, чтобы клиенты и сервисы Steam корректно построили соединение. На VPS или хостинге с прямым белым IP это поле обычно оставляют пустым - сервер сам определит адрес, а лишнее значение может, наоборот, сломать подключение, если вписать туда локальный IP.

Практическое правило: белый IP на интерфейсе сервера - оставляйте PublicIP="". За домашним NAT, если после проброса не подключаются - попробуйте вписать в PublicIP внешний IP роутера (тот, что показывает curl ifconfig.me).

Запуск с явным портом:

./PalServer.sh -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS port=8211 players=32

Флаг port= задаёт локальный слушающий порт. Если он отличается от 8211 - синхронизируйте PublicPort в конфиге и правила firewall.

Диагностика: проверка открытости порта

Когда “не подключается”, нужно локализовать, на каком уровне рвётся: слушает ли сервер порт, пропускает ли firewall, доходит ли трафик снаружи.

Слушает ли сервер порт (локально)

sudo ss -tulpn | grep -E '8211|25575|8212'

Ожидаем строку с udp и 8211 рядом с процессом PalServer. Если 8211/udp в выводе нет - сервер не стартовал или упал, смотрите логи (journalctl -u palworld -f). Строки для 25575 и 8212 появятся только если RCON и REST API включены в конфиге.

Занят ли порт другим процессом

Если сервер не может занять 8211 (“порт занят”), найдите, кто его держит:

sudo ss -ulpn 'sport = :8211'
sudo lsof -i UDP:8211

Часто это второй, забытый экземпляр PalServer. Убить и перезапустить.

Проверка порта снаружи

UDP проверять сложнее TCP - он не отвечает “connection refused”, поэтому обычные TCP-сканеры бесполезны. С внешней машины:

# nmap UDP-скан (нужны root-права)
sudo nmap -sU -p 8211 <внешний-IP-сервера>

# ncat: отправить UDP-датаграмму
nc -u -v <внешний-IP-сервера> 8211

nmap -sU покажет open или open|filtered - для UDP это норма, “точного” ответа UDP не даёт. Надёжнее всего финальная проверка - реальное подключение клиентом Palworld по IP:8211.

RCON-порт (TCP) проверяется просто:

nc -zv 127.0.0.1 25575

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

СимптомПричинаРешение
Сервер запущен, но никто не заходитFirewall/проброс сделан на TCPОткрыть/пробросить именно 8211/udp
ss не показывает 8211/udpСервер не стартовал или упалПроверить логи, перезапустить
”Порт занят” при стартеВторой экземпляр PalServerНайти через lsof -i UDP:8211, убить
Дома проброс есть, извне не видноCGNAT (серый IP провайдера)Белый IP, VPN с портом или хостинг
VPS: локально порт слушается, снаружи закрытCloud Firewall в панели провайдераДобавить 8211/udp во внешний firewall
Порт открыт, но лаги/дисконнектыUDP-флуд или переполнение каналаDDoS-фильтрация, см. ниже

CGNAT у домашнего провайдера

Отдельный тяжёлый случай - CGNAT (Carrier-Grade NAT). Провайдер выдаёт не белый IP, а серый адрес за общим шлюзом, и проброс на вашем роутере физически не может работать: входящие соединения до вас не доходят. Как проверить: сравните WAN-IP в настройках роутера с тем, что показывает curl ifconfig.me. Если они разные (WAN-IP из диапазонов 100.64.0.0/10, 10.x, 192.168.x) - вы за CGNAT.

Варианты: заказать у провайдера белый (публичный) IP, использовать VPN с проброшенным портом, либо вынести сервер на хостинг с прямым белым IP. Диагностику подключения со стороны клиента разбираем в решении проблем с лагами Palworld.

DDoS по UDP

Игровой порт Palworld - UDP, а UDP-сервисы традиционно любимая мишень для флуда: атакующему не нужно устанавливать соединение, он просто заливает канал датаграммами на 8211. На домашнем интернете даже небольшой UDP-флуд забивает аплинк и роняет всех игроков - защититься на своём роутере почти нереально. На хостинге с аппаратной фильтрацией L3/L4 паразитный UDP-трафик отсекается на границе сети до того, как дойдёт до сервера, а легитимные игровые пакеты проходят. Как устроена такая защита и что она даёт для игрового сервера - в статье защита от DDoS.

Pterohost - Palworld-хостинг с фильтрацией UDP-флуда и открытым портом 8211 без ручной возни с NAT. Промокод 4START даёт -20% на первый заказ. Заказать Palworld хостинг

Часто задаваемые вопросы

Какой порт нужно открыть для Palworld сервера?

Основной игровой порт 8211 UDP (значение PublicPort в конфиге). Именно UDP, не TCP - Palworld гоняет весь игровой трафик по UDP. Дополнительно 25575 TCP для RCON и 8212 TCP для REST API, если вы их используете.

Почему порт Palworld именно UDP, а не TCP?

Игровой трафик Palworld идёт по UDP - это быстрый протокол без гарантии доставки, оптимальный для реального времени. Проброс TCP 8211 на роутере не даст ничего: клиент стучится по UDP. Открывать и пробрасывать нужно строго 8211/udp.

Есть ли у Palworld query-порт как у Steam-серверов?

Нет. Palworld dedicated server не публикуется в Steam Server Browser и не использует query-порт (27015). Подключение только по прямому адресу IP:8211 через Join Multiplayer Game. Открывать 27015 не нужно.

Когда заполнять PublicIP и PublicPort в PalWorldSettings.ini?

PublicPort задаёт порт, который сервер сообщает клиентам, и должен совпадать с реальным игровым портом (8211). PublicIP заполняют только при проблемах за NAT - когда сервер должен явно объявить свой внешний IP. На VPS/хостинге с белым IP поле обычно оставляют пустым.

Почему сервер не виден с домашнего интернета даже после проброса портов?

Частая причина - CGNAT: провайдер выдаёт серый IP за общим шлюзом, и проброс на вашем роутере не работает. Проверьте, совпадает ли WAN-IP роутера с внешним IP (myip). Если нет - нужен белый IP от провайдера, VPN с проброшенным портом или хостинг.