MAATRIX / Блог / Jupyter для ML и ИИ на VPS: полная настройка

Jupyter для ML и ИИ на VPS: полная настройка

Блог MAATRIX · 2026-07-07

JupyterLab превращает удалённый сервер в интерактивную ML-лабораторию: экспериментируешь с моделями и данными из браузера, а тяжёлые вычисления идут на сервере. Настроим безопасно и правильно.

Ставим JupyterLab

['Работаем в изолированном окружении, чтобы не засорять систему:', '
apt update && apt install -y python3-venv python3-pip\npython3 -m venv ~/jlab && source ~/jlab/bin/activate\npip install -U jupyterlab numpy pandas scikit-learn matplotlib
', 'Генерируем конфиг и задаём пароль (хэш, а не открытый пароль в конфиге):', '
jupyter lab --generate-config\njupyter lab password
']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS для Jupyter

Безопасный доступ через SSH-туннель

['Самый безопасный способ — не открывать Jupyter в интернет вовсе, а пробрасывать порт через SSH. Запускаем Jupyter только на localhost сервера:', '
jupyter lab --no-browser --ip=127.0.0.1 --port=8888
', 'А на своём компьютере создаём туннель и открываем localhost:8888 в браузере:', '
ssh -N -L 8888:127.0.0.1:8888 user@your-server-ip
', 'Теперь Jupyter доступен только тебе, порт наружу не торчит — атаковать нечего.']

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.

Вариант с nginx и HTTPS

['Если нужен постоянный доступ по домену, ставим nginx как обратный прокси с бесплатным сертификатом:', '
apt install -y nginx certbot python3-certbot-nginx\ncertbot --nginx -d jupyter.example.com
', 'Прокидываем на Jupyter, не забыв про WebSocket-заголовки (без них ядра не подключатся):', '
location / {\n    proxy_pass http://127.0.0.1:8888;\n    proxy_set_header Host $host;\n    proxy_http_version 1.1;\n    proxy_set_header Upgrade $http_upgrade;\n    proxy_set_header Connection "upgrade";\n}
']

Автозапуск через systemd

['Чтобы Jupyter поднимался после перезагрузки и не умирал с закрытием SSH, оформляем сервис. Создай /etc/systemd/system/jupyter.service:', '
[Unit]\nDescription=JupyterLab\nAfter=network.target\n\n[Service]\nUser=mluser\nExecStart=/home/mluser/jlab/bin/jupyter lab --no-browser --ip=127.0.0.1\nRestart=always\n\n[Install]\nWantedBy=multi-user.target
', '
systemctl daemon-reload\nsystemctl enable --now jupyter\nsystemctl status jupyter
']

Почему VPS, а не ноутбук

['Ноутбук греется и садит батарею на тяжёлых расчётах, засыпает и рвёт эксперименты. Сервер работает 24/7, доступен с любого устройства и не зависит от твоей сети.', 'Для ML важны быстрая память и диск: датасеты читаются с накопителя, модели грузятся в RAM. На тарифах MAATRIX с AMD EPYC + NVMe pandas-операции над крупными датафреймами и загрузка моделей идут заметно бодрее, чем на типичном бюджетном хостинге, а ежедневные бэкапы страхуют результаты экспериментов.', 'Отдельный бонус — можно запустить долгий расчёт или обучение, закрыть ноутбук и уйти. Сервер продолжит считать, а результат заберёшь позже. Плюс к серверу удобно подключить VS Code по SSH или Remote-туннель и работать в привычном редакторе, а ядро при этом крутится на мощном железе, а не на локальной машине.']

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

['
  • Открывают Jupyter на 0.0.0.0 без пароля — сервер за часы находят боты и используют под майнинг.
  • Забывают WebSocket-заголовки в nginx — интерфейс грузится, но ядро не подключается.
  • Запускают Jupyter в сессии SSH без systemd — закрыл терминал, процесс умер.
  • Ставят пакеты в системный Python и ломают зависимости ОС.
']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS для Jupyter

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.

Частые вопросы

Как безопасно открыть Jupyter на сервере?

Лучший способ — SSH-туннель: Jupyter слушает только localhost, а вы пробрасываете порт через ssh -L. Порт наружу не открывается вовсе.

Нужен ли домен для Jupyter?

Нет. Через SSH-туннель домен не нужен. Домен и HTTPS через nginx+certbot удобны, если нужен постоянный доступ из браузера без туннеля.

Почему ядро не подключается через nginx?

Обычно не проброшены WebSocket-заголовки Upgrade и Connection. Добавьте их в блок location и перезапустите nginx.

Как сделать, чтобы Jupyter работал постоянно?

Оформите его как systemd-сервис с Restart=always и enable. Тогда он поднимется после перезагрузки и переживёт разрыв SSH.