Удаленный графический интерфейс, клиент Windows, сервер Ubuntu 16.04

Мне нужен GUI-доступ к моей удаленной Linux-машине с ноутбука с Windows. С этой целью я попробовал 2 метода на данный момент:

а) установлены xrdp и tigervnc. Это работает, но это чертовски медленно, плюс я обеспокоен проблемами безопасности (см. Ниже).

б) ssh -X. Это позволяет иметь на своем ноутбуке одиночные приложения X11, чего было бы достаточно, но, как ни странно, это даже медленнее, чем полный рабочий стол с xrdp.

Итак, у меня есть пара вопросов:

  1. Можете ли вы предложить альтернативные, более быстрые методы?
  2. Как насчет безопасности с xrdp/vnc? Может ли он туннелироваться с помощью ssh без дополнительных скоростных потерь? Если да, то как это сделать? Если нет, могу ли я пройти аутентификацию без пароля, используя некоторые ssh-подобные зашифрованные ключи?

Большое спасибо.

4 ответа

Командная строка достаточно

Я понимаю, что идея интерфейса командной строки поначалу может быть немного неудобной, но на самом деле это разумный выбор. Вы используете интерфейс командной строки, как на рабочем столе, поэтому вы уже должны быть немного знакомы с bash / zsh / shell по выбору.

Преимущество - быстро и безопасно (через ssh).

Среды рабочего стола IMO не очень помогают на серверах, поскольку все стороны сервера - командная строка.

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

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

Для управления серверами используйте ssh + screen или альтернативу screen - есть ли дружественная пользователю альтернатива screen?

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

Обязательно защитите ssh с помощью наименьшего количества ключей http://bodhizazen.com/Tutorials/SSH_security

nano / vim / emacs - отличные инструменты для редактирования. Вы можете использовать vim + ssh для редактирования файлов удаленно https://unix.stackexchange.com/questions/202918/how-do-i-remotely-edit-files-via-ssh

Или вы можете смонтировать свою файловую систему через sshfs https://help.ubuntu.com/community/SSHFS


Графические инструменты - веб-решения лучше, чем настольные

Если вы чувствуете, что вам НУЖЕН графический интерфейс, используйте один из многих веб-интерфейсов. Эти инструменты работают быстрее, чем VNC, более безопасны, чем VNC, графические интерфейсы и специфичные для сервера задачи.

Вы можете защитить их через https или ssh (в зависимости от инструмента).

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

  1. Webmin http://www.webmin.com/

  1. Кокпит http://cockpit-project.org/

И при необходимости есть несколько специализированных веб-интерфейсов, таких как

  1. phpmyadmin - управляет базами данных https://www.phpmyadmin.net/

  1. Витруализация также имеет несколько вариантов.

  1. Существует множество альтернативных инструментов, в которых вы можете найти множество веб-интерфейсов, если будете искать в Google. https://www.tecmint.com/web-control-panels-to-manage-linux-servers/

Я использую два разных варианта:

  1. Teamviewer. Бесплатно для некоммерческого использования, кроссплатформенность, включая Windows, macOS, Linux и Raspberry Pi. Одна программа для установки как для удаленного управления другими устройствами, так и для удаленного доступа с других устройств.

    Также имеется приложение для iOS и Android, для удаленного управления на ходу.

  2. RealVNC. Бесплатно для некоммерческого использования до 5 устройств. Также кроссплатформенность, включая Windows, macOS, Linux и Raspberry Pi. Вы должны установить одну программу для удаленного управления (которая также используется в качестве средства просмотра VNC). Сервер представляет собой отдельную программу.

    Также есть приложение для iOS и Android.

Вы можете использовать Chrome Remote Desktop. Вы должны установить Google Chrome на свой компьютер с Linux, добавить расширение в Google Chrome и войти в систему, используя свою учетную запись Google, чтобы иметь возможность использовать его.

Поскольку я использовал Chrome Remote Desktop, мне не нужны никакие другие платные программы. Вы даже можете получить доступ к своим машинам с вашего мобильного устройства - на нем есть устройства Android и iOS (для iPhone и iPad).

Эта страница содержит больше информации об ее установке. Доступ к другому компьютеру с помощью Chrome Remote Desktop

Предполагая, что проблемы с производительностью связаны с пропускной способностью, а не с ограничениями ресурсов компьютера, попробуйте X2Go https://wiki.x2go.org/ - он основан на оригинальных библиотеках NX, которые оптимизированы как для безопасной, так и для низкой пропускной способности.

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