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

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

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

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

Сообщение Djelf »

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

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

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

Сообщение dimbor »

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

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

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

Сообщение dimbor »

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

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

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

Сообщение Djelf »

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

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

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

Сообщение dimbor »

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

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

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

Сообщение dimbor »

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

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

Djelf
Сообщения: 609
ОС: Гигтег+Цшт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
Ведущий рубрики
Сообщения: 1496
Статус: Подвинутый участник

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
Сообщения: 609
ОС: Гигтег+Цшт32

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

Сообщение Djelf »

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

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

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

Сообщение dimbor »

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

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

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

Сообщение dimbor »

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

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

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

Сообщение Djelf »

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

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

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

Сообщение dimontv »

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

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

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

Сообщение dimbor »

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

Djelf
Сообщения: 609
ОС: Гигтег+Цшт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
Сообщения: 11

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

Сообщение dimontv »

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

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

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

Сообщение dimbor »

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

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

Djelf
Сообщения: 609
ОС: Гигтег+Цшт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
Сообщения: 11

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

Сообщение dimontv »

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

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

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

Сообщение dimbor »

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

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

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

Сообщение Djelf »

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

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

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

Сообщение dimontv »

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

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

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

Сообщение Djelf »

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

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

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

Сообщение dimbor »

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

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

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

Сообщение dimontv »

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