Как установить x11 на linux

Обновлено: 05.07.2024

Removed symlink /etc/systemd/system/default.target. Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.

systemctl isolate graphical.target

После предыдущей команды в окне Virtualbox должны запуститься иксы

Установка GNOME

Или если вы хотите GNOME Desktop

sudo yum groupinstall "GNOME Desktop" "Graphical Administration Tools"

Установка Server with GUI

Первым делом выполните yum grouplist - чтобы увидеть список доступных вариантов.

sudo yum groupinstall "Server with GUI"

Определить тип X

Узнать кое-что о своих иксах можно командами

rpm -qa |grep xorg-x11-server-Xorg
rpm -qa |grep gnome

Если вы хотите проверить установлен ли у вас GNOME выполните

Если установлен - вы увидите версию

GNOME Shell 3.28.3

-bash: gnome-shell: command not found

Как перезапустить X-server

Перезапустить X-server (предварительно уйдя в консоль Ctrl + Atl + F1)можно командой

Как остановить X сервер

Если не знаете какой у Вас X сервер, можете попробовать:

Если и это не помогло попробуйте варианты отсюда

Как запустить X сервер

Работает, если у Вас X-server gdm, gdm3 или kdm если у Вас что-то другое, просто замените.

Перейти из X в терминал и обратно

В CentOS по умолчанию 6 tty под консоль: 1-6 и один под X: 7.

Поэтому, нажав Ctrl-Alt[F1-F6] вы попадёте в терминал.

А нажав Ctrl-Alt-F7 в иксы.

История

X Window System — оконная система, обеспечивающая стандартные инструменты и протоколы для построения графического интерфейса пользователя. Используется в UNIX-подобных ОС.

X Window System обеспечивает базовые функции графической среды: отрисовку и перемещение окон на экране, взаимодействие с устройствами ввода, такими как, например, мышь и клавиатура.

X Window System не определяет деталей интерфейса пользователя — этим занимаются менеджеры окон, которых разработано множество. По этой причине внешний вид программ в среде X Window System может очень сильно различаться в зависимости от возможностей и настроек конкретного оконного менеджера.

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

В контексте X Window System термины «клиент» и «сервер» имеют непривычное для многих пользователей значение: «сервер» означает локальный дисплей пользователя (дисплейный сервер), а «клиент» — программу, которая этот дисплей использует (она может выполняться на удалённом компьютере).

Система X Window System была разработана в Массачусетском технологическом институте (MIT) в 1984 году.

По состоянию на февраль 2016 года версия протокола — X11R7.7 — появилась в июне 2012 года.

X Window System часто называют X11 или просто X (в разговорной речи — «иксы»)

Я начал пользоваться linux совсем недавно, подвигло меня на это - нужда скомпилировать программу для VPS сервера. Использую для linux виртуальную машину VirtualBox. Три дня я выбирал различные linux OS. Некоторые не устанавливались, зависали. Наконец выбрал более-менее подходящую PcLinuxOS. Два дня я пытался перекинуть нужную мне программу из host Windows в PcLinuxOS. У меня это не получилось. Я загрузил файл в интернет и скачал его в PcLinuxOS. При попытке скомпилировать библиотеки для BlitzMax я получил ошибку - не хватало файла X11/Xlib.h (вроде так назывался. точнее сказать не могу - долго грузить виртуальную машину). Поискав в интернете еще сутки нашел информацию что мне нужно xorg-x11-devel. Пытался установить ее через консоль так:

apt-get install xorg-x11-devel

а консоль ответила мне так:

нет файлов или директорий.

Я устал боротся с Linux, очень устал.

Как мне сделать так, чтобы у меня все скомпилировалось? :(


Ставьте libx11-dev. В Debian-based этот пакет называется так. xorg-x11-devel - это название, присущее RPM-дистрибутивам.

Не помогло:( Вот что пишет консоль:

Это пишет компилятор:

Compiling:system.c In file included from /root/Documents/BlitzMax130/BlitzMax/mod/brl.mod/system.mod/system.c:2:0: /root/Documents/BlitzMax130/BlitzMax/mod/brl.mod/system.mod/system.h:50:22: fatal error: X11/Xlib.h: No such file or directory compilation terminated.


AITap ★★★★★ ( 26.01.14 22:24:01 )
Последнее исправление: AITap 26.01.14 22:24:30 (всего исправлений: 1)

Набрал apt-get update, что-то обновилось, apt-get install libx11-dev пишет тоже самое.

Вывод команды grep -r . /etc/apt/sources.list*


Ок, я ошибся. Это не Deb-based, а RPM-based с пакетным менеджером APT.

Спасибо помогло:) Компилятор продвинулся на несколько порядков дальше, компилилилось минут 10 и выдало: Как я понимаю ей теперь опен гл нужен. Не могли бы вы еще раз помочь?:)

x11vnc — это сервер VNC для Linux. Пакет x11vnc также включает несколько дополнительных утилит. VNC сервер x11vnc в первую очередь предназначен для работы в качестве службы или демона, но программа имеет и графический интерфейс.

С помощью VNC можно подключиться к другому компьютеру и работать за ним так, будто бы вы сидите перед ним. То есть VNC является аналогом RDP (Remote Desktop Protocol).

Как установить x11vnc

Пакет x11vnc присутствует в стандартных репозиториях большинства дистрибутивов Linux.

Для установки в Debian, Kali Linux, Linux Mint, Ubuntu и их производные:

Для установки в Arch Linux, BlackArch и их производные:

Быстрый запуск x11vnc

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

Запуск VNC сервера выполняется командой:

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

Как установить пароль для x11vnc

Запустите команду вида:

В этом случае ПАРОЛЬ в кодированном виде будет записан в указанный ФАЙЛ.

Также вы можете использовать следующий синтаксис:

В этом случае программа запросит пароль и его подтверждение, а также запросит подтверждение на запись пароля в файл.

Также можно не указывать файл для сохранения, то есть следующий синтаксис:

В этом случае пароль будет сохранён в файл по умолчанию, а именно в

Теперь чтобы сервер использовал пароль, запустите команду вида:

Если существует файл

/.vnc/passwd от другого приложения VNC, то сервер будет работать нормально и с ним.

Кроме опции -rfbauth, после которой нужно указать путь до файла с паролем, сохранённого с помощью опции -storepasswd, имеется ещё две опции по работе с паролем:

С опцией -passwdfile указывается путь до файла, в котором в первой строке хранится пароль в виде простого текста.

А опция -passwd позволяет установить пароль прямо в командной строке.

Опция -usepw сделает так, что автоматически будут использоваться файлы

/.vnc/passwdfile. А если они не существуют, то будет сделан запрос на создание файла

Помните, что пароль защищает только от несанкционированного подключения, но трафик всё равно передаётся в незашифрованным. Чтобы трафик шифровался, его нужно туннелировать через ssh или использовать опции x11vnc SSL: -ssl и -stunnel. Эти вопросы будут рассмотрены далее.

Файл настроек x11vnc

Поддержка файла конфигурации: если файл $HOME/.x11vncrc (то есть

/.x11vncrc) существует, то каждая строка в нем обрабатывается как один параметр командной строки.

Отключить использование файла конфигурации можно опцией -norc.

Для каждого имени опции начальный символ "-" не требуется. Например, строки "forever" и "-forever" является эквивалентными. Аналогично, «wait 100» или «-wait 100» являются приемлемыми и эквивалентными строками.

Начальные и конечные пробелы обрезаются.

Строки могут быть продолжены символом \ как последним символом строки (он становится пробелом).

К примеру, сохраним в файл

В результате служба x11vnc всегда будет использовать пароль для подключения, даже если запустить её без опций:

Обратите внимание, что путь до файла с паролем записан как абсолютный, а не относительный путь, чтобы независимо от способа запуска (например, при запуске демона от root) не возникало проблем с трактовой пути.

Почему x11vnc сама выключается

По умолчанию сервер x11vnc автоматически завершает работу при отключении клиента. Чтобы это не происходило, используйте опцию -forever.

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

Для достижения стандартного VNC поведения без совместного подключения, когда новый VNC клиент подключается, а существующий VNC клиент отбрасывается, используйте совместно опции -nevershared -forever. Этот метод также может использоваться для защиты от зависших TCP подключений, который не исчезают.

Графический интерфейс x11vnc

Для запуска графического интерфейса x11vnc используйте опцию -gui:

Графический интерфейс можно запускать даже когда служба x11vnc уже работает. Данный интерфейс передаёт команды службе с помощью опции, которая будет рассмотрена далее.


Как разрешить подключения только с определённых IP адресов

Для этого используйте опцию -allow host1[,host2..]

-allow применяется в режиме -ssl, но не в режиме -stunnel.

IPv6: по состоянию на x11vnc 0.9.10, хост может быть указан в числовом формате IPv6, например 2001:4860:b009::93.

Опция -localhost это в основном так то же самое, что и "-allow 127.0.0.1".

Примечание: если вы хотите ограничить, какой сетевой интерфейс прослушивает x11vnc, смотрите опцию -listen ниже. Например. "-listen localhost" или "-listen 192.168.3.21". В особом случае опция «-localhost» подразумевает «-listen localhost».

Если вы не хотите, чтобы x11vnc прослушивал ЛЮБОЙ интерфейс (очевидно, вы используете -connect или -connect_or_exit или планируете использовать удалённое управление: -R connect: host), используйте -rfbport 0

Как в x11vnc установить пароль только на просмотр

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

Для этого используйте опцию -viewpasswd СТРОКА.

Пароль для полного доступа (например, указанный опцией -passwd), также должен быть указан.

Как запретить любой ввод на VNC сервере

Для этого используйте опцию -viewonly, она делает так, что все VNC клиенты могут только наблюдать (по умолчанию выключено).

Как настроить способы ввода, разрешённые пользователям

Опция -input СРОКА делает точную настройку разрешённого пользовательского ввода. Если строка не содержит запятой "," настройка применяется только к обычным клиентам. В противном случае часть перед "," предназначена для обычных клиентов, а часть после для клиентов с правами только для просмотра. «K» - для ввода нажатия клавиши, «M» - для ввода движения мыши, «B» - для ввода нажатием кнопки, «C» - для ввода в буфер обмена, а «F» - для передачи файла (только ultravnc). Их присутствие в строке позволяет этот тип ввода. Например. «-input M» означает, что обычные пользователи могут перемещать только мышь, а «-input KMBCF,M» позволяет обычным пользователям делать все что угодно, и позволяет пользователям с правами только для просмотра перемещать мышь. Эта опция игнорируется, когда действует глобальное -viewonly (в этом случае все входные данные отбрасываются).

Настройка совместного доступа

Одновременное подключение нескольких клиентов к одному VNC серверу регулируется следующими опциями:

-shared

Разрешает одновременное подключение нескольких клиентов

-alwaysshared

Всегда обрабатывать новых клиентов как совместных

-nevershared

Никогда не обрабатывать новых клиентов как совместных

-dontdisconnect

Не отключать существующих клиентов когда приходит новое не-совместное подключение (вместо этого отклонять новые подключения)

Как прослушивать определённый IP адрес в x11vnc

Опцией -listen IP_АДРЕС можно установить, на каком сетевом интерфейс принимать подключения (по умолчанию на всех). Можно указать IP или имя хоста.

Как изменить имя рабочего стола VNC

Для этого есть опция -desktop ИМЯ, которая меняет имя рабочего стола VNC (по умолчанию это "LibVNCServer")

Как изменить номер используемого порта

Поменять порт можно с помощью опции -rfbport ЧИСЛО. Не забудьте указать это же значение при подключении просмотрщика VNC.

Демон службы x11vnc

x11vnc по умолчанию не регистрирует свой демон, но его легко настроить.

Создайте файл /etc/systemd/system/x11vnc.service

со следующим содержимым:

Установите пароль VNC (замените МОЙ_ПАРОЛЬ):

Для запуска службы:

Для проверки её статуса:


Для включения автозапуска службы при загрузке компьютера:

Для остановки службы:

Для удаления службы из автозагрузки

Более плавное обновление картинки

Попробуйте опцию -ncach ЧИСЛО, например:

Данная опция включает функцию кэширования пикселей на стороне клиента. ЧИСЛО по умолчанию равно 10, то есть -ncache 10.

Данная опция приводит к повышенному потреблению оперативной памяти. Рекомендуются значения ЧИСЛА от 6 до 12. ЧИСЛО должно быть чётным, если это не так, то он увеличивается на 1.

Также попробуйте опцию -ncache_cr.

Как запретить подключение всех клиентов

С помощью опции -deny_all запущенная служба x11vnc не будет принимать подключения. Действие данной опции можно отменить удалённым управлением службы, а именно командой:

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

Как менять опции x11vnc без перезапуска службы

Службой x11vnc можно управлять удалённо, например, завершать её работу или на лету менять опции. Для этого используется та же самая команда, которой запускается VNC сервер, то есть x11vnc с опцией -remote. У этой опции два псевдонима: -R и -r.

Список поддерживаемых команд большой, рассмотрим только несколько примеров:

  • Для установки уже запущенного сервера VNC используйте любую из следующих команд:
  • Для разрешения совместных подключений:
  • Следующая команда изменит масштабирование рабочего стола:

Команда для разрешения подключений, если VNC сервер был запущен с опцией -deny_all:

Для запуска последовательности команд используйте что-то вроде такого:

Для чтения команд из файла используйте:

Как создать SSL сертификаты для шифрования трафика VNC сессий

На сервере сгенерируйте сертификаты (замените оба вхождения «192.168.0.100» на IP-адрес сервера — это может быть как локальный, так и глобальный IP):

Для x11vnc нужен файл, в котором вначале идёт приватный ключ, а затем сертификат, создадим его следующей командой:

Эта команда просто объединила содержимое файлов vnc-server-private.pem и vnc-server.pem в файл server.pem.

Как использовать SSL для шифрования трафика VNC сессий

Сервер запустите с опцией -ssl после которой укажите путь до файла server.pem:

Скопируйте файл с сертификатом vnc-server.pem на компьютер с просмотрщиком VNC — то есть клиентам, которые будут подключаться — укажите в клиентском приложении путь до файла сертификата, например в TigerVNC:


После этого VNC трафик будет шифроваться:


Как использовать имя и пароль пользователя Linux для аутентификации VNC

По умолчанию для входа по VNC нужно установить специальный пароль для данной службы. Если вы хотите, чтобы аутентификация происходила с использованием учётных данных пользователей на сервере, то укажите опцию -unixpw [СПИСОК].

Для данной опции обязательно использовать шифрование с помощью SSL сертификата:

В результате будет использоваться Unix имя пользователя и пароль аутентификации. x11vnc будет использовать программу su для проверки пароля пользователя. [СПИСОК] — необязательный список разрешённых имён пользователей Unix, разделённых запятыми. Если строка [СПИСОК] начинается с символа "!" тогда весь список принимается как исключающий список. Ниже приведены параметры для каждого пользователя, которые могут быть применены.

Знакомый диалог "login:" and "Password:" представлен пользователю на чёрном экране внутри vncviewer. Соединение обрывается, если пользователь не в состоянии ввести правильный пароль в 3 попытках или не отправляет его до истечения 45-секундного тайм-аута. В этот период существующие клиенты доступны только для просмотра.


Если первым полученным символом является «Escape», то имя пользователя unix не будет отображаться после «login:» по мере его введения. Это может быть полезно для просмотрщиков VNC, которые автоматически вводят имя пользователя и пароль.

Поскольку подробное поведение su может варьироваться от ОС к ОС и для локальных конфигураций, проверьте режим перед развёртыванием, чтобы убедиться, что он работает правильно. x11vnc попытается быть консервативным и отклонит вход в систему, если произойдёт что-то ненормальное.

Имена пользователей в [СПИСКЕ] через запятую могут иметь индивидуальные параметры после «:», например, "fred:opts", где "opts" - это разделённый плюсом ("+") список "viewonly", "fullaccess", "input = XXXX" или "deny", например, "karl,wally:viewonly,boss:input=M". Для «input=» это K,M,B,C, о которых рассказано при описании опции -input.

Если элемент в списке «*», это означает, что эти параметры применяются ко всем пользователям. Это также подразумевает, что все пользователи могут войти в систему после предоставления действительного пароля. Используйте «deny», чтобы явно запретить некоторых пользователей, если вы используете «*», чтобы установить глобальную опцию. Если [СПИСОК] начинается с "!", символ «*» игнорируется для проверки, разрешён ли пользователь, но значения параметров, связанные с ним, применяются как обычно.


Настройка X11 forwarding используя ssh в Unix/Linux

Установка ПО для настройки X11 forwarding используя ssh в Unix/Linux

Установка xauth в Debian/Ubuntu

И так, выполняем команду:

Переходим к настройке.

Установка xauth в CentOS/RedHat

И так, выполняем команду:

Установка xauth в Fedora

И так, выполняем команду:

Установка xauth для других Unix/Linux ОС

Можно создать docker контейнер и запустить его.

Переходим к настройке.

Настройка X11 forwarding используя ssh в Unix/Linux

И прописываем (приводим к виду):

Так же, можно прописать:

Перезапуск SSH сервера:

  • Если используете Debian 6, Ubuntu или Linux Mint:
  • Если используете Debian 7, CentOS/RHEL 7, Fedora
  • Если используете CentOS/RHEL 6

Вышеупомянутая настройка, позволяет X11 форвардинг на хост сервера. Если вы хотели бы включить X11 forwarding для отдельного пользователя, вы можете использовать пользовательский файл конфигурации ssh (т. е. $HOME/.ssh/config). Таким образом, вы можете использовать переадресацию X11 только тогда, когда вы используете ssh для учетной записи пользователя. Открываем:

Мой файл выглядит следующим образом:

Если используете Vagrant, то внутри его, можно пробросить следующие опции:

Ну и далее запускаем все это дело.

Использование X11 forwarding через ssh в Unix/Linux

На локальном хосте должна быть установлена система с X11, чтобы отображать удаленные программы. Для того чтобы выполнить форвардинг, выполните:

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

Можно еще опции, передавать через коммандную строку:

Безопастность при использовании X11 forwarding через ssh

Читайте также: