LINUX.ORG.RU

помогите пожалуйста запустить X-сервер удалённо из консоли

 , ,


1

2

всем привет! у меня есть удалённый сервер (установлен Manjaro Linux), который работает по нескольку дней без доступа к нему человека. Таким образом, иногда нужно выполнять на нём некоторые задачи без возможности попросить живого человека «что-то запустить, закрыть или открыть» поставил на сервер TeamViewer. Если есть способ получше - подскажите пожалуйста. AnyDesk иногда глючит и не могу подключиться, поэтому перешёл на TeamViewer. На данный момент у меня возникла проблема, нужно срочно зайти в графическую оболочку а TeamViewer не может подключиться. При этом я к серверу подключаюсь при помощи ssh

зашёл сейчас в консоль удалённо. Установил tigervnc. на АрчВики нашёл настройку этого сервера, там предлагается создать запись для X11, модуль для systemd и перезагрузить X. Я не могу перезагружать сервер целиком, у него там проблема при старте, без человека он самостоятельно не загрузится, остановившись в самом начале после заставки (нужно нажимать F1 чтобы пошла загрузка дальше). Я могу лишь перезапустить X, либо перезагрузить Линукс в горячем режиме если это возможно. На данный момент хочется перезапустить X. Прочитал что сначала нужно убить текущий X. Нашёл PID c помощью команды

ps aux|grep X

после этого дал команду

kill pid_of_X

теперь стоит задача вновь запустить X-сервер. но когда я даю команду startx он пытается запустить иксы прямо в моей виртуальной удалённой консоли. Как из этой консоли запустить физические иксы чтобы на мониторе сервера снова засветилась картинка? или удалённо это невозможно?

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

https://unix.stackexchange.com/questions/12755/how-to-forward-x-over-ssh-to-run-graphics-applications-remotely

все это: tigervnc, teamviewer тебе не нужно

IvanRia
()
Последнее исправление: IvanRia (всего исправлений: 1)
Ответ на: комментарий от IvanRia

все это: tigervnc, teamviewer тебе не нужно

это да. Если к удалённому компу планируешь подключаться с Линукс. А если с Винды?) если просто хочешь увидеть рабочий стол без всяких заморочек… Это конечно всё хорошо если у тебя сервер работает 30 лет и за эти тридцать лет ты достиг 80-го левела в настройке редиректа Иксов))) а если твоя задача прийти на 10 разных линукс машин (а у меня такое бывает по работе) и за 5 минут настроить на каждой доступ, чтобы потом из дома работать.. И причём все эти 10 разных линукс машин ещё и с разными линукс-дистрибами) Друзья, перегревать мозг и на каждой из них настраивать редирект….не очень и хочется. Хочется так - сел за линукс машину, хоп, и через 2 минуты у тебя есть код доступа для этой машины (что даёт TeamViewer). Второй момент. Я пробовал редирект когда то давно) правда пробовал) И скажу так - если на сервере 1000Мбитный интернет и на клиенте 1000Мбитный интернет, подходит и VNC, который в принципе не так долго и настраивать. Но если сидишь с 3G-модема и твой сервер стоит посреди леса на 3G-модеме, поверьте, VNC это как черепаха. TeamViewer научились работать с медленным траффиком, и ты не замечаешь что у тебя медленный интернет. А когда я когда то пробовал редирект, при котором на клиенте отрисовываются программы работающие на сервере, то весь этот бутерброд работал через жопу простите за выражение.

corelinux
() автор топика
Ответ на: комментарий от corelinux

настроил сейчас всё как в этой статье - https://bozza.ru/art-134.html

подключился используя Putty к консоли сервера.

пробую запустить Thunar, хрен!

[manjaro@manjaro ~]$ thunar

(thunar:80720): Gtk-WARNING **: 17:37:30.623: cannot open display:
corelinux
() автор топика
Ответ на: комментарий от corelinux

редирект хорош тогда, когда сервер загружен и на нём запущены Иксы. А они у меня не запущены. И цель топика - спросить как эти чёртовы Иксы запустить если я могу работать только из удалённой консоли SSH

corelinux
() автор топика
Ответ на: комментарий от corelinux

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

IvanRia
()

Вообще, что такого сложного может потребоваться выполнить на сервере, что нужен удалённый рабочий стол? Я когда редиректил иксы, мне нужно было управлять виртуалками в virtualbox, не охото было в его cli копаться

IvanRia
()
Ответ на: комментарий от corelinux

когда сервер загружен и на нём запущены Иксы.

Не уловили суть, редирект, как раз, позволяет не запускать иксы на удалённой машине, только на своей, с которой подключаешься по ссх

IvanRia
()
Ответ на: комментарий от IvanRia

там всего-то надо отредактировать конфиг sshd

я выше даже указал статью, выполнив все шаги в которой я всё равно не смог подключиться. Иксы на Винде я установил и запустил. Редирект при подключении через Putty выбрал, но поскольку на моём сервере сейчас Иксы не запущены, ничего не получается. Я не могу понять как мне запустить Иксы. Как мне например запустить виртуальные иксы на 10м экране? ну чтобы если физический дисплей запущен на :0 то виртуальный на :10 или так нельзя? если можно, тогда как это делается?

corelinux
() автор топика
Ответ на: комментарий от IvanRia

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

возможно ошибаюсь) но я там выше писал что используя инструкцию всё сделал, установил Xming Сервер, создал подключение с редиректом, и при попытке запуска приложения оно пишет -

[manjaro@manjaro ~]$ thunar

(thunar:80720): Gtk-WARNING **: 17:37:30.623: cannot open display:
corelinux
() автор топика
Ответ на: комментарий от corelinux

Я не могу понять как мне запустить Иксы.

Ещё раз повторюсь, редирект позволяет не запускать иксы на удалённом компьютере, их даже ставить не надо, только иксовые либы, а запускать иксы достаточно только на своей локальной машине

IvanRia
()
Ответ на: комментарий от corelinux

cannot open display:

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

IvanRia
()
Ответ на: комментарий от corelinux

настроил сейчас всё как в этой статье - https://bozza.ru/art-134.html

В этой статье ни слова нет о том, как настраивать sshd на удалённой машине, нужно разрешить редирект иксов и перезапустить sshd

Вот тут. помогите пожалуйста запустить X-сервер удалённо из консоли (комментарий) Сказано, как это делать

IvanRia
()
Последнее исправление: IvanRia (всего исправлений: 1)
Ответ на: комментарий от IvanRia

нужно разрешить редирект иксов и перезапустить sshd

в той статье пишут вот это:

You may need to SIGHUP sshd so it picks up these changes.

cat /var/run/sshd.pid | xargs kill -1

короче надо убить сервис sshd для принятия новых настроек. Странно конечно, какой то прям костыль, я думал что systemctl restart sshd.service самостоятельно решает этот вопрос.

но дело в том, что убить sshd я не могу. Если я его убью, то потеряю доступ к консоли сервера, а он удалённый и к нему несколько суток не подойдёт ни один человек. Как мне убить sshd и при этом не вылететь с сервера?

corelinux
() автор топика
Ответ на: комментарий от dognabakni

А ты где находишься? Мне надо собрать вас вместе. Скорую вам вызвать

так бы и сказал, что не знаешь как находясь удалённо от ПК в консоли SSH запустить физический X-сервер (чтобы на мониторе сервера появилась картинка) )

corelinux
() автор топика
Ответ на: комментарий от Minona

Тебе нужно запустить графический менеджер входа в систему - GDM, sddm, lightdm

запустил так -

systemctl start lightdm

после этого действительно появилась строка с Xorg в выводе команды

ps aux|grep X

но почему то постоянно меняется pid, видимо сервер циклически перезапускается. Как его теперь остановить? я остановил его через kill pidofX

есть что нибудь нормальное? типа Xorg –terminate

corelinux
() автор топика

на клиенте делаешь

tigervncserver user@server:10

он запустит ssh user@server, там на server’e запустит X-vncserver

и скажет какой командой подключаться к этому Х-серверу

З.Ы. ты делаешь неправильно: ты вместо решения конкретной задачи, придумал что для её решения надо запустить Х-сервер на удаленном сервере.

Озвучь задачу, а не как ты её хочешь решить.

futurama ★★★★★
()
Последнее исправление: futurama (всего исправлений: 2)
Ответ на: комментарий от futurama

Озвучь задачу, а не как ты её хочешь решить.

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

удалённый сервер, используется ОС Manjaro (обычный ПК). Для того чтобы поглядывать за работой программ в нём использую ТимВьювер. Почему именно он? потому что сервер установлен в цеху на предприятии за городом, там нет проводного интернет, есть 4G-модем который собственно и даёт связь. Ещё давно, когда пробовал использовать VNC заметил что хорош он лишь тогда, когда быстрый интернет. Если интернет медленный, то даже открыть/закрыть браузер туговато отрисовывается (даже задав попроще цвет, допустим 8-bit). При этом ТимВьювер работает достаточно сносно даже при медленном интернет. Всё было хорошо до сегодня. Сегодня что-то сломалось и ТимВьювер перестал у меня подключаться. Вывод - надо попасть в графическую оболочку и посмотреть что там. В процессе своих экспериментов (ещё до написания этого топика) я грохнул X-сервер. Таким образом среди процессов у меня больше нет Xorg. Чтобы попасть в графическую оболочку посчитал что нужно попробовать настроить VNC. Но как? если не запущены Иксы, VNC ведь цепляется к Иксам. Либо к физическому :0 изображение которого мы видим на мониторе, либо к какому нибудь виртуальному. Стал пытаться запустить Иксы. Но при простом startx у меня высвечивает ошибку segmentation fault. Посчитал что ошибка из за того, что команду startx даю не из локального терминала на сервере, а из консоли SSH. Встала задача из консоли SSH запустить Иксы и к ним как нибудь подцепиться через VNC.

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

P.S. выше мне подсказывали настроить редирект Иксов. Я всё сделал, осталось только перезапустить сервис sshd чтобы принялись настройки по разрешению редиректа X11. Но если я остановлю sshd я потеряю доступ к серверу вообще. Перезагрузку серверу тоже нельзя делать. Попробовал systemctl restart sshd.service, но после этой команды всё равно не работает редирект Иксов на мою домашнюю машину.

corelinux
() автор топика
Ответ на: комментарий от NiTr0

startx в консоли.

писал что это не работает.

[manjaro@manjaro ~]$ startx


X.Org X Server 1.21.1.4
X Protocol Version 11, Revision 0
Current Operating System: Linux manjaro 5.15.55-1-MANJARO #1 SMP PREEMPT Fri Jul 15 09:45:39 UTC 2022 x86_64
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-x86_64 lang=en_US keytable=us tz=UTC misobasedir=manjaro misolabel=MANJARO_XFCE_2135 quiet systemd.show_status=1 apparmor=1 security=apparmor driver=free nouveau.modeset=1 i915.modeset=1 radeon.modeset=1

Current version of pixman: 0.40.0
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/home/manjaro/.local/share/xorg/Xorg.0.log", Time: Tue Aug  2 22:31:09 2022
(==) Using config directory: "/etc/X11/xorg.conf.d"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
(EE)
(EE) Backtrace:
(EE) 0: /usr/lib/Xorg (dri3_send_open_reply+0xdd) [0x563042c0fbed]
(EE) 1: /usr/lib/libc.so.6 (__sigaction+0x50) [0x7f6f0dbc58e0]
(EE) 2: /usr/lib/Xorg (xf86OptionValue+0xb) [0x563042c1c54b]
(EE) 3: /usr/lib/xorg/modules/extensions/libvnc.so (vncExtensionInit+0xa31) [0x7f6f0d2312f1]
(EE) 4: /usr/lib/Xorg (InitExtensions+0x89) [0x563042afbf69]
(EE) 5: /usr/lib/Xorg (SProcXkbDispatch+0x1809) [0x563042aef094]
(EE) 6: /usr/lib/libc.so.6 (__libc_init_first+0x90) [0x7f6f0dbb0290]
(EE) 7: /usr/lib/libc.so.6 (__libc_start_main+0x8a) [0x7f6f0dbb034a]
(EE) 8: /usr/lib/Xorg (_start+0x25) [0x563042af04b5]
(EE)
(EE) Segmentation fault at address 0x100000011
(EE)
Fatal server error:
(EE) Caught signal 11 (Segmentation fault). Server aborting
(EE)
(EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
(EE) Please also check the log file at "/home/manjaro/.local/share/xorg/Xorg.0.log" for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.

corelinux
() автор топика

запустил у себя виртуалку, выстаил в ее /etc/ssh/sshd_config опцию X11Forwarding yes перезапустил ssd /etc/init.d/ssh restart, подключился к серверу ssh -X root@192.168.1.129 и выполнил thunar, отлично запустился на моем клиентском хосте, на все 3-5 минут, на что тут можно целый день потратить?

вот, на всякий случай https://linux-notes.org/nastrojka-x11-forwarding-ispol-zuya-ssh-v-unix-linux/

вот переменная DISPLAY после подключения

# echo $DISPLAY
localhost:10.0
IvanRia
()
Последнее исправление: IvanRia (всего исправлений: 2)
Ответ на: комментарий от IvanRia

запустил у себя виртуалку, выстаил в ее /etc/ssh/sshd_config опцию X11Forwarding yes перезапустил ssd /etc/init.d/ssh restart, подключился к серверу ssh -X root@192.168.1.129 и выполнил thunar, отлично запустился на моем клиентском хосте

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

corelinux
() автор топика
Ответ на: комментарий от IvanRia

запустил у себя виртуалку

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

https://manjaro.org/download/xfce

corelinux
() автор топика
Ответ на: комментарий от corelinux

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

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

IvanRia
()
Последнее исправление: IvanRia (всего исправлений: 1)
Ответ на: комментарий от corelinux

Вы бы сначала попробовали поизучать логи. Явно ведь куда-то писались сообщения про перезапуск X-ов и т.д. Так, вроде нужно было:

systemctl restart display-manager

но по правильному вам нужно посмотреть что стартовал systemd при загрузке и рестартнуть это.

Установил tigervnc

Вы его, что из исходников ставили? Или почему пришлось создавать какой-то «модуль для systemd»?

Посчитал что ошибка из за того, что команду startx даю не из локального терминала на сервере, а из консоли SSH.

А здесь https://bugs.archlinux.org/task/73083 пишут, что ошибка может быть из-за libvnc. Убрать правки конфига X-ов пробовали?

mky ★★★★★
()
Ответ на: комментарий от mky

но по правильному вам нужно посмотреть что стартовал systemd при загрузке и рестартнуть это

у меня lightdm получается, если я убил Иксы, то выполнив команду systemctl start lightdm я их запускаю вновь?

Убрать правки конфига X-ов пробовали?

а как это сделать?

corelinux
() автор топика
Ответ на: комментарий от mky

пишут, что ошибка может быть из-за libvnc

попробовал удалить tigervnc. Да, после удаления если выполняю startx то уже нет ошибки сегментации.

вы спросили ставил ли из исходников. Нет, ставил конечно сам пакет. Но обратившись вот сюда: https://wiki.archlinux.org/title/TigerVNC

я так и не понял, как мне настроить сервер VNC таким образом, чтобы я мог подключаться к удалённому компьютеру не в его реальный X-сервер (имеется ввиду в тот что мы видим на мониторе) а в виртуальный. Или этого вообще нельзя сделать?

corelinux
() автор топика

Кстати, редирект иксов через ссх, как тут советуют - это как в киберпанк на zxSpectrum играть. С виртуалочки перенаправлять поток на одном и том же компе ещё куда ни шло, а вот за тыщщи км - ад и израиль. Напомни, почему ты не можешь установить гном, поставить туда Божественную nomachine и не делать мозги уважаемым людям?

SpaceRanger ★★
()
Последнее исправление: SpaceRanger (всего исправлений: 1)
Ответ на: комментарий от corelinux

в linux’e vncserver это Хы не привязанные к монитору (вирт.). Как раз для подкл. к локальному Х-серв. приходится извращаться с x11vnc или подобным.

[servername] # tigervncserver -geometry 1920x1080 -localhost no :10

запустит Х-ы с дисплеем номер 10, подключаться:

[clienthost] $ xtigervncviewer -CompressLevel 9 -QualityLevel 3 servername:10

futurama ★★★★★
()
Ответ на: комментарий от SpaceRanger

Кстати, редирект иксов через ссх, как тут советуют - это как в киберпанк на zxSpectrum играть

и не делать мозги уважаемым людям?

ну, уважаемым людям тоже ничего не мешало полдня мне советовать редирект :-D

вчера вечером я его всё таки смог. Напомню, что у меня этот удалённый сервер находится за городом, чуть ли не в поле. И интернет там только через модем 4G. Таким образом, скорость очень даже не ахти (особенно исходящая от сервера, так как модему протолкнуть сигнал до вышки тяжелей чем принять). Так вот выглядело это так. На удалённом ПК я поставил dropbear (альтернативный SSH сервер), подключившись к нему убил сервис sshd, поменял настройки разрешив редирект, вновь запустил службу sshd и НАКОНЕЦ-ТО редирект заработал.

ВНИМАНИЕ, ТЯЖЕЛАЯ ДЛЯ ВОСПРИЯТИЯ ИНФОРМАЦИЯ! подключаюсь по ssh -X user@server попадаю в удалённую консоль. пишу thunar & ждём. 10 секунд 20 секунд 30 секунд О ЧУДО! ПОЯВИЛОСЬ ОКНО THUNAR!!! и хрен с ним что ещё не видно папок и текста, главное уже окно есть! ждём ещё немного. УРАААА! наконец привычный Тhunar на моём домашнем рабочем столе. признаю, метод рабочий. Хромает немного скорость, зато вся мощь Линукс мне была доступна.

не ребят, с редиректом завязал. Теперь переходим к NoMachine первый вопрос - КАК? я могу сидеть только в удалённой консоли через SSH подключился, поставил там NoMachine из AUR дальше поставил его на домашнем Манжаро. Подключаюсь, болт. Пишет удалённый сервер не хочет подключаться по порту 4000 захожу в удалённую консоль, проверяю висит ли сервис NoMachine. Висит, вроде всё норм. Что дальше?

corelinux
() автор топика
Ответ на: комментарий от corelinux

Подключаюсь, болт. Пишет удалённый сервер не хочет подключаться по порту 4000 захожу в удалённую консоль, проверяю висит ли сервис NoMachine. Висит, вроде всё норм. Что дальше?

ssh -L4000:localhost:4000 user@server

и теперь подключайся не к server’у, а к локалхост

futurama ★★★★★
()

Я вот тут читаю и никак не могу осознать, а что же такого на СЕРВЕРЕ может бежать, что требует X?

Как мы вообще до такого докатились? Из треда мельком увидел, что ТС хочет запустить ФАЙЛОВЫЙ МЕНЕДЖЕР. Что ls уже не работает?

her_s_gory
()

друзья! скажем так, возможно вы все используете другие дистрибутивы (не Манжаро) и поэтому у меня не все ваши советы получается выполнить. Но к сожалению, на данный момент, я до сих пор не понял как мне находясь в SSH-консоли удалённого сервера настроить связь таким образом, чтобы я видел рабочий стол сервера и мог на нём запускать программы. Единственное, к этой задаче я бы добавил такой момент - можно ли запустить параллельный X-сервер, чтобы я мог на нём удалённо работать независимо от человека который локально работает за сервером?

я пробовал NoMachine. Но если я правильно понимаю, его надо установить локально, из терминала самого сервера. Потому что у Nomachine есть стартовый скрипт, который в принципе после установки остальных пакетов настраивает систему. Если же пытаться установить его в консоли SSH, он этот скрипт не выполняет…

поэтому прошу вас, помогите пожалуйста. К примеру всё выглядит так:

  1. подключаюсь по SSH ssh manjaro@server
  2. теперь я в консоли сервера. выполняю ps aux|grep X вижу что Иксов нет (нет ни одного процесса со строкой Xorg
  3. что мне сделать самое простое, чтобы я на домашнем ПК мог войти в графическую оболочку, запускать там программы ? (как если бы я подключился через TeamViewer.

единственное - редирект Иксов больше прошу не предлагать) я его опробовал, он работает) и когда я описывал работу редиректа, вы спросили меня - зачем тебе так нужен Thunar если можно mc. Ребят, да не нужен мне Тунар. Мне нужны бухгалтерские программы на этом сервере. Тунар я запустил лишь для примера, чтобы описать как именно он у меня открылся на домашней машине. А открывался он еле еле и очень долго. Поэтому я 100% завязал с редиретом Иксов. Мне нужна простейшая программа для управления графической оболочкой. Прочитал что это tigervnc правильно ли я понимаю, что даже не имея запущенных иксов на сервере, я запуская сервер VNC создаю как будто виртуальный сервер и подцепляться буду именно к нему? т.е. если в этот момент кто то работает на сервере локально я ему не буду мешать а он мне, верно?

corelinux
() автор топика
Ответ на: комментарий от corelinux

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

SpaceRanger ★★
()
Ответ на: комментарий от corelinux

помогите пожалуйста запустить X-сервер удалённо из консоли (комментарий)

любой vnc-server это Хы с отображением не на монитор, а на vnc-viewer – т.е. это >>> Xvnc <<<

Это понятно? (надоело ходить по кругу)

Для локального монитора исп. >>> Xorg <<<

Для удаленного подключения к Xorg сначала надо запустить x11vnc на сервере, а потом vnc-viewer на клиенте

futurama ★★★★★
()