Как графически взаимодействовать с безголовым сервером?
=======================================================

 У меня есть сервер разработки Ubuntu на работе. Это старый стоечный сервер, который находится где-то в темнице компании, куда никто никогда не заходит. Единственный способ, которым он может работать, - это так называемый безголовый сервер (то есть без подключенного монитора / клавиатуры и приема только сетевых подключений). 

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

  Я провел небольшое исследование по этому вопросу, но не смог прийти к каким-либо определенным выводам. Я читал о попытке перенаправить среду X через ssh, что, по крайней мере, решило бы мои проблемы с безопасностью. Кто-нибудь может поделиться своим опытом в настройке этого? Есть ли другой способ, на который стоит обратить внимание? 

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

 

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

  Вам нужно настроить некоторые параметры аутентификации для его работы, хотя. Я полагаю, что для этого вам нужен xauth. 

  Это НАСТОЛЬКО намного быстрее, чем VNC. В моем опыте VNC всегда был довольно медленным. 

   **Редактировать:**  У меня нет опыта использования этого метода через Windows, но я нашел  [этот урок](http://www.math.umn.edu/systems_guide/putty_xwin32.html)  для вас, если вам интересно. 

 

  [Xming](http://en.wikipedia.org/wiki/Xming)  и  [XDMCP](http://en.wikipedia.org/wiki/XDMCP)  - отличный вариант. 

  Редактировать: 

  Xming - это x-сервер для Windows, который основан на Cygwin, имеет возможность совместно использовать буфер обмена и реализует различные макеты рабочего стола. 

  XDMCP - это простой и - важный - незашифрованный протокол (не используйте его через Интернет) для соединения X-displaymanager и x-server. 

 

 Вы можете использовать  [freenx](https://help.ubuntu.com/community/FreeNX)  вместо vnc. Freenx передает x-команды (с кэшированием) вместо растровых изображений. 

 

 Я не знаю о «лучшем» способе, я думаю, YMMV, но вот довольно полный обзор инструментов в вашем распоряжении:  [http://www.mynitor.com/2010/02/07/ 15-remote-desktop-solutions-для-linux /](http://www.mynitor.com/2010/02/07/15-remote-desktop-solutions-for-linux/)  

  Вот мой собственный опыт:   
 

 1. [nomachine nx](http://nomachine.com/)  - Впечатляющая скорость. В его основном режиме вы чувствуете, что вы находитесь перед консолью. Он поддерживает запуск новых сессий, а также теневое копирование консоли (но затенение медленнее). Он поддерживает отсоединение и присоединение к сеансам. Совместное использование буфера обмена работало только для меня, и я не смог это исправить. nomachine предлагает бесплатные серверные и клиентские пакеты с некоторыми лицензионными ограничениями.   
  [FreeNX](http://freenx.berlios.de/)  построен на библиотеках nomachine nx
2. [x2go](http://www.x2go.org/)  - Впечатлен также особенно перенаправлением звука, но я не сделал не используйте его так долго, как nomachine nx, потому что я узнал об этом позже.
3. [x11vnc](http://www.karlrunge.com/x11vnc/)  - Отличный vnc-сервер, который может подключаться к сеансу консоли. Используется в сочетании с nomachine nx. Я не уверен, что он может работать в автономном режиме, но я перечисляю его, если это возможно, потому что для меня это был самый быстрый vnc-сервер.
4. [xrdp](http://xrdp.sourceforge.net/)  - Выглядело многообещающе, но, похоже, не поддерживается. Решение для кочевников OpenSuse основано на xrdp, и я слышал, что кочевник - лучший опыт удаленного рабочего стола, который вы можете получить в Linux.
5. [teamviewer](https://www.teamviewer.com/index.aspx)  - Версия для Linux все еще бета, работает под Wine и потребляет некоторый процессор, но я использовал его довольно недавно, и я был доволен этим. Не уверен, работает ли он на сервере без монитора.

 

 Также рассмотрим  [xpra](http://code.google.com/p/partiwm/wiki/xpra) , который позволяет вам отсоединиться к запущенному сеансу из другого места, например, «screen for X». 

  Существует также  [Window Shifter](http://shifter.devloop.org.uk/) , интерфейс для xpra, который должен работать и для Windows, см. Демонстрацию . 

 

 Несмотря на то, что по своей природе он небезопасен, вы можете использовать  [XDMCP](http://tldp.org/HOWTO/XDMCP-HOWTO/)  в локальной сети. Я часто использую его для доступа к виртуальным машинам. Это похоже на вход в систему на вашем рабочем столе, за исключением того, что вы выбрали удаленный сервер. 

 

 Я использую  [x11vnc](http://www.karlrunge.com/x11vnc/) , который очень хорошо работает для меня. Это позволяет вам поддерживать постоянную графическую сессию между соединениями, так что вы можете отключиться и снова подключиться, и все будет так, как вы его оставили. Он также поддерживает туннелирование по SSH. См.  [эти документы сообщества Ubuntu](https://help.ubuntu.com/community/VNC/Servers#x11vnc)  для краткого описания и некоторых инструкций по его настройке. 

 

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

  Я использую x2go, который прост в использовании и исключительно прост в использовании. Это дает вам полный рабочий стол, как если бы вы подключили новый экран и клавиатуру к вашему серверу. Он имеет полную функциональность X. 

  x2go НЕ является решением для удаленного рабочего стола. Вы получаете совершенно новый сеанс. Однако вы можете отключить и повторно подключиться к тому же или другому компьютеру с клиентом x2go; ваш рабочий стол постоянный. Лучше всего то, что рабочий стол на вашем клиентском компьютере полностью масштабируется в режиме реального времени, просто изменяя размер окна. 

  x2go использует ssh для транспорта, поэтому ваши данные зашифрованы. Это упрощает обход брандмауэров. Скорость не влияет на использование ssh для транспорта. 

  Клиентское программное обеспечение x2go доступно для Linux, Windows и Mac. 

  Очень хорошее бесплатное программное обеспечение с открытым исходным кодом. Я использую это каждый день. 

 

 Я успешно использовал freenx в Ubuntu с помощью клиента Windows из <http://nomachine.com>. 

  Для меня это означало позволить мне использовать старый планшетный компьютер (который боролся даже с чистой установкой Windows XP) в качестве внешнего интерфейса в более мощную настольную машину Ubuntu. 

  Единственная проблема, с которой я столкнулся, заключалась в том, что вам нужно было отключить «Визуальные эффекты», чтобы получить приличную производительность. 

  Я собирался прокомментировать ответ txwikinger с предложением nxserver, но мне не хватает репутации.