Старый друг - лучше новых двух (тут трется воскресший freenx-server)

Модераторы: dimbor, Модераторы разделов

Djelf
Сообщения: 614
ОС: Гигтег+Цшт32

Re: Старый друг - лучше новых двух

Сообщение Djelf »

Хм, прибил все залипшие nx* хвосты. Ошибка ушла, но сессия не поднялась.
Ну можно и старый nxwin использовать, но хотелось бы все таки попытаться поднять новый, но что в нем могло поломаться я даже представить себе не могу. Предположений пока никаких нет.
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1502
Статус: Подвинутый участник

Re: Старый друг - лучше новых двух

Сообщение dimbor »

Ну теперь я это хотя бы увидел. Смею надеяться, починю. Мы же знаем: Своевременная диагностика - залог качественного оказания ритуальных услуг!
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1502
Статус: Подвинутый участник

Re: Старый друг - лучше новых двух

Сообщение dimbor »

Сравни-ка session логи на старом и новом сервере при восстановлении. Да и у nxwin тоже интересно. Он же не просто так падает, а прямиком в stackdump, извращенец этакий. А на сервере причина очередного суспенда: Display failure.
Спасибо сказали:

Djelf
Сообщения: 614
ОС: Гигтег+Цшт32

Re: Старый друг - лучше новых двух

Сообщение Djelf »

Серверные логи хрен сравнишь построчно, но ничего подозрительного не вижу.
У меня на W10x64 nxwin не создает stackdump. Видимо придется дебажную версию собирать.
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1502
Статус: Подвинутый участник

Re: Старый друг - лучше новых двух

Сообщение dimbor »

Смутно помню, вроде местоположение дампа зависит от текущего каталога в момент запуска клиента. У opennx так было.
Добавлено (15:37):
логи я имею в виду именно session из C-*
Добавлено (16:07):
Да и могут быть там интересны строчки между Session: Session resumed at и Session: Suspending session
Именно в таком порядке.
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1502
Статус: Подвинутый участник

Re: Старый друг - лучше новых двух

Сообщение dimbor »

Признаю свое временное поражение в борьбе с созданной тобой неведомой хренью. Перепробована куча вариантов. Клиентские логи вылизал чище, чем кот - яйца. Попутно:
1) Отловил и задавил вставляние сервером 'NX>105' в произвольное место.
2) Шлю наконец одним пакетом данные 700-710.
3) Задушил таки левые мессаги stderr сервера.
4) Перекрыл также кран в клиент на семейство статусов 'NX>100? *'. Судя по коду опенэныкса и поведению nxclient, они им до звезды.

Все без толку, однако - валится твой nxwin грязными тормашками вверх при восстановлении. Ты хоть потом в комит ткни, где еще не брякается.
Спасибо сказали:

Djelf
Сообщения: 614
ОС: Гигтег+Цшт32

Re: Старый друг - лучше новых двух

Сообщение Djelf »

Да и хрен с ним!
Старый работает без нареканий, что на библиотеке от cygwin3, что на cygwin2.
И cpu на glxgears все равно около 0%, ускорять его уже некуда. И новый VcXsrv через nxssh работает примерно с такой же скоростью.
Не брякается, вернее не всегда брякается на nx_3.5.1-eter12, но там и юбунта 12.04 с древним w@e.
И у меня не брякается! У меня nxwin остается висеть. Кинь крэшдамп, может получится найти где оно падает.
А то, я повторяюсь, мне нефехоа не понятно, как клиент может безукоризненно работать с новой сессией и падать с восстановленной и в чем кроется отличие.
Трассировать слишком много чего можно, но с чем сравнивать?

С другой стороны не понятно что делать, если в nx-libs nxcomp/nxproxy загубят (чуток в nxcomp уже загубили), тогда возможно пересобирать придется, а где взять cygwin2?

Оставлю тут, для истории, что в nx-libs-3.5.99.23 было поломано.
Spoiler
Loop.c
void SetupDisplaySocket(int &addr_family, sockaddr *&addr,
...
- snprintf(unixSocketDir, DEFAULT_STRING_LENGTH, "/tmp/.X11-unix");
+ snprintf(unixSocketDir, DEFAULT_STRING_LENGTH - 1, "%s/.X11-unix", control -> TempPath);
P.S. Странно сделали этот 3й cygwin.
В cygwin32 32х битная версия dll`ки cygwin3, и 64х битная cygwin2, а в cygwin64 все наоборот. оО
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1502
Статус: Подвинутый участник

Re: Старый друг - лучше новых двух

Сообщение dimbor »

Да там все коротко:

Код: Выделить всё

Exception: STATUS_ACCESS_VIOLATION at eip=004034EF
eax=00000003 ebx=8029EF58 ecx=00000002 edx=80329300 esi=00000002 edi=00000000
ebp=00000003 esp=0028C760 program=C:\PROGRA~2\OpenNXCE\bin\nxwin.exe, pid 3272,thread main
cs=0023 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame     Function  Args
Ни разу не рокетмэн, чтобы за пол-секунды поцепиться к нему дебагером.

ЗЫ: комиты новые в гите, как обычно. Теоретически скорость должна.
Добавлено (17:50):
Такое у меня подозрение, nxwin с nxssh где-то блудит при перекидывании каналов. В него прилетает какой-то мусор, и он удивляется.
Добавлено (17:50):
Возможно все стало слишком быстро
Спасибо сказали:

Djelf
Сообщения: 614
ОС: Гигтег+Цшт32

Re: Старый друг - лучше новых двух

Сообщение Djelf »

А как тебе такая штука?
https://gyazo.com/7373374b565b2773cf10b8ceceb9fe82
Предполагаю (вернее будет сказано, что гадаю по чашке с кофе): Видимо создался первый Х-сервер, потом как то определяется, что он не годен (почему?), был создан второй Х-сервер, но первый, тот остался висеть и видимо протух убивает nxssh так что кажется что сигнал разорван с той стороны.
Ой, ой, давай пока завяжем с этой хренью? Когда припечет, тогда и вернемся. Согласен?
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1502
Статус: Подвинутый участник

Re: Старый друг - лучше новых двух

Сообщение dimbor »

Оф кос. Ковыряюсь дальше.
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1502
Статус: Подвинутый участник

Re: Старый друг - лучше новых двух

Сообщение dimbor »

Как заметка: Было известно, можно завесить сеанс с одного клиента и восстановить со второго. Но раньше агент не позволял мигрировать между клиентскими системами. Теперь позволяет. Правда в одну сторону. Запущенное с вин клиента, поднимается с линуксового. Наоборот - тоже, только там не видно нифига.
Можно потом на пенсии исследование провести о возможном изменении параметров в screeninfo на лету.
Спасибо сказали:

Djelf
Сообщения: 614
ОС: Гигтег+Цшт32

Re: Старый друг - лучше новых двух

Сообщение Djelf »

dimbor писал:
27.03.2020 22:30
Как заметка: Было известно, можно завесить сеанс с одного клиента и восстановить со второго.
Читал в старом сервере подобную заметку.
Вроде как-то по другому звучало, что то вроде такого было: "на винде на восстановление сессии не надейтесь".
Но как мы можем сейчас наблюдать - оно работает.
Как нибудь потом, действительно можно и стоит поработать над телепортом сессий, но будет ли стоить оно затраченных усилий?
Спасибо сказали:

dimontv
Сообщения: 19

Re: Старый друг - лучше новых двух

Сообщение dimontv »

Можно ли freeNX сервер установить в ubuntu 20.04? Если да, то что надо совершить для этого?
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1502
Статус: Подвинутый участник

Re: Старый друг - лучше новых двух

Сообщение dimbor »

Тут же просроченный кружок "очумелые ручки as is".
Сделать надо следующее: Скачать имеющийся deb и попробовать. При ругани на зависимости, поставить их средствами apt. Если таких пакетов нет, собрать deb из гита, поправив эти зависимости. Потом поставить.
Все про сборку вроде в теме описано.
Спасибо сказали:

Djelf
Сообщения: 614
ОС: Гигтег+Цшт32

Re: Старый друг - лучше новых двух

Сообщение Djelf »

Скрипт установки.

Код: Выделить всё

#!/bin/bash
apt install wget
wget https://unixforum.org/up/nxman/freenx-server_1.0.0_amd64.deb
dpkg -i ./freenx-server_1.0.0_amd64.deb
apt install -f
dpkg -i ./freenx-server_1.0.0_amd64.deb
echo PubkeyAcceptedKeyTypes=+ssh-dss >> /etc/ssh/sshd_config
/etc/init.d/ssh restart
nxsetup --install --auto
Только не факт что freenx-server тут свежий.
Я бы пересобрал https://github.com/dimbor-ru/freenx-server из ветки up-conn-speed.
Спасибо сказали:

dimontv
Сообщения: 19

Re: Старый друг - лучше новых двух

Сообщение dimontv »

Djelf писал:
20.05.2020 14:59
PubkeyAcceptedKeyTypes=+ssh-dss
Что-то это не срабатывает. Клиент пишет "DSA key corrupted or has been protected with a passphrase"
Ключ перегенерил nxkeygen'ом
Учетка nx включена, правда пришлось задать ей пароль.
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1502
Статус: Подвинутый участник

Re: Старый друг - лучше новых двух

Сообщение dimbor »

Чет фантастика какая-то. Пароль учетке nx не нужен. Непосредственный nxkeygen не нужен тоже. Вся мудрость выдается по команде nxsetup --help. Если при --install отсутствует ключ --setup-nomachine-key, сгенеренный закрытый ключ должен быть у клиента. Логин и пароль в клиенте - пользовательские.

UPD: Также имеется показательный nxsetup --test.
А еще встречался с наличием чего-то вроде AllowedUsers в sshd_config. Тогда туда юзера nx надо добавлять.
Спасибо сказали:

Djelf
Сообщения: 614
ОС: Гигтег+Цшт32

Re: Старый друг - лучше новых двух

Сообщение Djelf »

dimontv писал(а):
21.05.2020 15:31
Что-то это не срабатывает. Клиент пишет "DSA key corrupted or has been protected with a passphrase"
Ключ перегенерил nxkeygen'ом
Учетка nx включена, правда пришлось задать ей пароль.
Ээээ... Ну кто же заворачивает кучу действий в одно?
Сначала нужно было проверить поднялся ли сервер и только потом последовательными, осмысленными действиями что-то менять.
Пишет, пишет тебе что ключ закрыт на пароль. NX-клиент не умеет работать с ключами с паролем.
Хочешь чтобы такие ключи работали - пили OpenNX (он их тоже не умет, но хотя бы его код открыт).
На самом деле можно спокойно работать и с дефолтным NX-ключем. Прикрываешь сервер Wireguard`ом и не паришься с этими ключам.

P.S. На ubuntu 20.04 скрип и нарисовал, по последовательности действий. У меня как раз виртуалка без NX-сервера была.
Иначе было бы как dimbor писал: "Тут же просроченный кружок "очумелые ручки as is".". :crazy:
Спасибо сказали:

dimontv
Сообщения: 19

Re: Старый друг - лучше новых двух

Сообщение dimontv »

Вернул стандартный ключ - аутентификацию проходит. Тот, что я генерил, в два раза больше по размеру. Надо, наверное, 1024 бита ставить. Потом попробую.
Теперь останавливается на Downloading session information.
В логе на сервере "Пользователю nx запрещено выполнять '/bin/bash -c /usr/bin/nxnode --startsession' с правами user1
В какую-то группу надо NX пользователя включить?
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1502
Статус: Подвинутый участник

Re: Старый друг - лучше новых двух

Сообщение dimbor »

В группу sudo попробовать. Но раньше этого не требовалось.
Спасибо сказали:

Djelf
Сообщения: 614
ОС: Гигтег+Цшт32

Re: Старый друг - лучше новых двух

Сообщение Djelf »

Как то ты не правильно nx-server поставил. Куда у тебя делся /etc/sudousers.d/nxserver ?
Запусти nxsetup без ключей, будет и вопрос и генерация кастомного ключа.
Спасибо сказали:

dimontv
Сообщения: 19

Re: Старый друг - лучше новых двух

Сообщение dimontv »

Докладываю. NX в группу sudo добавлен и всё завелось. Можно бредить с ключем)))
Добавлено (15:52):
Djelf писал:
22.05.2020 14:57
Куда у тебя делся /etc/sudousers.d/nxserver ?
всё на месте было.
Спасибо сказали:

Djelf
Сообщения: 614
ОС: Гигтег+Цшт32

Re: Старый друг - лучше новых двух

Сообщение Djelf »

Хм, возможно "nxsetup --install --auto" не сработал. Я без этих ключей ставил. У меня на 20.04 завелось без включения в группу sudo.
Непонятно тогда как оно у меня работает ;) В /etc/sudousers закомментирован #includedir /etc/sudousers.d
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1502
Статус: Подвинутый участник

Re: Старый друг - лучше новых двух

Сообщение dimbor »

Djelf писал:
22.05.2020 16:32
Непонятно тогда как оно у меня работает ;) В /etc/sudousers закомментирован #includedir /etc/sudousers.d
А это и не комментарий. Решетка тут - это си-шная отрыжка, обязательная к применению. Сам удивился, убрав и получив ошибку. Там в man дофига слов про это.
Спасибо сказали:

dimontv
Сообщения: 19

Re: Старый друг - лучше новых двух

Сообщение dimontv »

Я давал команду nxsetup --install без ключа --auto. В тот момент сообщения Djelf не было и я делал, как раньше.
Спасибо сказали:

dimontv
Сообщения: 19

Re: Старый друг - лучше новых двух

Сообщение dimontv »

С таким openssh 1:8.2p1-4 ключ DSA генерится какой-то убогий. Так и не смог с ним зайти. Сгенерил на другой машине с ubuntu 12.04. Руками добавил пользователю NX этот ключ и стало подключаться.
Имею пару вопросов: 1. При установке вместо скрипта nxdialog создан nxdialog.freenx. Сообщения пользователям не работали.
Скопировал его в nxdialog - заработало.
У меня криво или задумка какая-то была?
2. Не запускаются в терминальном сеансе графические проги с повышенными до root правами. В обычном сеансе всё ОК. Использую ubuntu-mate.
Какие-то переменные не инициализируются? Старт терминальной mate-session отличается от обычной? Или дело в mate? Поиском нашел отключение проверки xhost (xhost + или xhost +SI:localuser:root) не помогает. Из терминала sudo -E gedit срабатывает.
Может какое-то другое окружение лучше использовать?
Спасибо сказали:

dimbor
Ведущий рубрики
Сообщения: 1502
Статус: Подвинутый участник

Re: Старый друг - лучше новых двух

Сообщение dimbor »

dimontv писал(а):
28.05.2020 16:59
При установке вместо скрипта nxdialog создан nxdialog.freenx. Сообщения пользователям не работали.
Скопировал его в nxdialog - заработало.
У меня криво или задумка какая-то была?
Фриэныкс таким образом переточен под арктические nxlibs. В их составе есть пакет nxdialog. Там более красивая вещь. Родной скрипт переименован, чтоб не конфликтовал.
dimontv писал(а):
28.05.2020 16:59
2. Не запускаются в терминальном сеансе графические проги с повышенными до root правами. В обычном сеансе всё ОК. Использую ubuntu-mate.
Какие-то переменные не инициализируются? Старт терминальной mate-session отличается от обычной? Или дело в mate? Поиском нашел отключение проверки xhost (xhost + или xhost +SI:localuser:root) не помогает. Из терминала sudo -E gedit срабатывает.
Может какое-то другое окружение лучше использовать?
Мы такими извращениями как иксы под рутом не занимались пока. Поэтому на большинство вопросов ответов нет. Но не могу придумать, что этому запуску может помешать со строны nx даже теоретически. Сам бы рыл по пути сравнения вывода env в терминале под nx-сеансом и терминале под анологичным локальным X-сеансом. Может быть там какой юзерский профиль под nx не цепляется.
Спасибо сказали:

dimontv
Сообщения: 19

Re: Старый друг - лучше новых двух

Сообщение dimontv »

А как использовать более красивую вещь? Я пользователям вывожу инфо, например, так nxserver --broadcast "Сейчас всех выгоню!!!"
Спасибо сказали:

Djelf
Сообщения: 614
ОС: Гигтег+Цшт32

Re: Старый друг - лучше новых двух

Сообщение Djelf »

dimontv писал(а):
28.05.2020 18:16
А как использовать более красивую вещь? Я пользователям вывожу инфо, например, так nxserver --broadcast "Сейчас всех выгоню!!!"
apt install nxdialog

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

P.S. dimbor Добавь, как будет время, nxdialog в зависимости.
Спасибо сказали:

dimontv
Сообщения: 19

Re: Старый друг - лучше новых двух

Сообщение dimontv »

Чего-то не хватает nxдиалогу
Видимо сессию я как-то не так запускаю.
Spoiler
blinovdn@S1:~$ sudo nxserver --broadcast AnyMessage
NX> 100 NXSERVER - Version 3.5.0-0.1-CE OS (GPL, using backend: 3.5.99.23)
xhost: unable to open display ""
xhost: unable to open display ""
xhost: unable to open display ""
xhost: unable to open display ""
NX> 999 Bye
Unable to init server: Could not connect: Connection refused
Unable to init server: Не удалось подключиться к: Connection refused
Unable to init server: Could not connect: Connection refused
usage: nxdialog [-h] [--dialog DIALOG_TYPE] [--message TEXT]
[--caption CAPTION] [--display DISPLAY] [--parent AGENTPID]
[--window WINDOW] [--class DLGCLASS] [--local]
[--allowmultiple]
nxdialog: error: unrecognized arguments: -display :2001
blinovdn@S1:~$ Unable to init server: Не удалось подключиться к: Connection refused
usage: nxdialog [-h] [--dialog DIALOG_TYPE] [--message TEXT]
[--caption CAPTION] [--display DISPLAY] [--parent AGENTPID]
[--window WINDOW] [--class DLGCLASS] [--local]
[--allowmultiple]
nxdialog: error: unrecognized arguments: -display :2000
Unable to init server: Could not connect: Connection refused
Unable to init server: Не удалось подключиться к: Connection refused
usage: nxdialog [-h] [--dialog DIALOG_TYPE] [--message TEXT]
[--caption CAPTION] [--display DISPLAY] [--parent AGENTPID]
[--window WINDOW] [--class DLGCLASS] [--local]
[--allowmultiple]
При замене на старый nxdialog продолжает ругаться на xhost, но сообщение на экраны выводит. Правда, появилась ошибка

Код: Выделить всё

(zenity:62292): Gtk-WARNING **: 11:41:09.997: Theme parsing error: colors.css:71:44: Invalid number for color value
До установки пакета nxdialog ее не было.
Спасибо сказали: