API LM Studio: как включить токен и проверить доступ
На странице · 6 разделов
В LM Studio локальный API по умолчанию не требует ключа: его нужно создать и отдельно включить Require Authentication в настройках сервера. На своей машине проверьте один и тот же GET-запрос без токена и с токеном: первый должен быть отклонён, второй — получить список моделей. Доступ по сети настраивается отдельно и не становится безопасным только от наличия токена.
Срез документации: 27 сентября 2026 года. Инструкция относится к обычному LM Studio 0.4.0 или новее, а не к отдельному приложению Bionic. Токены и обязательная аутентификация описаны в официальном руководстве s1. Modelium не запускал эту конфигурацию и не проверял её в своей сети.
Когда LM Studio нужен API key?
Если программе на том же компьютере нужен локальный сервер, LM Studio позволяет начать без токена, но по умолчанию API-запросы не аутентифицируются s1s5. Это означает, что сам факт работы curl не подтверждает защиту. Чтобы требовать ключ, мало создать токен: включите Require Authentication в Developers Page → Server Settings s1s2. Версия с поддержкой этой функции — LM Studio 0.4.0 или новее s1.
Ниже — узкий тест доступа к своему серверу. Он не проверяет качество модели или нулевой сетевой исходящий трафик. Если нужен первый запуск, начните с общего гайда LM Studio; для отдельного headless-процесса есть гайд по llmster. Сервер и модель — разные части стека: список моделей не означает, что конкретная модель уже загружена и ответит на запрос s6.
Что подготовить перед включением токена?
Проверьте версию установленного LM Studio, запустите приложение, откройте страницу Developers и включите API-сервер. Официальный quickstart указывает типичный адрес http://localhost:1234; если вы меняли порт, подставьте фактический адрес вашей установки s5s2. CLI-путь lms server start --bind 127.0.0.1 --port 1234 явно оставляет привязку только к localhost; у lms server start параметр --bind поддерживается, а 127.0.0.1 указан как значение по умолчанию s4. Не запускайте одновременно второй экземпляр на уже занятом порту.
Для первого теста не используйте реальные документы и не открывайте порт в LAN. Локальный адрес означает ограничение прямых подключений другими машинами, не защиту от других процессов и пользователей на том же хосте. Проверку реального сетевого выхода делайте отдельно по методике офлайн-контура.
Как создать и сделать токен обязательным?
- Откройте Developers Page → Server Settings → Manage Tokens, создайте отдельный именованный токен для тестового клиента и проверьте доступные разрешения. Скопируйте значение сразу: документация предупреждает, что оно не будет показано повторно s1.
- В том же разделе включите Require Authentication. Переключатель заставляет API-клиентов предъявлять действительный токен через заголовок
Authorization; просто созданный, но не включённый ключ не ограничивает доступ s1s2. - Пока не нужен доступ с другого устройства, оставьте Serve on Local Network выключенным и
--bind 127.0.0.1. Это отдельная настройка от обязательного токена s3s4.
Права токена выбирайте под нужные операции: для контрольного чтения списка моделей не предоставляйте более широкие права без причины. Названия и фактическое действие разрешений проверьте в интерфейсе своей версии; документация подтверждает возможность их редактирования, но не заменяет тест на вашей установке s1. Не храните токен в URL, истории команд или скриншоте.
Как проверить запрос без ключа и с ключом?
Официальный REST-метод GET /api/v1/models не запускает генерацию; он возвращает список моделей, включая сведения о загруженных экземплярах s6. На своём компьютере с работающим сервером выполните два одинаковых запроса. Команды печатают только HTTP-код, не тело ответа:
BASE_URL=http://127.0.0.1:1234
curl -sS -o /dev/null -w 'без токена: %{http_code}\n' "$BASE_URL/api/v1/models"
read -r -s -p 'Токен LM Studio: ' LM_API_TOKEN; printf '\n'
curl -sS -o /dev/null -w 'с токеном: %{http_code}\n' \
-H "Authorization: Bearer $LM_API_TOKEN" "$BASE_URL/api/v1/models"
unset LM_API_TOKEN
Ожидаемая проверяемая разница при включённой обязательной аутентификации: запрос без токена отклоняется (неуспешный HTTP-код), запрос с действительным токеном и правом чтения списка проходит (успешный HTTP-код) s1s2s6. Если оба запроса успешны, не считайте сервер защищённым: перепроверьте переключатель, фактический порт и адрес клиента. Если оба отклонены, проверьте права и значение токена, формат Bearer, состояние сервера; не публикуйте порт, пока причина не найдена. Код 000 в curl означает, что HTTP-ответ вообще не получен: сперва проверьте запуск, адрес и порт. Не сохраняйте секрет или полный вывод curl -v в публичном логе.
У REST API и OpenAI-совместимого API разные маршруты: первый использует /api/v1/models, второй — /v1/models и /v1/chat/completions s6s7. Для клиента с OpenAI-совместимым интерфейсом укажите базовый адрес http://127.0.0.1:1234/v1, передайте реальный токен вместо демонстрационного api_key и повторите проверку отказа без ключа именно на том endpoint, который использует клиент s1s7s8. Пример api_key="lm-studio" в документации Chat Completions не является созданным вами секретом и не доказывает включённую аутентификацию s8s1. После теста доступа выберите идентификатор реально доступной модели и отдельно проверьте ответ POST /v1/chat/completions на тестовом вводе; список /v1/models при включённой Just-In-Time загрузке может содержать ещё не загруженные модели s7s8.
Когда можно открыть доступ из локальной сети?
Serve on Local Network меняет привязку сервера и открывает его другим устройствам в той же сети; CLI-вариант lms server start --bind 0.0.0.0 слушает все IPv4-интерфейсы, а не только localhost s3s4. Эти варианты не включают аутентификацию автоматически: перед расширением доступа повторите отрицательный и положительный тесты с другой разрешённой машины, ограничьте доступ сетевыми правилами и не выставляйте сервис в интернет. LM Studio прямо предупреждает об опасности bind, отличного от 127.0.0.1, и рекомендует включить аутентификацию s3s4.
Токен — не замена защищённому каналу: открытый HTTP с заголовком Bearer не следует передавать через недоверенную сеть. Для удалённых клиентов проектируйте отдельный защищённый туннель или прокси, ограничение адресов, учёт токенов и их отзыв; конкретная схема зависит от вашего контура. Не включайте CORS «на всякий случай»: документация CLI предупреждает о рисках, а Server Settings отдельно содержит переключатели доступа API-клиентов к MCP-серверам, включая способные читать файлы или приватные данные s4s2. Если MCP вам не нужен, не расширяйте соответствующие разрешения. После изменения сетевой конфигурации повторите оба запроса, а для офлайн-требований проведите отдельный сетевой тест.
Что считать результатом?
Зафиксируйте версию приложения, адрес и порт, включённость Require Authentication и Serve on Local Network, HTTP-код без токена, HTTP-код с ним и имя проверенного endpoint. Не записывайте сам токен. Успешный результат — отказ без ключа и доступ с нужным ключом именно с предполагаемой клиентской машины; результат генерации на выбранной модели проверяется отдельным запросом s1s6s7. Если это не удалось, верните сервер к локальной привязке и не открывайте сетевой интерфейс. Для выбора модели и дальнейшего теста перейдите к гайду LM Studio.
Источники
- LM Studio — Authentication and API Tokens — s1-authentication.html; порог 0.4.0, Require Authentication, Manage Tokens, Bearer.. Получено 27.09.2026.
- LM Studio — Server Settings — s2-settings.html; переключатели auth, LAN, CORS и MCP.. Получено 27.09.2026.
- LM Studio — Serve on Local Network — s3-network.html; предупреждение о non-localhost bind.. Получено 27.09.2026.
- LM Studio CLI — lms server start — s4-cli-start.html; --bind, --port, --cors и предупреждение.. Получено 27.09.2026.
- LM Studio — REST API Quickstart — s5-rest-quickstart.html; сервер localhost:1234, токен и чат.. Получено 27.09.2026.
- LM Studio — REST API List your models — s6-rest-models.html; GET /api/v1/models, models и loaded_instances.. Получено 27.09.2026.
- LM Studio — OpenAI Compatibility Endpoints — s7-openai.html; /v1/models, /v1/chat/completions и base URL.. Получено 27.09.2026.
- LM Studio — Chat Completions — s8-chat.html; POST chat, идентификатор модели и пример SDK.. Получено 27.09.2026.