Перейти к содержанию

Порты и веб-сервисы

Главное правило

В карточке сервера есть блок Проброшенные порты.

Он показывает, какой порт внутри пода доступен снаружи:

  • Внешний - порт, который открывается снаружи;
  • Контейнер - порт внутри пода;
  • Приложение - что обычно работает на этом порту.

Пример:

Внешний Контейнер Приложение
42000 22 SSH
42001 8888 Jupyter
42002 9000 не занято

Если сервис внутри пода слушает 9000, снаружи открывайте внешний порт 42002.

На каком адресе запускать сервис

Чтобы веб-сервис был доступен снаружи, он должен слушать 0.0.0.0.

Правильно:

--host 0.0.0.0

Неправильно для внешнего доступа:

--host 127.0.0.1

127.0.0.1 работает только внутри пода. Снаружи такой сервис не откроется.

Частые контейнерные порты

Контейнерный порт Для чего используется
22 SSH
8000 vLLM, FastAPI
8080 llama.cpp server
8188 ComfyUI
7860 Gradio
8888 JupyterLab

Внешние порты смотрите в карточке сервера, в блоке Проброшенные порты.

Если в карточке есть свободные контейнерные порты 9000-9007, запускайте свои сервисы на них.

vLLM

Пример запуска:

vllm serve Qwen/Qwen3-32B-AWQ \
  --host 0.0.0.0 \
  --port 9000

Проверка внутри пода:

curl http://127.0.0.1:9000/v1/models

Для доступа снаружи найдите в карточке строку с контейнерным портом 9000 и откройте внешний порт из этой же строки.

llama.cpp

Пример запуска:

./build/bin/llama-server \
  -hf "Qwen/Qwen3-32B-GGUF:Q4_K_M" \
  --host 0.0.0.0 \
  --port 9000 \
  -ngl 99

Проверка внутри пода:

curl http://127.0.0.1:9000/v1/models

Чтобы открыть API снаружи, найдите в карточке строку, где Контейнер равен 9000, и используйте внешний порт из этой строки.

JupyterLab

Пример запуска:

jupyter lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root

Jupyter покажет ссылку с токеном в терминале. Не публикуйте этот токен.

Если вы используете готовый Jupyter-образ GPUGO, ссылка уже есть в блоке Данные для подключения.

Gradio

В Python-коде:

demo.launch(server_name="0.0.0.0", server_port=9000)

Если в карточке есть строка Внешний 42002 -> Контейнер 9000, то Gradio будет доступен снаружи через внешний порт 42002.

ComfyUI

Для ComfyUI есть отдельный Docker-образ и отдельная инструкция запуска.

Для обычного запуска ComfyUI используйте готовый Docker, а не ручную установку зависимостей.

Стандартный порт ComfyUI внутри самого приложения:

8188

Но в карточке сервера свободные порты обычно проброшены как 9000-9007. Если запускаете ComfyUI вручную, укажите свободный контейнерный порт из карточки:

python3 main.py --listen 0.0.0.0 --port 9000

Если в карточке есть строка Внешний 42002 -> Контейнер 9000, ComfyUI будет доступен снаружи через внешний порт 42002.

Проверка открытых портов

Посмотреть, какие порты сейчас слушает под:

ss -lntp

Если ss не найден:

apt update
apt install -y iproute2

Пример правильного вывода:

LISTEN 0 4096 0.0.0.0:9000

Если видно 127.0.0.1:9000, сервис доступен только внутри пода.

Частые ошибки

Страница не открывается

Проверьте, что процесс запущен:

ss -lntp

Проверьте, что сервис слушает 0.0.0.0.

Проверьте, что открываете внешний порт из карточки сервера, а не контейнерный порт.

Connection refused

Обычно это значит, что процесс не запущен или слушает другой порт.

Проверьте список портов:

ss -lntp

Порт занят

Найдите процесс:

ss -lntp | grep ':9000'

Остановите процесс или выберите другой порт.