Доступ к удаленному рабочему столу между двумя устройствами Ubuntu 20.04 через Интернет

У меня есть рабочая станция в моем домашнем офисе под управлением Ubuntu 20.04 (т.е. пульт), она подключена к Интернету с помощью кабеля Ethernet. Во время путешествия я обычно ношу с собой более легкое устройство, ноутбук, также работающий под управлением Ubuntu 20.04 (т.е. клиент).
Моя цель - получить доступ к моей рабочей станции с удаленного рабочего стола (т.е. доступ к файлам, терминалу и т.д.) с моего ноутбука через Интернет.

Моей первой попыткой была настройка VNC с помощью Remmina, как описано здесь . Это сработало, и теперь я могу получить доступ к своей рабочей станции со своего ноутбука, когда оба устройства подключены к одной сети. Я искал, как использовать VNC, когда устройства НЕ подключены к одной и той же сети, и обнаружил, что могу сделать это, настроив ' сервер виртуальной частной сети (VPN) в сети с удаленным Ubuntu. system '.

Таким образом, я купил услугу VPN у VyprVPN с 30-дневной гарантией возврата денег. Я настроил VPN-соединение как на удаленном компьютере, так и на клиенте, как описано здесь . Оба устройства теперь могут подключаться к VPN и просматривать веб-страницы без каких-либо проблем, но я больше не могу использовать VNC.

Когда я попросил разъяснений у поставщика VPN, служба поддержки клиентов (бот) сообщила мне, что ' Удаленный доступ в настоящее время не поддерживается VyprVPN ', и предлагается установить их приложение на моем маршрутизаторе. Насколько мне известно, Покупка нового маршрутизатора, отвечающего требованиям VyprVPN, будет для меня приемлемой, но я не уверен, что это решит мою проблему, и что это наиболее подходящее решение для моего случая. Это кажется излишним, учитывая, что я просто стремлюсь установить доступ к удаленному рабочему столу с одного устройства с другого.

Какое решение вы бы порекомендовали для доступа к удаленному рабочему столу на одной рабочей станции (Ubuntu 20.04) с одного ноутбука (Ubuntu 20.04) по Интернету? Предпочтительны решения с открытым исходным кодом.

Заранее благодарим вас за любезную поддержку!

1
задан 17 August 2020 в 13:05

2 ответа

Два использования VPN

1. Enterprise VPN

VPN используется предприятиями (корпорациями) для предоставления удаленным пользователям доступа к офисной сети и компьютерным ресурсам. Например, удаленный сотрудник корпорации может получить доступ к внутренним сетевым дискам офиса с помощью VPN. В этом контексте, когда удаленные пользователи входят в корпоративный сервер VPN, их удаленный компьютер становится частью локальной сети офиса. Тогда удаленный сотрудник сможет использовать VNC для доступа к офисному настольному компьютеру.

Я думаю, что это тот вид использования VPN, о котором вы мечтали. Однако ваш удаленный компьютер находится дома, пока вы путешествуете, и у вас нет ИТ-отдела, который бы настроил для вас персональный сервер VPN. Вы можете настроить его самостоятельно, но я думаю, что это слишком сложно для безопасного подключения одного удаленного компьютера в контексте домашней сети.

2. Потребительский VPN

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

Это позволяет домашним пользователям скрывать свои действия в Интернете от своих собственных интернет-провайдеров, правительства и т. Д. Это также позволяет домашним пользователям чтобы «притвориться» находящимся в другой стране и «обмануть» сервисы потокового видео.

Поставщики услуг VPN потребительского уровня не устанавливают VPN-сервер в вашей домашней сети. Фактически, если вы используете VPN-клиент, скажем, из VyperVPN на своем домашнем рабочем столе, то, возможно, вы не сможете удаленно подключиться к этому рабочему столу во время путешествий. Это потому, что служба VPN заставляет ваш рабочий стол «притворяться» где-то еще! Поэтому вам придется отключить службу VPN на рабочем столе дома, когда вы путешествуете, прежде чем вы сможете удаленно подключиться с помощью VNC.

Почему бы просто не использовать VNC?

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

VNC over SSH

Вам необходимо сначала настроить ssh сервер на вашем домашнем настольном компьютере. См. Соединение двух компьютеров с помощью SSH в домашней локальной сети , чтобы узнать, как это сделать.

Если у вас есть ssh , работающий в вашей домашней сети, и вы можете ssh со своего ноутбука на домашний рабочий стол, когда оба подключены к домашней сети, вам нужно будет установить Remmina для использования VNC через SSH.

Откройте окно предпочтений рабочего стола Remmina, которое вы уже создали на своем портативном компьютере, для VNC на рабочем столе из вашей домашней сети:

enter image description here

Обратите внимание, что поле Server заполнено IP-адресом LAN выше. Ваш будет другим. Перейдите на вкладку SSH Tunnel :

enter image description here

Установите все флажки, как на картинке выше. Порт 22 является портом по умолчанию для ssh . Для простоты воспользуемся этим портом. Вы можете прочитать о том, как изменить порт по умолчанию на другой и настроить его позже.

Обратите внимание, я установил открытый ключ во время моей установки ssh . Если вы это сделали, выберите Открытый ключ в качестве метода аутентификации.

В противном случае выберите Пароль .

Попробуйте и убедитесь, что вы можете использовать VNC с портативного компьютера на настольный компьютер с помощью туннеля SSH когда оба компьютера подключены к вашей домашней сети.

В путешествии

Если вы хотите использовать VNC через SSH вне дома, вам нужно будет выяснить две вещи.

  1. Переадресация портов
  2. ] Система динамических доменных имен (DDNS)

1. Переадресация портов

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

На рисунке выше мой домашний рабочий стол имеет IP-адрес 192.168.0.101. Это локальный IP-адрес в моей домашней сети. Это не имеет значения вне моей домашней сети. Маршрутизатор назначает этот IP-адрес моему домашнему рабочему столу.

Вам следует настроить маршрутизатор на пересылку всех пакетов, отправленных через порт 22, на порт 22 локального IP-адреса вашего домашнего компьютера.

Точный процесс зависит от маршрутизатора к маршрутизатору. , и то, как именно это сделать, выходит за рамки этого сайта, поскольку это не имеет ничего общего с Ubuntu.

2. Система динамических доменных имен (DDNS)

Большинство домашних интернет-служб не получают статический IP-адрес от своего интернет-провайдера (ISP). Если у вас есть статический IP-адрес, назначенный вашим интернет-провайдером, проигнорируйте этот раздел.

Вы можете скопировать настройки удаленного рабочего стола в Remmina на новый и изменить IP-адрес сервера на статический IP-адрес, предоставленный вашим провайдером.

Если ваш интернет-провайдер динамически назначает вашему домашнему IP-адрес, то ваш домашний (внешний) IP-адрес может время от времени меняться. Вы можете найти свой внешний IP-адрес в Google , какой у меня IP-адрес , когда вы подключены к вашей домашней сети.

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

Вам необходимо использовать поставщика услуг DDNS. Есть несколько бесплатных , например duckdns.org. Вам нужно будет создать учетную запись в одном из них. После того, как у вас будет учетная запись, вам нужно будет настроить домашний рабочий стол для периодической связи с выбранным вами поставщиком услуг DDNS и обновлять любые изменения вашего домашнего IP-адреса. Поставщик услуг DDNS создаст интернет-адрес для вашего дома, например ivapshome.duckdns.org, где ivanpshome - это то, что вы выберете.

Точный метод настройки клиента DDNS на домашнем рабочем столе зависит от поставщика услуг DDNS. Выполните поиск на этом сайте и задайте другой вопрос (при необходимости), если у вас возникли проблемы с настройкой DDNS.

Примечание: Некоторые маршрутизаторы могут обновлять некоторые определенные службы DDNS. Вы должны проверить свой маршрутизатор и конкретную службу DDNS, которую вы используете. Точные методы различаются и выходят за рамки этого сайта.

В Remmina в поле Сервер введите предоставленный DDNS Интернет-адрес, например ivapshome.duckdns.org .

Теперь вам следует иметь возможность подключаться к домашнему настольному компьютеру с портативного компьютера во время путешествия.

Надеюсь, это поможет

и задайте другой вопрос (при необходимости), если у вас возникли проблемы с настройкой DDNS.

Примечание: Некоторые маршрутизаторы могут обновлять некоторые определенные службы DDNS. Вы должны проверить свой маршрутизатор и конкретную службу DDNS, которую вы используете. Точные методы различаются и выходят за рамки этого сайта.

В Remmina в поле Сервер введите предоставленный DDNS Интернет-адрес, например ivapshome.duckdns.org .

Теперь вам следует иметь возможность подключаться к домашнему настольному компьютеру с портативного компьютера во время путешествия.

Надеюсь, это поможет

и задайте другой вопрос (при необходимости), если у вас возникли проблемы с настройкой DDNS.

Примечание: Некоторые маршрутизаторы могут обновлять некоторые определенные службы DDNS. Вы должны проверить свой маршрутизатор и конкретную службу DDNS, которую вы используете. Точные методы различаются и выходят за рамки этого сайта.

В Remmina в поле Сервер введите предоставленный DDNS Интернет-адрес, например ivapshome.duckdns.org .

Теперь вам следует иметь возможность подключаться к домашнему настольному компьютеру с портативного компьютера во время путешествия.

Надеюсь, это поможет

0
ответ дан 24 August 2020 в 08:21

Вам не нужно используйте любой VPN для удаленного подключения с устройства в одной сети к устройству в другой сети. Что вам нужно сделать, так это настроить переадресацию портов на маршрутизаторе, на котором находится целевая машина (как именно это сделать, зависит от маршрутизатора, вы должны проверить руководство к маршрутизатору).

Если у вас есть рабочий VNC-сервер на порту 5900 вашей целевой машины, просто настройте переадресацию портов с порта 5900 на внутреннем IP-адресе этой машины на порт 5900 (или любой другой порт) на внешнем интерфейсе вашего маршрутизатора.

Затем из другой системы подключитесь с Remmina к публичный IP-адрес вашего целевого маршрутизатора, порт 5900 (или другой номер порта, который вы настроили).

Это должно работать, если ваш интернет-провайдер не защищает входящие соединения на своей стороне.

Относительно комментариев ниже этого протокола VNC небезопасно: это верно, это не так. Я описал здесь только самое простое решение.

Как уже упоминалось, вы можете туннелировать трафик VNC через ssh. То есть установите ssh-сервер на целевом компьютере и перенаправляйте не порт 5900, а порт 22 (порт ssh).

На другом компьютере просто подключитесь через ssh к общедоступному IP-адресу и перенаправленному порту и сообщите ssh на туннелировать порт 5900 на целевой машине, скажем, на порт 5901 на локальной машине (той, с которой вы подключаетесь). Вы можете сделать это с помощью следующей команды:

ssh -L 5901: localhost: 5900 -l

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

(Если вы перенаправили порт 22 вашей целевой машины на какой-то другой порт, кроме 22 на маршрутизаторе, вам необходимо дополнительно включить часть -p в приведенную выше команду).

После установления сеанса ssh используйте Remmina для подключения к порту 5901 на локальном компьютере. Порт 5901 на вашем локальном компьютере будет надежно подключен через ssh к порту 5900 на вашем целевом компьютере.

Remmina может использовать внутреннее ssh-туннелирование, без предварительного создания сеанса ssh вручную, но для меня это всегда проще туннелирование явно, как я показал здесь, чем попытки расшифровать, как настроено конкретное приложение и какие параметры мне нужно ввести :)

После установления сеанса ssh используйте Remmina для подключения к порту 5901 на локальном компьютере. Порт 5901 на вашем локальном компьютере будет надежно подключен через ssh к порту 5900 на вашем целевом компьютере.

Remmina может использовать внутреннее ssh-туннелирование, без предварительного создания сеанса ssh вручную, но для меня это всегда проще туннелирование явно, как я показал здесь, чем попытки расшифровать, как настроено конкретное приложение и какие параметры мне нужно ввести :)

После установления сеанса ssh используйте Remmina для подключения к порту 5901 на локальном компьютере. Порт 5901 на вашем локальном компьютере будет надежно подключен через ssh к порту 5900 на вашем целевом компьютере.

Remmina может использовать внутреннее ssh-туннелирование, без предварительного создания сеанса ssh вручную, но для меня это всегда проще туннелирование явно, как я показал здесь, чем попытки расшифровать, как настроено конкретное приложение и какие параметры мне нужно ввести :)

0
ответ дан 24 August 2020 в 08:21

Другие вопросы по тегам:

Похожие вопросы: