Если вы используете Windows RDP или Remmina, вы обычно используете IP (общедоступный) или присоединенное имя хоста сервера для входа в систему. Мне было интересно, как работает удаленная программа, такая как Team Viewer ? А также, как программа знает, как направить этот трафик через Интернет?
4 ответа
TeamViewer, LogMeIn и любая другая программа, которая разрешает сеанс удаленного рабочего стола с zero config
использует сторонний сервер.
Например, LogMeIn - это программа, похожая на TeamViewer, в которой вы можете удаленно входить в систему компьютера за пределами сети, в которой вы сейчас находитесь. Вы заметите, что для этого типа удаленного сеанса не требуется никаких внешних настроек. Это связано с тем, что программное обеспечение, установленное на удаленном компьютере (клиент LogMeIn), инициирует исходящий запрос к серверам LogMeIn. Поскольку этот клиент инициировал запрос, переадресация портов на брандмауэре не требуется.
На вашем компьютере вне сети компьютера LogMeIn можно получить удаленный доступ к этому компьютеру через веб-сайт LogMeIn. Этот веб-сайт принимает инициированный запрос от удаленного компьютера и поддерживает соединение, чтобы прослушать удаленный запрос сеанса.
Когда вы запускаете TeamViewer, вам присваивается идентификатор на их брокерском сервере. Вы устанавливаете соединение с идентификатором Teamviewer, и TeamViewer передает соединение по установленному туннелю клиента TeamViewer к месту назначения, после чего вам предлагается ввести пароль, а затем соединение устанавливается.
Teamviewer использует порт 80 для подключения к центральному серверу. Если соединение установлено, вы получаете уникальный идентификатор, и сервер знает, что вы в сети. Вся связь может происходить через порт 80, если другие порты заблокированы.
Teamviewer позволяет напрямую подключаться к IP-адресу. Вы должны установить это в настройках, чтобы разрешить входящие соединения локальной сети. Это работает для локальных сетей, и, вероятно, также для сетей WAN, но тогда вам нужно настроить работу переадресации портов, чтобы получить порт 80 для подключения к нужному компьютеру за маршрутизатором / межсетевым экраном. Это делает вещи трудными для большинства людей и неуправляемыми для большинства остальных, поэтому мы используем метод Teamviewer ID.
Я не знаю, означает ли это, что весь трафик проходит через серверы TeamViewer, но это возможно. (И поскольку он регистрирует все клики и нажатия клавиш, это, вероятно, означает, что они могли - теоретически - и поскольку мы знаем о ПРИЗМЕ и т.д., Вероятно, в действительности - знали обо всех ваших логинах и секретных ключах.)
Вот что говорит компания в своем заявлении о безопасности:
При создании сеанса TeamViewer определяет оптимальный тип соединения. После квитирования через наши главные серверы прямое соединение через UDP или TCP устанавливается в 70% всех случаев (даже за стандартными шлюзами, NAT и межсетевыми экранами). Остальные соединения маршрутизируются через нашу чрезвычайно избыточную сеть маршрутизаторов через TCP или https-туннелирование. Вам не нужно открывать порты для работы с TeamViewer!
Как позже описано в параграфе «Шифрование и аутентификация», даже мы, как операторы серверов маршрутизации, не можем прочитать зашифрованный трафик данных
Так:
- 1) как и предполагали другие, исходное соединение от обоих клиентов инициируется клиентом и проходит через порт 80, поэтому у него нет проблем с NAT или межсетевыми экранами, он может проходить через веб-прокси и т.д. После этого все настроено и оба клиенты должны быть связаны друг с другом, тогда:
- 2.1) вероятно использует дырокол UPnP или NAT, чтобы иметь возможность установить фактическое соединение между двумя клиентами, или
- 2.2) если это невозможно, он будет направлять трафик через свои серверы, который будет работать медленнее и за ним можно будет следить (однако они заявляют, что данные зашифрованы сквозными, в этом случае это не будет проблемой)
Большинство приложений, таких как TeamViewer, маршрутизируют вещи через свои серверы, если прямой путь недоступен, поэтому обходится необходимость использовать публичные IP-адреса и открытые порты.