![](https://habrastorage.org/webt/ba/hl/or/bahloro3zivnyxbuju8xnhkgpx8.jpeg)
Многие знают о существовании такого ПО, как TeamViewer, но не все в курсе о нестандартных сценариях его использования. Знали ли вы, что можете легально использовать сессии, неограниченные во времени? Это осуществимо благодаря возможности TeamViewer подключаться не только с использованием уникального ID, но и по IP-адресу.
Рассуждения, что лучше использовать что-то другое, а не TeamViewer, оставим за бортом, здесь просто рассматриваются возможности TeamViewer. Насколько имеет смысл практического применения изложенных методов, каждый пусть решит сам.
Мы всячески предостерегаем вас от включения данной опции на компьютерах, имеющих «белый» IP-адрес. Во всяком случае, если вам очень захочется это сделать, позаботьтесь о защите подключения сложным паролем и ограничении источников с помощью файрвола.
Включается такая возможность следующим образом: нужно перейти в настройки и разрешить входящие подключения по локальной сети. General → Network settings → Incoming LAN Connections: accept / Основное → Настройки сети → Входящие соединения (локальная сеть): принять. Мы также можем разрешить только такие подключения (accept exclusively / принимать исключительно).
![](https://habrastorage.org/webt/4p/oz/qs/4pozqs6y2lxojvlw-gfi9xtmncg.png)
TeamViewer даже покажет локальные адреса, но только вместо TeamViewer ID, если разрешить исключительно подключения по локальной сети.
![](https://habrastorage.org/webt/ru/bx/7k/rubx7kvrex_55cz1hnn_ohswp4y.png)
Конечно, это можно использовать, если компьютеры находятся в одной локальной сети. А что же делать, если это не так? Можно объединить компьютеры в виртуальную локальную сеть. Мы воспользуемся технологией ZeroTier. Для демонстрации закажем пару серверов на Windows и сервер, который будет служить контроллером сети. Заказывать будем у хостера RUVDS, потому что у них есть готовый образ ZeroTier Network Controller, а за лицензию Windows доплачивать к стоимости сервера не нужно. Можно, конечно, использовать ZeroTier Central, но мы будем использовать преимущества собственного контроллера.
![](https://habrastorage.org/webt/ar/we/dm/arwedmz5smdjaxyy_pjul3lbnea.png)
Один сервер будем использовать как компьютер, которым мы хотим управлять (назовём его «server»), а другой (назовём его «admin-ws») — как компьютер, с которого мы будем управлять вышеуказанным. Можно, конечно, подключить к виртуальной сети свой домашний компьютер, но пусть у нас будет выделенная тестовая среда.
![](https://habrastorage.org/webt/tq/wg/mc/tqwgmcbsvy99mq6-2sc2gkx-jcw.png)
Первоначальная настройка контроллера описана в данной статье, поэтому заострять внимание на ней не будем и перейдём к присоединению клиентов к сети.
На каждом компьютере установим TeamViewer и клиент ZeroTier. После установки увидим в трее жёлто-оранжевый значок ZeroTier, по клику откроется меню, в котором нам нужно выбрать Join New Network…
![](https://habrastorage.org/webt/h7/g5/jj/h7g5jjghzwqwad30fqcj4qjawey.png)
Если однажды подключиться к сети, компьютер будет подключаться к ней всегда. За подключение отвечает служба ZeroTierOneService с автоматическим запуском. Пункты меню прозрачно говорят о том, что при выходе мы закроем UI, а не завершим работу клиента. По умолчанию приложение ZeroTier Desktop UI после входа в систему автоматически не запускается.
Также вид значка никак не отображает статус подключения. Мы всё же рекомендуем включить автоматический запуск данного интерфейса, чтобы не забыть, что у нас установлен клиент ZeroTier и что компьютер может быть подключён к какой-либо сети.
В открывшемся окошке вводим ID созданной нами сети и нажимаем Join.
![](https://habrastorage.org/webt/tg/xy/_3/tgxy_3lbwpq6p1g3a0y3iwo9no0.png)
В веб-интерфейсе контроллера в списке участников появятся наши устройства. Чтобы разрешить подключение, нужно отметить чекбокс Authorized. Для удобства можно задать устройствам имена.
![](https://habrastorage.org/webt/ho/ld/oj/holdoj6ctwjfuw1yjwuaaufd5v8.png)
Остаётся разрешить локальные подключения в TeamViewer на стороне сервера (компьютер «server») (см. рис.1). Теперь на клиентской машине («admin-ws») вводим локальный адрес устройства «server» и подключаемся.
![](https://habrastorage.org/webt/tr/af/xn/trafxnhbytrd7np-fiphkyawjp4.png)
После ввода учётных данных получаем доступ к управлению устройством.
![](https://habrastorage.org/webt/d7/u4/c3/d7u4c33awho7ofx8uw7ioc4j4e4.png)
Здесь мы использовали 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) / Отключено (без случайного пароля).
![](https://habrastorage.org/webt/7o/v4/mz/7ov4mzpzy3pucxlvmvuxey6sawc.png)
Ещё можно задать постоянный пароль для авторизации TeamViewer в расширенных настройках (Advanced → Personal password / Дополнительно → Личный пароль).
![](https://habrastorage.org/webt/mj/pb/ig/mjpbigzsvj4vqpeczuhppkenzdi.png)
▍ Приложение А. Немного о полезных функциях TeamViewer
Кто хоть раз пользовался TeamViewer, знает, что при подключении на клиентском устройстве скрывается фон рабочего стола. Делается это, скорее всего, ради экономии трафика. Если вы хотите вернуть его обратно, можно сделать это через верхнее меню, убрав соответствующую «галочку» (View → Hide wallpaper / Просмотр → Скрыть обои). Но при следующем подключении фон опять скроется.
![](https://habrastorage.org/webt/wp/hy/ld/wphyldrcbye2letvvvluyyuez2y.png)
Чтобы фон никогда не скрывался, нужно на стороне клиента убрать отключение фона (Remote control → Display → Remove remote wallpaper / Удалённое управление → Отобразить → Скрыть обои на удалённой машине).
![](https://habrastorage.org/webt/ap/kg/x-/apkgx-ql4x-ralzvnzu3exsaltg.png)
Когда мы отключаемся, удалённый компьютер блокируется, если был заблокирован, и не блокируется, если не был заблокирован. Можно отключиться, явно выбрав, нужно ли блокировать удалённое устройство (Actions → End Session → End session and lock remote computer / Действия → Окончание сеанса → Завершить сеанс и заблокировать удалённый компьютер).
![](https://habrastorage.org/webt/t_/vt/hj/t_vthj6ccxdfxsucmwmtj_i1vxa.png)
Также можно однократно задать, что произойдёт при отключении (Actions → Lock → Lock on session end / Действия → Включить блокировку → Включить блокировку по завершении сеанса).
![](https://habrastorage.org/webt/hb/ro/qp/hbroqppu4bg18wurzjpzlhpaxj0.png)
Перманентно поведение при отключении можно задать в расширенных настройках (Advanced → Advanced settings for connections to other computers: Always, Never / Дополнительно → Дополнительные настройки для подключения к другим компьютерам / Включить блокировку удалённого компьютера: Всегда, Никогда).
![](https://habrastorage.org/webt/_0/af/8c/_0af8cyib9tou_nrv-p08yoisvs.png)
В разделе действий можно посмотреть информацию об удалённой системе (Actions → Remote system info… / Действия → Информация об удалённой системе). Тут нам покажут модель процессора, объём ОЗУ, дисков и основные параметры сетевых адаптеров.
![](https://habrastorage.org/webt/cb/8_/dg/cb8_dgcg8bzo-mf0kx3gdcea_li.png)
Пользователи TeamViewer знают, что с его помощью можно передавать файлы (Files & Extras → Open file transfer / Файлы и дополнительные возможности → Открыть передачу файлов).
![](https://habrastorage.org/webt/xo/er/yf/xoeryfyh-ik7xjstv16koayxbxe.png)
Однако открыть диалог передачи файлов можно, не подключаясь к экрану удалённого устройства. Для этого в главном окне нужно выбрать соответствующий пункт из выпадающего списка (Remote control, File transfer / Удалённое управление, Передача файлов).
![](https://habrastorage.org/webt/qa/ib/7i/qaib7i9o8ei_kpdmcpqrjep9d3a.png)
▍ Приложение Б. TeamViewer и перенаправление портов
Для входящих подключений TeamViewer слушает TCP-порт 5938. Мы можем перенаправить трафик с порта X устройства A на порт 5938 устройства B. Притом порт X может отличаться от порта 5938. В таком случае при подключении нужно будет указать адрес устройства X и порт обычным способом — через двоеточие.
![](https://habrastorage.org/webt/8z/jt/rn/8zjtrnhvwmspmrskrq0kung6ix0.png)
Таким образом мы можем перенаправить несколько портов на несколько устройств и сможем подключаться к каждому устройству, указывая один и тот же адрес, но разный порт.
![](https://habrastorage.org/webt/_g/xd/3b/_gxd3b56ys2fsobzievdpuqxdwe.png)
TeamViewer также использует во время соединения протокол UDP. Этот вопрос никак не изучался и порты UDP не пробрасывались, проблем при использовании соединения только по протоколу TCP выявлено не было.
Telegram-канал с розыгрышами призов, новостями IT и постами о ретроиграх ?️
![](https://habrastorage.org/webt/_p/_h/lv/_p_hlvd2tv0cv9tny8tdytzfhje.png)