Поделиться через


Справочник по командной строке для туннелей разработки

Туннели разработки предлагают средство интерфейса командной строки (CLI) для создания туннель разработки и управления ими. В этой статье описаны синтаксис и параметры для различных devtunnel команд CLI.

Важно!

Эта функция сейчас доступна в виде общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания. Ее не следует использовать для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены.

Примечание.

devtunnel Команды CLI доступны в предварительной версии. Имена команд и параметры могут изменяться в будущих выпусках.

Глобальные параметры

  • -v, --verbose: включите подробные выходные данные.
  • -?, -h, --help: отображение сведений о справке и использовании.

Управление учетными данными пользователя

Служба туннеля разработки требует входа для авторизации управления и доступа к туннель разработки. По умолчанию туннель разработки доступен только пользователю, создавшему туннель разработки, хотя этот пользователь может предоставить доступ другим пользователям.

После входа маркер входа кэшируется в системной безопасной цепочке ключей и действителен в течение нескольких дней до истечения срока действия. Выход из интерфейса командной строки очищает этот кэшированный маркер, но не очищает файлы cookie браузера. Это может включать маркеры доступа к туннелю разработки, если браузер использовался для проверки подлинности с помощью туннеля разработки.

Команда Description
devtunnel user login Войдите с помощью учетной записи Майкрософт или GitHub.
devtunnel user logout Очистка кэшированного маркера
devtunnel user show Отображение текущего состояния входа

Совет

devtunnel login и devtunnel logout являются короткими командами для входа и выхода.

Ниже приведены некоторые примеры использования этих команд:

Примеры Description
devtunnel user login Вход с помощью организации Майкрософт (идентификатор Microsoft Entra) или личная учетная запись
devtunnel user login -g Вход с помощью учетной записи GitHub
devtunnel user login -d Вход с помощью учетной записи GitHub с именем входа в код устройства, если имя входа локального интерактивного браузера невозможно
devtunnel user login -g -d Вход с помощью учетной записи GitHub с именем входа в код устройства, если имя входа локального интерактивного браузера невозможно

Размещение туннеля разработки

devtunnel host — это основная команда, используемая для размещения туннеля разработки. Команда должна выполняться в хост-системе под управлением сервера, доступного через туннель разработки.

Команда Description
devtunnel host Размещение туннеля разработки. Если идентификатор туннеля разработки не указан, создается новый временный туннель разработки, который удаляется после закрытия подключения.

Ниже приведены некоторые примеры использования этой команды:

Примеры Description
devtunnel host -p 3000 Размещение временного туннеля разработки для сервера, прослушивающего порт 3000 в системе узла.
devtunnel host -p 3000 --allow-anonymous Разместите временный туннель разработки и включите анонимный клиентский доступ.
devtunnel host -p 3000 5000 Размещение временного туннеля разработки для локальных серверов, прослушивающих порты 3000 и 5000.
devtunnel host -p 8443 --protocol https Размещение временного туннеля разработки для сервера, прослушивающего порт 8443, использующего протокол HTTPS.
devtunnel host -p 8000 --expiration 2d Размещение временного туннеля разработки с пользовательским временем окончания срока действия. Минимальное значение — 1 час (1 ч), а максимальное — 30 дней (30d).
devtunnel host TUNNELID Размещение существующего туннеля разработки, настроенного ранее.

Предупреждение

Разрешение анонимного доступа к туннелю разработки означает, что любой пользователь в Интернете может подключиться к локальному серверу, если он может угадать идентификатор туннеля разработки.

Нажмите клавиши Control-C , чтобы остановить процесс узла туннеля разработки и завершить любые клиентские подключения через туннель разработки. Если существующий туннель разработки не был предоставлен, туннель разработки, который был автоматически создан процессом, будет удален при выходе процесса.

Подключение в туннель разработки

Использование пользовательского интерфейса пересылки в Интернете:

Команда devtunnel host отображает выходные данные, аналогичные следующим:

Hosting port 3000 at https://l3rs99qw-3000.usw2.devtunnels.ms/

Отображаемый https: URI является уникальным для порта туннеля разработки: первый компонент — это поддомен, содержащий заданный идентификатор туннеля разработки и номер порта.

Если размещенный порт подключается к веб-серверу, этот URI можно открыть непосредственно в браузере в любом месте. Если для доступа к туннелю разработки требуется авторизация, первоначальный запрос к URI перенаправится на страницу входа и вернется на сайт после того, как пользователь авторизован.

Если размещенный порт подключается к веб-службе, этот URI можно использовать в качестве базового URI клиентского приложения веб-службы. Однако если туннель разработки не разрешает анонимный доступ, клиент веб-службы обычно не знает, как пройти проверку подлинности. Если веб-служба безопасна для предоставления общедоступного доступа, рассмотрите возможность анонимного доступа. В противном случае клиент веб-службы может добавить заголовок запроса с маркером доступа к туннелю разработки для авторизации подключения.

Использование интерфейса командной строки:

Вместо подключения клиентского браузера или приложения непосредственно к URI ретранслятора разработки интерфейс командной строки можно использовать для пересылки подключений из порта на клиент к порту разработки. Клиенту также может потребоваться войти в систему, если туннель разработки не разрешает анонимный доступ.

devtunnel connect TUNNELID
  • Замените TUNNELID на тот же идентификатор туннеля разработки, который использовался на узле.

Успешный вывод клиента аналогичен следующему:

Connected to tunnel: l3rs99qw
SSH: Forwarding from 127.0.0.1:3000 to host port 3000.
SSH: Forwarding from [::1]:3000 to host port 3000.

Теперь сервер, который был предоставлен на порте узла 3000, доступен на localhost:3000 клиенте с помощью IPv4 или IPv6. (Префикс SSH заключается в том, что служба туннеля разработки строится на стандартном протоколе SSH для перенаправления портов.) Если размещенный порт подключается к веб-серверу, http://localhost:3000/ его можно открыть в браузере. В этом случае дополнительная авторизация не требуется, так как маркер входа интерфейса командной строки клиента использовался для авторизации подключения при необходимости.

Дополнительно: управление туннель разработки

Можно создать туннель разработки, не размещая его. Это полезно для расширенной конфигурации и управления туннелем разработки, например:

  • Перечисление всех принадлежащих туннель разработки
  • Добавление и удаление портов туннеля разработки
  • Управление элементами управления доступом к туннелю разработки
  • Добавление метаданных в туннель разработки, например описание и теги
Команда Description
devtunnel create Создание постоянного туннеля разработки
devtunnel list Список туннель разработки
devtunnel show Отображение сведений о туннеле разработки
devtunnel update Обновление свойств туннеля разработки
devtunnel delete Удаление туннеля разработки
devtunnel delete-all Удаление всех туннель разработки

Ниже приведены некоторые примеры использования этих команд:

Примеры Description
devtunnel create -a Создайте постоянный туннель разработки, который разрешает анонимный доступ.
devtunnel create -d 'my tunnel description' Создайте постоянный туннель разработки с описанием без поиска.
devtunnel create --expiration 4h Создайте постоянный туннель разработки с настраиваемым временем окончания срока действия. Минимальное значение — 1 час (1 ч), а максимальное — 30 дней (30d).
devtunnel create myTunnelID Создайте постоянный туннель разработки с помощью пользовательского идентификатора туннеля.
devtunnel create --tags my-web-app v1 Создайте постоянный туннель разработки и примените теги, доступные для поиска.
devtunnel list --tags my-web-app Список туннель разработки с любым из указанных тегов.
devtunnel list --all-tags my-web-app v1 Список туннель разработки со всеми указанными тегами.
devtunnel show Отображение сведений о последнем используемом туннеле разработки.
devtunnel show TUNNELID Отображение сведений о туннелье разработки.
devtunnel update TUNNELID -d 'my new tunnel description' Обновите описание туннеля разработки.
devtunnel update TUNNELID --remove-tags Удалите все теги из туннеля разработки.
devtunnel update TUNNELID --expiration 10d Обновите туннель разработки с новым пользовательским временем окончания срока действия. Минимальное значение — 1 час (1 ч), а максимальное — 30 дней (30d).
devtunnel delete TUNNELID Удаление туннеля разработки.
devtunnel delete-all Удалите все туннель разработки.

Совет

Большинство команд CLI работают с последним используемым туннельом разработки неявно, хотя при необходимости можно указать идентификатор туннеля разработки.

Дополнительно. Управление портами туннеля разработки

Туннель разработки devtunnel create , созданный с помощью команды, изначально не имеет портов. Используйте devtunnel port команды для добавления портов перед размещением:

Команда Description
devtunnel port create Создание порта туннеля разработки
devtunnel port list Вывод списка портов туннеля разработки
devtunnel port show Отображение сведений о порте туннеля разработки
devtunnel port update Обновление свойств порта порта для разработки
devtunnel port delete Удаление порта туннеля разработки
Примеры Description
devtunnel port create -p 3000 --protocol http Добавление порта с указанным протоколом
devtunnel port list TUNNELID Вывод списка текущих портов
devtunnel port show TUNNELID -p 3000 Отображение сведений о порте 3000
devtunnel port update -p 3000 --description 'frontend port' Обновление описания порта туннеля разработки
devtunnel port delete -p 3000 Удаление порта

При создании порта протокол может быть указан при необходимости, если автоматическое обнаружение не работает должным образом. Текущие параметры: http, https или auto (по умолчанию). Если размещенный порт — HTTPS, рекомендуется задать для протокола порта значение https; в противном случае "авто", вероятно, хорошо.

После настройки туннеля разработки с помощью приведенных выше команд запустите его размещение:

devtunnel host

Дополнительно. Управление доступом к туннелю разработки

С помощью следующих команд маркеры доступа к туннелям разработки можно выдавать для предоставления другим клиентам доступа к туннелю разработки без предоставления анонимного доступа. Команды управления доступом позволяют настроить управление доступом на туннель разработки и портах туннеля разработки.

Команда Description
devtunnel token Проблема маркера доступа к туннелю разработки
devtunnel access create Создание записи управления доступом
devtunnel access list Перечисление записей управления доступом
devtunnel access delete Удаление записи управления доступом
devtunnel access reset Сброс записей управления доступом по умолчанию

Ниже приведены некоторые примеры использования этих команд:

Примеры Description
devtunnel token TUNNELID --scopes connect Получите маркер доступа connect для туннеля разработки, который можно предоставить временному доступу к туннелю разработки.
devtunnel access create TUNNELID --anonymous Включите анонимный доступ к клиенту в туннеле разработки.
devtunnel access create TUNNELID --anonymous --expiration 4h Включите анонимный клиентский доступ в туннеле разработки с пользовательским временем истечения срока действия управления доступом. Минимальное значение — 1 час (1 ч), а максимальное — 30 дней (30d).
devtunnel access create TUNNELID --port 3000 --anonymous Включите анонимный доступ к клиенту через порт 3000.
devtunnel access create TUNNELID --tenant Включите текущий доступ клиента Microsoft Entra в туннеле разработки.
devtunnel access create TUNNELID --org ORG Включите доступ организации GitHub по имени в туннеле разработки.

Совет

Для доступа организации GitHub требуется установка приложения GitHub Dev Tunnels на организацию.

Дополнительные команды

Эти команды можно использовать, если необходимо явно задать или отменить этот локальный кэш последнего используемого туннеля разработки.

Команда Description
devtunnel set Установка туннеля разработки по умолчанию
devtunnel unset Очистить туннель разработки по умолчанию

Команды диагностики

Команда Description
devtunnel clusters Список доступных кластеров служб по расположению
devtunnel echo Запуск сервера эхо диагностики на локальном порту
devtunnel ping Отправка диагностических сообщений на удаленный эхо-сервер
Примеры Description
devtunnel clusters --ping Список доступных кластеров служб, отсортированных по измеренной задержке.
devtunnel echo http --port 8080 --interface 127.0.0.1 Запустите локальный http-диагностический сервер через порт 8080.

Устранение неполадок

Чтобы устранить проблемы с интерфейсом командной devtunnel строки, могут быть полезны следующие советы.

  • Убедитесь, что вы используете последнюю версию интерфейса командной devtunnel строки. Проверьте текущую установленную версию с devtunnel --versionпомощью .
  • Параметр --verbose печатает отладочные сообщения, которые могут предоставлять дополнительные диагностические сведения.