Многие знают о существовании такого ПО, как TeamViewer, но не все в курсе о нестандартных сценариях его использования. Знали ли вы, что можете легально использовать сессии, неограниченные во времени? Это осуществимо благодаря возможности TeamViewer подключаться не только с использованием уникального ID, но и по IP-адресу.

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

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

Включается такая возможность следующим образом: нужно перейти в настройки и разрешить входящие подключения по локальной сети. General → Network settings → Incoming LAN Connections: accept / Основное → Настройки сети → Входящие соединения (локальная сеть): принять. Мы также можем разрешить только такие подключения (accept exclusively / принимать исключительно).


Рис. 1: Разрешаем подключения по локальной сети

TeamViewer даже покажет локальные адреса, но только вместо TeamViewer ID, если разрешить исключительно подключения по локальной сети.

Рис. 2: Список локальных адресов

Конечно, это можно использовать, если компьютеры находятся в одной локальной сети. А что же делать, если это не так? Можно объединить компьютеры в виртуальную локальную сеть. Мы воспользуемся технологией ZeroTier. Для демонстрации закажем пару серверов на Windows и сервер, который будет служить контроллером сети. Заказывать будем у хостера RUVDS, потому что у них есть готовый образ ZeroTier Network Controller, а за лицензию Windows доплачивать к стоимости сервера не нужно. Можно, конечно, использовать ZeroTier Central, но мы будем использовать преимущества собственного контроллера.

Рис. 3: Готовый образ ZeroTier Network Controller

Один сервер будем использовать как компьютер, которым мы хотим управлять (назовём его «server»), а другой (назовём его «admin-ws») — как компьютер, с которого мы будем управлять вышеуказанным. Можно, конечно, подключить к виртуальной сети свой домашний компьютер, но пусть у нас будет выделенная тестовая среда.

Рис. 4: Вид на серверы из личного кабинета

Первоначальная настройка контроллера описана в данной статье, поэтому заострять внимание на ней не будем и перейдём к присоединению клиентов к сети.

На каждом компьютере установим TeamViewer и клиент ZeroTier. После установки увидим в трее жёлто-оранжевый значок ZeroTier, по клику откроется меню, в котором нам нужно выбрать Join New Network…

Рис. 5: Меню клиента ZeroTier

Если однажды подключиться к сети, компьютер будет подключаться к ней всегда. За подключение отвечает служба ZeroTierOneService с автоматическим запуском. Пункты меню прозрачно говорят о том, что при выходе мы закроем UI, а не завершим работу клиента. По умолчанию приложение ZeroTier Desktop UI после входа в систему автоматически не запускается.

Также вид значка никак не отображает статус подключения. Мы всё же рекомендуем включить автоматический запуск данного интерфейса, чтобы не забыть, что у нас установлен клиент ZeroTier и что компьютер может быть подключён к какой-либо сети.

В открывшемся окошке вводим ID созданной нами сети и нажимаем Join.

Рис. 6: Ввод идентификатора сети

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

Рис. 7: Список устройств

Остаётся разрешить локальные подключения в TeamViewer на стороне сервера (компьютер «server») (см. рис.1). Теперь на клиентской машине («admin-ws») вводим локальный адрес устройства «server» и подключаемся.

Рис. 8: Подключение к устройству

После ввода учётных данных получаем доступ к управлению устройством.

Рис. 9: Успешно подключились

Здесь мы использовали Windows-авторизацию при подключении. Это также включается в настройках (Security → Rules for connection to this computer → Windows Logon: Allowed for administrators only, Allowed for all users / Безопасность → Правила для подключения к этому компьютеру → Вход в Windows: Разрешено только для администраторов, Разрешено для всех пользователей). В том же разделе в пункте Random password (for spontaneous access) / Случайный пароль (для произвольного доступа) можно изменить сложность автоматически генерируемого пароля для TeamViewer-авторизации с помощью настройки Password strength / сложность пароля. Есть варианты 6, 8, 10 символов и Disabled (no random password) / Отключено (без случайного пароля).

Рис. 10: Включение авторизации Windows

Ещё можно задать постоянный пароль для авторизации TeamViewer в расширенных настройках (Advanced → Personal password / Дополнительно → Личный пароль).

Рис. 11: Постоянный пароль для TeamViewer-авторизации

▍ Приложение А. Немного о полезных функциях TeamViewer


Кто хоть раз пользовался TeamViewer, знает, что при подключении на клиентском устройстве скрывается фон рабочего стола. Делается это, скорее всего, ради экономии трафика. Если вы хотите вернуть его обратно, можно сделать это через верхнее меню, убрав соответствующую «галочку» (View → Hide wallpaper / Просмотр → Скрыть обои). Но при следующем подключении фон опять скроется.

Рис. 12: Разовая настройка скрытия фона

Чтобы фон никогда не скрывался, нужно на стороне клиента убрать отключение фона (Remote control → Display → Remove remote wallpaper / Удалённое управление → Отобразить → Скрыть обои на удалённой машине).

Рис. 13: Постоянная настройка скрытия фона

Когда мы отключаемся, удалённый компьютер блокируется, если был заблокирован, и не блокируется, если не был заблокирован. Можно отключиться, явно выбрав, нужно ли блокировать удалённое устройство (Actions → End Session → End session and lock remote computer / Действия → Окончание сеанса → Завершить сеанс и заблокировать удалённый компьютер).

Рис. 14: Выбор блокировки при отключении

Также можно однократно задать, что произойдёт при отключении (Actions → Lock → Lock on session end / Действия → Включить блокировку → Включить блокировку по завершении сеанса).

Рис. 15: Разовая настройка блокировки при отключении

Перманентно поведение при отключении можно задать в расширенных настройках (Advanced → Advanced settings for connections to other computers: Always, Never / Дополнительно → Дополнительные настройки для подключения к другим компьютерам / Включить блокировку удалённого компьютера: Всегда, Никогда).

Рис. 16: Постоянная настройка блокировки при отключении

В разделе действий можно посмотреть информацию об удалённой системе (Actions → Remote system info… / Действия → Информация об удалённой системе). Тут нам покажут модель процессора, объём ОЗУ, дисков и основные параметры сетевых адаптеров.

Рис. 17: Информация об удалённой системе

Пользователи TeamViewer знают, что с его помощью можно передавать файлы (Files & Extras → Open file transfer / Файлы и дополнительные возможности → Открыть передачу файлов).

Рис. 18: Открытие диалога передачи файлов

Однако открыть диалог передачи файлов можно, не подключаясь к экрану удалённого устройства. Для этого в главном окне нужно выбрать соответствующий пункт из выпадающего списка (Remote control, File transfer / Удалённое управление, Передача файлов).

Рис. 19: Подключение только для передачи файлов

▍ Приложение Б. TeamViewer и перенаправление портов


Для входящих подключений TeamViewer слушает TCP-порт 5938. Мы можем перенаправить трафик с порта X устройства A на порт 5938 устройства B. Притом порт X может отличаться от порта 5938. В таком случае при подключении нужно будет указать адрес устройства X и порт обычным способом — через двоеточие.

Рис. 20: Указание порта при подключении к устройству

Таким образом мы можем перенаправить несколько портов на несколько устройств и сможем подключаться к каждому устройству, указывая один и тот же адрес, но разный порт.

Рис. 21: Пример проброса портов

TeamViewer также использует во время соединения протокол UDP. Этот вопрос никак не изучался и порты UDP не пробрасывались, проблем при использовании соединения только по протоколу TCP выявлено не было.

Telegram-канал с розыгрышами призов, новостями IT и постами о ретроиграх ????️

Комментарии (23)


  1. Hamletghost
    04.04.2023 13:35
    +19

    Смысл существования TV как раз в том, что он позволяет соединятся с компьютером за NAT или firewall. Зачем использовать эту поделку для прямого подключения вообще непонятно (и наверное даже страшно), особенно на Windows где есть нативный и быстрый RDP из коробки


    1. lea
      04.04.2023 13:35
      +4

      Существует софт, который блокируется при обнаружении активной RDP сессии, а вот подключение через TV он не замечает)


      1. apollo2k4
        04.04.2023 13:35
        +3

        А бывает наоборот, тут увы не существует «золотой пули».


    1. BDI
      04.04.2023 13:35
      +2

      У нативного RDP есть недостатки вытекающие из его предназначения. Например, при подключении через RDP локальные(воткнутые в комп на который выполняется подключение) токены(aka "флэшка с ЭЦП") будут доступны только в том случае если программа использующая токен была запущена в "нормальном" подключении(или эмуляции работы пользователя за физическим ПК, как у тимвьюера и аналогов, вроде RMS в режиме "Управление").


      Возможно предложенное решение имеет право на жизнь(но выглядит как костыль), вот только по хостнейму тимвьюер не работает(по крайней мере 11-ая версия, которой пока пользуюсь), IP в адресной книге тоже не хранит(не говоря уже о том что статика на пользовательских ПК в организации мне кажется маловероятной). А без статического IP описанное решение пригодится только для удалённой поддержки пользователя. Но у нас тимвьюера используется в том числе для решения проблемы из первого абзаца — "удалёнщики" в Тимвьюере(или RMS->Управление) стартуют профильное ПО для "захвата" локального токена, потом подключаются по RMS->RDP и работают.


      P.S. Вариант брать юзерам токены с собой не подходит по ряду причин.


      1. Tim777
        04.04.2023 13:35

        Любую коншку можно ободрать минимум двумя способвми: привязать ip к mac и dhcp умеет.


        1. BDI
          04.04.2023 13:35

          Я прекрасно знаю про резервирование IP по MAC, но, во-первых, делать это для всех компов организации не вижу смысла(а тимвьюер+RMS стоят везде кроме серверов). А во-вторых, как это решит проблему "по хостнейму тимвьюер не работает(по крайней мере 11-ая версия, которой пока пользуюсь), IP в адресной книге тоже не хранит"?


    1. Tarakanator
      04.04.2023 13:35

      1)а если в этот момент не нужно отлючать локального пользователя?
      2)через RDP работает не всё. к примеру я не мог поставить софт для VR шлема.


      1. DaemonGloom
        04.04.2023 13:35

        1) А вот для этого существуют теневые сессии RDP. Можно подключиться к существующей сессии без выкидывания локального пользователя.


    1. programmerguru Автор
      04.04.2023 13:35
      +1

      Есть два момента. Во-первых, за файрволом TeamViewer всё-таки может не работать. Во-вторых, есть сценарии, при которых нужен доступ именно к экрану, а не RDP-сессия.


      1. GuessWho
        04.04.2023 13:35

        VNC?


  1. andreymal
    04.04.2023 13:35
    +4

    ZeroTier, Windows Server, ужас какой… Если уж всё равно покупать сервер, то, вероятно, будет проще и удобнее взять линукс и воткнуть Aspia Router + Relay — он и NAT обойдёт, и красивые ID вместо айпишников выдаст, и вообще опенсорс


    1. programmerguru Автор
      04.04.2023 13:35
      +1

      Как я уже писал в статье, Windows Server взят для примера. Тестовую среду с Windows очень быстро получить, заказав VDS, а там Windows серверные. На практике может быть любой выпуск любой редакции.


      1. ASD2003ru
        04.04.2023 13:35

        Вроде SPLA в России всё? Как можно легально предоставлять услуги на продуктах MS?


  1. aik
    04.04.2023 13:35
    +9

    Основная задача TV и прочих энидесков — автоматический обход NAT и удаленный саппорт вида "скачай, запусти, продиктуй цифры, подтверди подключение и НЕ ТРОГАЙ МЫШЪ".


    Вариантов для простого удалённого управления в локалке — что у вас в итоге и вышло — и без TV вагон. Начиная от rdp, vnc и далее везде.


    1. AlexanderS
      04.04.2023 13:35
      +1

      Вместо "НЕ ТРОГАЙ МЫШЪ" я просто блокирую удалённый ввод и мышку.


    1. programmerguru Автор
      04.04.2023 13:35
      +1

      Ответ на ваш комментарий есть во втором абзаце статьи ;-)


  1. BigD
    04.04.2023 13:35
    +7

    тут можно упомянуть Aspia и rustdesk


  1. qwedsa_ss
    04.04.2023 13:35
    +1

    Мы выбрали RustDesk из-за собственного сервера. Авто настройка клиентской части. простой интерфейс.


  1. Kenya-West
    04.04.2023 13:35
    +2

    Статья неплохая, но решаемая проблема "как использовать TeamViewer, игнорируя главную фишку TeamViewer" выглядит странно.


  1. 4385708alex91
    04.04.2023 13:35
    +1

    +/- тоже самое получится с hamachi + radmin


  1. MarksMan09
    04.04.2023 13:35

    Прикольная реклама собственного сервиса ZeroTier и Windows с применением совы и глобуса, не привлекая внимание санитаров ... :)


  1. sigmatik
    04.04.2023 13:35

    Автор статьи наверное не в курсе, но тимвивер уже почти год не работает в России...

    6 мая 2022г. немецкий разработчик софта для удаленной работы TeamViewer объявил о прекращении работы в России и Беларуси.

    Компания отказалась от новых проектов и продления контактов с клиентами из этих стран. Существующие подписки продолжат действовать до их окончания, но продлеваться не будут. Все нелицензионные подключения из России и Беларуси TeamViewer заблокировал.


    1. pr0l
      04.04.2023 13:35

      11 версия куплена еще до внедрения подписок, все работает отлично. Жду отказа от поддержки 11 версии, тогда буду переходить на что-то другое. Но с тем же успехом что в статье, у меня работает sstp + vnc