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 он пытается запустить иксы прямо в моей виртуальной удалённой консоли. Как из этой консоли запустить физические иксы чтобы на мониторе сервера снова засветилась картинка? или удалённо это невозможно?

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

вы конечно легких путей не ищете, чтобы запустить флешку )))

как справедливо отметили в соседней ветке, если thunar использует SCSI layer для eject-a, то после команды:

sg_start -l -vvv /dev/<флешка>

или, иначе говоря

sg_start --load -vvv /dev/<флешка>

флешка медию не нашла, то остается только надеяться, что контроллер флешки найдет её (медию) после физического перевтыка. Это зависит от того, насколько широко трактует конкретный контроллер общую команду SCSI eject.

В обратном случае, есть шанс познакомится с оффтопик based controller specific vendor utils (типа mmtool)

PS глянул man, можно попробовать

g_start --start --load -vvv /dev/<флешка>

и опционально поиграться с power conditions

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

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

не совсем понял вопрос. Графическое окружение было, обычное xfce которое идёт в комплекте с дистрибом Манжаро (если выбираешь версию xfce). За этим ПК иногда работает бухгалтер, но это в том случае если он находится в том помещении где стоит сервер. В основном работают удалённо через ТимВьювер. Всё работало хорошо до момента когда ТимВьювер перестал подключаться. Связались со мной, попросили решить эту проблему. Я если что и делал на этом сервере - делал тоже через ТимВьювер. Позавчера, когда я не смог подключиться я зашёл в сервер через SSH. И стал морочиться с тем, чтобы добраться до рабочего стола, проще сказать чтобы его увидеть глазами так как это я делал через Тимвьювер. В процессе экспериментов я убил даже локальный X-cервер, т.е. если бы там к компьютеру подошёл человек он увидел бы вероятней всего экран с логами загрузки системы, но никак не графическую оболочку. Поэтому я и создал тему с топиком - как из консоли SSH запустить Иксы. Но в процессе общения в этой ветке я понял некоторые вещи. Иксы из консоли действительно можно запустить, используя :

sudo systemctl start lightdm

тоесть запустив оконный менеджер. И действительно, после выполнения этой команды я увидел в списке процессов Xorg на :0 дисплее. Но задача с желанием увидеть рабочий стол у меня так и осталась не решённой. В следующем посте я опишу какие уже действия попробовал сделать сегодня

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

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

прошу прощения, я и сам понимаю что туплю. Но зато с подсказками теперь я понял что запуск vnc-сервера представляет собой создание виртуальных Иксов.

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

Итак. Скачал новый образ Манжаро, который можно загружать как LiveCD и с ним работать. Скачал вот отсюда -

https://download.manjaro.org/xfce/21.3.6/manjaro-xfce-21.3.6-220729-linux515.iso

далее, дома у меня две операционки - такой же Манжаро и Виндовс11. Решил не трогать Манжаро, а на Винде загрузить этот образ в VirtualBox. Я создал виртуальную машину (указал что это ArchLinux x64), без диска HDD, c одним носителем - ISO образ скачанный выше. Загрузил Манжаро. И попытался на этом чистом Манжаро настроить VNC сервер, чтобы к нему можно было подключаться (с той же хостовой Винды например)

я открыл это руководство -

https://wiki.archlinux.org/title/TigerVNC

здесь пишут установить пакет, далее задать пароль. сделал. далее нужно отредактировать файл /etc/tigervnc/vncserver.users вписав туда пользователя дисплея. прописал так -

:10=manjaro

тоесть виртуальный дисплей у меня будет иметь номер 10, и к нему будет подключаться пользователь manjaro

далее ,в руководстве рекомендуют создать файл конфирурации ~/.vnc/config

создал. вот его содержимое

session=xfce4-session
geometry=1280x1024
localhost
alwaysshared

далее осталось (судя из руководства) запустить службу сервера с указанием виртуального дисплея. Поскольку я выше прописал уже номер дисплея =10, я запускаю сервер вот так -

sudo systemctl start vncserver@:10.service

ребята! сервис запускается и сразу завершается. Ну что я делаю не так? я морочил всем вам голову два дня, признаю. Но вот решил с нуля всё сделать, используя «самую дружелюбную и лучшую в мире Вики Арча, позволяющую любому чайнику выполнить любое требуемое действие». Да хер там! я нашёл вот эту статью:

https://linoxide.com/install-configure-tigervnc-arch-linux/

статья за 2021 год. В ней сказано то, чего нет на АрчВики. Например вот -

Editing the environment file
~/.vnc/xstartup functions like .xinitrc  and it's sourced by vncserver when being started. At a minimum, users should start a DE from this file. As an example, to start i3wm, you'll modify the file to:

$ cat ~/.vnc/xstartup

#!/bin/bash
exec i3 &>/dev/null
The file should be executable:

$ chmod +x ~/.vnc/xstartup
Stopping vncserver
To stop vncserver, use the command:

$ vncserver -kill :1

тоесть они пишут о том, что в стартовый скрипт нужно вписать оконный менеджер (вместо того чтобы писать его в файл конфига как сказано в АрчВики) короче. Я пробовал и так и так. НЕ РАБОТАЕТ! более того, в этой статье пишут что после установки пакета tigervnc даёшь команду

vncserver

и она типа просит задать пароль и создаёт файлы конфигов. ХЕР ТАМ! вот вывод у меня команды:


usage: vncserver <display>

народ, я пришёл к выводу что АрчВики это галиматья галиматьёй! те инструкции что есть там, справедливы лишь тогда, когда они написаны на текущую версию пакета. Потом каждая такая программа 9999999 раз меняется и соответственно должна меняться инструкция. Но этого никто не делает. Я могу конечно предположить что проблема в том что у меня не чистый Арч а Манжаро. Но ёлки палки, он же чуть менее чем полностью состоит из Арча. В итоге, я, использовав чистый образ Манжаро, запустив его в виртуалке, пытаясь настроить сервер по инструкции на АрчВики, либо другой инструкции из статьи которую привёл выше, ТАК ДО СИХ ПОР И НЕ МОГУ запустить этот чёртов vncserver чтобы он заработал. Возможно многие из вас пользуются дистрибутивами основанными на Дебиан, и поэтому есть небольшая разница. Мне стыдно кого-нибудь из вас попросить скачать образ Манжаро который я привёл выше, закинуть его в виртуалку и настроить vncserver. Но у меня это не получается. Более того, когда я пытался вчера и позавчера возиться со своим удалённым сервером из консоли SSH, у меня ещё было предположение что проблема в том, что у меня консоль а не локальный терминал. Но сегодня я уже делаю всё в виртуалке, в локальной консоли. И всё равно не работает…

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

тут_картинка_WTF_AM_I_READING.jpg

Давай сделаем проще. Ты сейчас берешь и скачиваешь дистр, который у тебя на сервере (комп, к которому ты хочешь подключиться), назовем его ДИСТР_0. Устанавливаешь на своем компе (с которого ты хочешь подключиться к серверу) VMWare, устанавливаешь туда ДИСТР_0. Настраиваешь на нем ссх доступ по быстренькому и, как мужчина, устанавливаешь nomachine и убеждаешься, что никаких там скриптов (окромя теХ, что через ссх надо ввести, чтоб установить/запустить сервис) не надо . С моим благословлением и божьей помощью у тебя всё получиться. и завязывай с тяжелыми наркотиками Не забудь открыть 4000 порт UDР,хотя может и ТСР тоже, не помню точно. Оба короч для теста открой

P.S. Или можешь даже ссх туннель прокинуть ssh -L 4000:localhost:4000 user@targetmachine -fN, если порты открывать без мазы

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

эти все бесконечные форки vnc не лучше редиректа иксов, кек) У меня гигабитную сетку клала трансляция. Самые топчики это TeamViewer, AnyDesk, NoMachine и собственно усё) Остальное - садо-мазо забавы для лихих пердоликов

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

у меня lightdm получается

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

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

Верно. Но щас такие прикольные заглушки на hdmi разъём продаются, которые эмулируют подключённый моник и видюха начинает показывать всю свою мощь если это не AMD

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

Давай сделаем проще. Ты сейчас берешь и скачиваешь дистр, который у тебя на сервере (комп, к которому ты хочешь подключиться), назовем его ДИСТР_0

скажу так - Nomachine я конечно непротив попробовать и благодарен за эту подсказку изначально, ещё с первого твоего поста. По той причине что когда увидел название, сразу вспомнил что про него хорошие отзывы. Но в моём случае нет возможности поставить NoMachine на удалённый ПК, кроме как из консоли SSH. В консоли я его поставил, но его ж как то ещё настраивать надо? в любом случае щас попробую в виртуалке сделать. Если смогу в виртуалке его организовать, то думаю и на удалённый компьютер поставится.

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

предполагаю, что к серверу монитор не подключён

подключён, за тем удалённым ПК иногда работают люди из бухгалтерии. Дело в том что проблем с Иксами больше нет. Я просто неправильно их запускал. Достаточно было стартонуть службу lightdm и всё. Поскольку Иксы запущены, к реальным Иксам можно подцепиться VNC, но мне захотелось всё таки не к реальным иксам цепляться, а чтобы VNCserver создал виртуальный X в который я бы смог войти удалённо. Но щас опробую NoMachine

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

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

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

За сим отчаливаю из этого треда на первой космической.

погоди, не бросай меня. Настройки файервола? вмысле :-D что ты понимаешь под файерволом в Манжаро? по умолчанию ж в системе нет никаких правил файера. Короче я поставил на виртуалку Манжаро а в нём Nomachine показываю вывод после установки

Packages (1) nomachine-7.10.1-1

Total Installed Size:  46.58 MiB

:: Proceed with installation? [Y/n] 
(1/1) checking keys in keyring                                              [###########################################] 100%
(1/1) checking package integrity                                            [###########################################] 100%
(1/1) loading package files                                                 [###########################################] 100%
(1/1) checking for file conflicts                                           [###########################################] 100%
(1/1) checking available disk space                                         [###########################################] 100%
:: Processing package changes...
(1/1) installing nomachine                                                  [###########################################] 100%
Running NX post_install script...
NX> 700 Starting install at: Thu Aug 04 18:31:54 2022.
NX> 700 Installing: nxclient version: 7.10.1.
NX> 700 Using installation profile: Fedora.
NX> 700 Install log is: /usr/NX/var/log/nxinstall.log.
NX> 700 Compiling the USB module.
NX> 700 Installing: nxplayer version: 7.10.1.
NX> 700 Using installation profile: Fedora.
NX> 700 Install log is: /usr/NX/var/log/nxinstall.log.
NX> 700 To connect the remote printer to the local desktop,
NX> 700 the user account must be a member of the CUPS System Group: sys.
NX> 700 Installing: nxnode version: 7.10.1.
NX> 700 Using installation profile: Fedora.
NX> 700 Install log is: /usr/NX/var/log/nxinstall.log.
/usr/NX/scripts/setup/nxnode: line 15822: [: too many arguments
NX> 700 Creating configuration in: /usr/NX/etc/node.cfg.
NX> 700 Installing: nxserver version: 7.10.1.
NX> 700 Using installation profile: Fedora.
NX> 700 Install log is: /usr/NX/var/log/nxinstall.log.
NX> 700 Creating configuration in: /usr/NX/etc/server.cfg.
NX> 700 Install completed at: Thu Aug 04 18:32:09 2022.
NX> 700 NoMachine was configured to run the following services:
NX> 700 NX service on port: 4000
Optional dependencies for nomachine
    xorg-xauth: allows logging into a headless machine [installed]
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...

по выводу видно что «NX service on port : 4000»

тоесть мы должны видеть прослушиваемый порт 4000, я прав? но это пиздёж! потому что -

[manjaro@manjaro ~]$ netstat -tulpn
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 100.69.244.5:50703      0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:25001         0.0.0.0:*               LISTEN      20518/nxclient.bin  
tcp        0      0 127.0.0.1:22932         0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:12001         0.0.0.0:*               LISTEN      20504/nxnode.bin    
tcp        0      0 127.0.0.1:7001          0.0.0.0:*               LISTEN      20504/nxnode.bin    
tcp6       0      0 :::22                   :::*                    LISTEN      -                   
tcp6       0      0 fd7a:115c:a1e0:ab:50703 :::*                    LISTEN      -                   
tcp6       0      0 ::1:631                 :::*                    LISTEN      -                   
tcp6       0      0 ::1:7001                :::*                    LISTEN      20504/nxnode.bin    
udp     8448      0 100.69.244.5:5353       0.0.0.0:*                           -                   
udp     8448      0 10.0.2.15:5353          0.0.0.0:*                           -                   
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           -                   
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           -                   
udp        0      0 0.0.0.0:41275           0.0.0.0:*                           -                   
udp        0      0 0.0.0.0:46735           0.0.0.0:*                           20504/nxnode.bin    
udp        0      0 0.0.0.0:41641           0.0.0.0:*                           -                   
udp6       0      0 :::58498                :::*                                -                   
udp6       0      0 :::5353                 :::*                                -                   
udp6       0      0 :::41641                :::*                                -      

может все мои проблемы связаны с тем что Манжаро полное Г? но тогда и Арч полное Г. Несогласен!

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

я в шоке. Открыл файл конфигурации сервера NoMachine

sudo nano /usr/NX/etc/server.cfg

в нём нашёл строку

#NXPort 4000

убрал вначале решётку, сохранил файл. Перезапустил службу. Как небыло порта 4000 в прослушиваемых так и нет…

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

наконец-то! запустил с рабочего стола графическую оболочку NoMachine, зашёл в статус сервера, выбрал настройки порта, старт службы помечен как Manual поэтому служба не работает, нажал Start. Фух, запустилось, теперь видно порт 4000 в прослушиваемых.

ну и?))) и где об этом написано здесь?) https://wiki.archlinux.org/title/NoMachine

вопрос №2. И как мне было это сделать из консоли SSH, если нет доступа к графической оболочке?)

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

ФУУУУХХ! наконецто с Винды подключился к виртуальному Манжаро через NoMachine! ура! спасибо большое за наводку) но, я попал в работающий сеанс Иксов на виртуалке. А если этого сеанса там нет????? если Иксов нет, значит ничего не выйдет? так, буду сейчас экспериментировать с удалённым ПК и ставить туда NoMachine

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

поставил, работает. Но только в случае если запущены Иксы на удалённом ПК. Если же Иксы не запущены (либо хочешь подключиться параллельно с основным сеансом) так как это описано вот здесь -

https://wiki.archlinux.org/title/NoMachine#Headless_server
  • не работает. Уже кучу форумов перечитал, делал различные решения - не работает.
corelinux
() автор топика
Ответ на: комментарий от SpaceRanger

ну так запускай иксы на удаленном пк

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

corelinux
() автор топика
13 декабря 2022 г.
Ответ на: комментарий от corelinux

возможно вы все используете другие дистрибутивы (не Манжаро) и поэтому у меня не все ваши советы получается выполнить.

ты извини конечно, но дело здесь вовсе не в различных дистрибутивах и прочих тех.моментах, а исключительно в полном непонимании тобою того, что ты делаешь и в незнании матчасти. тебе нужно было лишь поправить конфиг ssh, потом «попросить» сервер его перечитать и переподключиться по-новой, что бы наконец пробросить порт. но тут же пошли проблемы из-за самодеятельности и непонимания- kill -HUP вовсе не «убивает процесс», а лишь заставляет его перечитать конфиг. сигналы (этот самый HUP) - это основы-основ! и даже systemctl restart sshd не убивает уже открытые сеансы ssh. и такое поведение у большинства демонов. ты же не думаешь, что систему инициализации писали полные критины и не предусмотрели столь очевидного? или еще пример: тебе вовсе не нужно было запускать на сервере иксы, там нужно было лишь запустить нужные программы. но вместо этого ты начал делать непонятное, чем запутал и себя и других. ну и так далее, практически каждый совет ты понимал совершенно по своему и делал вовсе не то что нужно. короче, учись слушать людей и читать документацию. у того же арча есть великолепная вики где есть исчерпывающая статья по Xorg на русском в которой есть ссылка на статью по ssh, на главу про проброс портов с рабочими примерами. и тоже на русском.

r0mik
()

Можно запустить Xvfb,
и пробросить запущенный дисплей Xvfb (можно тот же vnc сервер на нем запустить, подключившись по vpn к vnc),
далее запускать в нем gui приложения,
но я например так и не понял как в нем запускать 2d игры,
но знаю что менеджер окон иногда должен быть запущен в Xvfb для запуска некоторых приложений.

drl
()
Ответ на: комментарий от corelinux
ssh -X user@remote.host

Далее на удалённой машине

firefox
В итоге браузер появится на твоей локальной машине.

Если белого ip нет, то делай доступ к локалке через OpenVPN

П.С. некропост

Jurik_Phys ★★★★★
()
Последнее исправление: Jurik_Phys (всего исправлений: 1)

В ssh сессии пробросить порт 5900 в туннель, и

x11vnc -create -localhost

Дальше цепляться любым vnc вьюером, tigervnc тем же. Развели тред на две страницы, игзперды недоделаные…

alegz ★★★★
()