Прямой удалённый доступ

Прямой доступ подключается к HTTP/HTTPS-слушателям CodeNomad с паролем сервера. Он отделён от удалённого управления: сопряжению не нужны привязка к LAN или входящий порт, и ни один путь не переключается незаметно на другой.

Выбор пути доступа

Путь Чем вы управляете
Браузер на том же компьютере Сохраните loopback-привязку; используйте напечатанный локальный URL.
LAN или VPN Привяжите доступный интерфейс, ограничьте брандмауэр нужными клиентами и используйте доверенный HTTPS. VPN не настраивает слушатель CodeNomad за вас.
Перенаправление SSH Оставьте серверную часть на loopback; перенаправьте её фактически напечатанный порт. Туннель защищает транспорт, но не заменяет аутентификацию CodeNomad.
Обратный прокси Оставьте серверную часть на частном/loopback-интерфейсе; завершайте доверенный TLS на прокси, защитите участок до серверной части и поддерживайте длительные SSE и WebSockets, необходимые инструментам прямого доступа.
Удалённое управление Сопрягите устройство с хоста; более узкая поверхность и время жизни описаны в удалённом управлении.

Привязка не создаёт правила брандмауэра, перенаправление портов, DNS или VPN. Не публикуйте неаутентифицированный HTTP-слушатель в Интернет. Корень рабочего пространства — не защитная песочница; прочитайте безопасность перед открытием сервера.

Включение прямого доступа

  1. На хосте откройте Настройки → Удалённый доступ и раскройте Прямой доступ (локальная сеть, для опытных).
  2. В Пароль сервера выберите Установить пароль или Изменить пароль, введите Новый пароль и Подтвердите пароль, затем Сохранить пароль. Пароли, переданные при запуске, здесь менять нельзя; см. безопасность.
  3. Включите Разрешить подключения с других IP в Режим прослушивания. Прочитайте предупреждение о перезапуске и выберите Перезапустить сейчас, только когда готовы к временному прерыванию.
  4. После перезапуска нажмите Обновить и проверьте Доступные адреса. Откройте доступный HTTPS-адрес на другом устройстве или выберите Показать QR на хосте и отсканируйте другим устройством, затем войдите.

Это меняет режим прямого прослушивания хоста, а не один проект и не удалённое управление. Раздел автоматически раскрывается, пока сервер слушает вне localhost. Если автоперезапуск недоступен, перезапустите CodeNomad вручную; отдельные развёртывания должны согласованно задавать --host при запуске. Для закрытия доступа выключите переключатель и перезапустите либо запустите CLI заново с loopback-привязкой. Это не отзывает сопряжённые устройства удалённого управления.

Матрица привязки слушателей

--host по умолчанию равен 127.0.0.1; localhost нормализуется в этот адрес. Для включённых слушателей действуют следующие правила:

Запуск/режим Привязка HTTP Привязка HTTPS
Отдельный сервер, только HTTPS (по умолчанию) Только частный loopback-слушатель (см. ниже) --host
Отдельный сервер, только HTTP --host, включая LAN/подстановочный адрес Не включён
Отдельный сервер, оба слушателя 127.0.0.1 независимо от --host --host
Нативная настольная серверная часть HTTP остаётся на 127.0.0.1, включая внутренний слушатель хоста --host, когда HTTPS включён

Каждая серверная часть также держит HTTP-слушатель на 127.0.0.1 для собственных встроенных плагинов OpenCode от CodeNomad, например миссий. Если HTTP не был запрошен или запрошенный HTTP-слушатель привязан к адресу, отличному от 127.0.0.1 или 0.0.0.0, серверная часть добавляет частный HTTP-слушатель на случайном порту 127.0.0.1. Он никогда не печатается и не предлагается как адрес подключения, недоступен с других компьютеров и обслуживает то же приложение с аутентификацией.

Конкретный LAN-адрес не обязан принимать loopback-подключения. 0.0.0.0 означает все IPv4-интерфейсы; :: — подстановочный слушатель двух стеков. Используйте реальный доступный адрес в браузере, не подстановочный. Идентификаторы зоны IPv6 в --host не поддерживаются.

Для отдельного HTTPS-развёртывания задайте пароль через начальную настройку, затем выполните:

codenomad --host 0.0.0.0 --https=true --http=false

Для HTTP только на loopback, например за локальным доверенным прокси:

codenomad --host 127.0.0.1 --https=false --http=true

Не рассчитывайте на порт 9898 или 9899: незаданные порты могут заменяться при занятости. Явный ненулевой --https-port, либо --http-port при включённом HTTP, фиксирует порт и даёт ошибку при невозможности привязки; 0 просит ОС назначить порт. Напечатанные Local Connection URL и Remote Connection URL, а также обновлённые Доступные адреса достоверны для данного запуска. См. полный справочник CLI сервера.

Настройка доверенного TLS

Собственный сертификат

  1. Получите сертификат, чьи Subject Alternative Names (SAN) покрывают реальное имя хоста или IP клиентов.
  2. Передайте и --tls-key <path>, и --tls-cert <path> как PEM-файлы. Добавьте --tls-ca <path>, если нужна цепочка/набор CA.
  3. Перезапустите CodeNomad и проверьте сертификат и напечатанный HTTPS-адрес с устройства клиента.

Файлы пользовательского сертификата читаются при запуске и никогда не перезаписываются CodeNomad. Вы отвечаете за продление и необходимый перезапуск для загрузки новых файлов. --tlsSANs настраивает генерируемые сертификаты; он не добавляет имена в переданный сертификат. Защищайте закрытые ключи и доверяйте только сертификатам с проверенной идентичностью хоста.

Созданный локальный CA

При включённом HTTPS без переданной пары ключ/сертификат CodeNomad создаёт локальный CA и серверный сертификат в базе конфигурации:

Файл Назначение
tls/ca-cert.pem Открытый сертификат CA для безопасного распространения на администрируемые клиенты.
tls/ca-key.pem Закрытый ключ CA; никогда не распространяйте.
tls/server-cert.pem Серверный сертификат.
tls/server-key.pem Закрытый ключ сервера; никогда не распространяйте.
  1. Добавьте все клиентские DNS-имена/IP через --tlsSANs "host.example.test,192.0.2.10". Подстановочная привязка не обнаруживает все LAN-адреса для SAN.
  2. Перезапустите серверную часть для создания/перепроверки сертификата.
  3. Проверьте хост/CA по доверенному каналу, затем импортируйте только сертификат CA в хранилище доверия каждого нужного клиента/браузера. Альтернатива — публично доверенный сертификат или обратный TLS-прокси.

Созданный серверный сертификат действует 30 дней. При запуске сертификат обновляется, если до истечения осталось не более трёх дней, отсутствуют нужные SAN, сертификат не проходит проверки или отсутствует файл закрытого ключа. Созданный CA действует 365 дней и заменяется при истечении, непрохождении проверок сертификата или отсутствии файла закрытого ключа; замена также перевыпускает серверный сертификат. Существующие повреждённые, нечитаемые или несовпадающие закрытые ключи автоматически не исправляются. Клиенты должны доверять заменённому CA. Непрерывного продления внутри процесса нет: для длительных развёртываний организуйте осознанный перезапуск до истечения.

При предупреждении сертификата на клиенте остановитесь и проверьте имя хоста, SAN, хранилище доверия и срок. Не отключайте проверку и не превращайте обход предупреждений в процедуру развёртывания. Доверенный HTTPS также нужен удалённым функциям браузера, таким как установка PWA и доступ к микрофону.

Сохранение удалённого сервера

  1. На главной странице настольного приложения выберите Подключить сервер CodeNomad. Та же кнопка есть на пустой вкладке Серверы и в Настройки → Удалённый доступ → Серверы.
  2. В Подключиться к серверу введите Имя сервера и URL сервера, используя доверенный HTTPS-origin. Оставьте Пропустить проверку TLS для самоподписанных сертификатов. выключенным; вместо этого настройте доверие.
  3. Нажмите Сохранить для закладки или Подключиться для сохранения и открытия. Войдите на этом сервере.

Чтобы снова открыть сохранённый сервер, выберите его на вкладке Серверы главной страницы. Закладки принадлежат этой конфигурации CodeNomad, не проектам удалённого сервера. Сохранение URL не запускает сервер и не предоставляет доступ. Удалить сохраненный сервер удаляет закладку, не удалённые разговоры, серверную часть или её учётные данные.

Для удалённого управления вместо этого вставьте свежую ссылку сопряжения в URL сервера. Закладка хранит только origin туннеля, никогда одноразовый код; повторное сопряжение после потери cookie устройства описано в удалённом управлении.