Bug 45318 - Не работает подключение по SPICE Tunnel
Summary: Не работает подключение по SPICE Tunnel
Status: REOPENED
Alias: None
Product: Sisyphus
Classification: Development
Component: openuds-server (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: thatman@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-02-17 17:10 MSK by Alexander Makeenkov
Modified: 2025-11-27 10:56 MSK (History)
6 users (show)

See Also:


Attachments
uds.log (39.13 KB, text/x-log)
2023-02-17 17:10 MSK, Alexander Makeenkov
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Makeenkov 2023-02-17 17:10:23 MSK
Created attachment 12554 [details]
uds.log

Версия пакета:
openuds-server-3.5.0-alt6

При попытке подключения через транспорт SPICE Tunnel с клиента открывается окно remote-viewer с сообщением "Подключение к графическому серверу" и больше ничего не происходит.

Удалённая система: виртуальная машина в OpenNebula.

Прикладываю логи uds.log в момент попытки подключения.

В логах смущают следующие строки:
DEBUG 2023-02-17 14:32:31,337 client get 210 Data:#######
{'as_file': '[virt-viewer]\ntype=spice\nhost=127.0.0.1\nport={port}\npassword=\ntls-port={secure_port}\nfullscreen=0\ntitle=UDS Enterprise:%d - Press SHIFT+F12 to Release Cursor\nenable-smartcard=0\nenable-usb-autoshare=0\nenable-usbredir=0\ndelete-this-file=1\nusb-filter=-1,-1,-1,-1,0\ntls-ciphers=DEFAULT\nhost-subject=\nca=\ntoggle-fullscreen=shift+f11\nrelease-cursor=shift+f12\nsecure-attention=ctrl+alt+end\n\n', 'as_file_ns': '[virt-viewer]\ntype=spice\nhost=127.0.0.1\nport={port}\npassword=\ntls-port={secure_port}\nfullscreen=0\ntitle=UDS Enterprise:%d - Press SHIFT+F12 to Release Cursor\nenable-smartcard=0\nenable-usb-autoshare=0\nenable-usbredir=0\ndelete-this-file=1\nusb-filter=-1,-1,-1,-1,0\ntls-ciphers=DEFAULT\nhost-subject=\nca=\ntoggle-fullscreen=shift+f11\nrelease-cursor=shift+f12\nsecure-attention=ctrl+alt+end\n\n', 'tunHost': '10.88.14.95', 'tunPort': '7777', 'tunWait': 30, 'tunChk': False, 'ticket': 'vtmjltdh2f206ctksawoelf4outj5nkqugvcnno8VtCUywCb', 'ticket_secure': '3d6suoluyrjxipxhedcozleppf52o9iywt6tp4fwqio8yDsc'}

а именно:

[virt-viewer]
type=spice
host=127.0.0.1
port={port}
tls-port={secure_port}

И в самом коде:

r = RemoteViewerFile(
'127.0.0.1',
'{port}',
'{secure_port}',

https://git.altlinux.org/gears/o/openuds-server.git?p=openuds-server.git;a=blob;f=server/src/uds/transports/SPICE/spice_tunnel.py;h=fe2e895a973702fe72fcdd99b3713b90881d4d9d;hb=fc01ff09559cf2f6c1be659a5ecb6505af10b4f5#l144

Примечание:
1. Через транспорт SPICE Direct подключение выполняется успешно.
2. Подключение остальных протоколов (HTML5, RDP, X2GO) через туннель выполняется успешно.
Comment 1 Куницкий Дмитрий 2025-10-29 14:25:24 MSK
Ошибка не  воспроизводится в версии openuds 4.0.0
Comment 2 Vladislav Glinkin 2025-11-20 13:32:30 MSK
Версия пакета: openuds-server-4.0.0-alt4

Воспроизводится и чинится так:
--- a/spicetunnel.py
+++ b/spicetunnel.py
@@ -141,9 +141,9 @@ class TSPICETransport(BaseSpiceTransport):
             )
 
         r = RemoteViewerFile(
-            '127.0.0.1',
-            '{port}',
-            '{secure_port}',
+            con.address,
+            str(con.port),
+            str(con.secure_port),
             con.ticket.value,  # This is secure ticket from kvm, not UDS ticket
             con.ca or self.server_certificate.value.strip(),
             con.cert_subject,

Преобразование к строковому типу можно вынести перед r = RemoteViewerFile, аналогично исходному коду для прямого SPICE подключения:
        port: str = str(con.port) or '-1'
        secure_port: str = str(con.secure_port) or '-1'
Comment 3 Alexander Burmatov 2025-11-27 04:05:29 MSK
(Ответ для Vladislav Glinkin на комментарий #2)
> Версия пакета: openuds-server-4.0.0-alt4
> 
> Воспроизводится и чинится так:
> --- a/spicetunnel.py
> +++ b/spicetunnel.py
> @@ -141,9 +141,9 @@ class TSPICETransport(BaseSpiceTransport):
>              )
>  
>          r = RemoteViewerFile(
> -            '127.0.0.1',
> -            '{port}',
> -            '{secure_port}',
> +            con.address,
> +            str(con.port),
> +            str(con.secure_port),
>              con.ticket.value,  # This is secure ticket from kvm, not UDS
> ticket
>              con.ca or self.server_certificate.value.strip(),
>              con.cert_subject,
> 
> Преобразование к строковому типу можно вынести перед r = RemoteViewerFile,
> аналогично исходному коду для прямого SPICE подключения:
>         port: str = str(con.port) or '-1'
>         secure_port: str = str(con.secure_port) or '-1'
Это изменение превращает Tunneled SPICE в Direct SPICE, поэтому все и работает. Для того, чтобы исправить проблему, мне необходимо больше информации.

Куницкий Дмитрий писал, что у него данная ошибка не воспроизводится, поэтому, вероятно, вы ошиблись в конфигурации.

Дмитрий, что вы использовали в своем сервере для того, чтобы Tunneled SPICE корректно подключался?
Comment 4 Куницкий Дмитрий 2025-11-27 10:56:20 MSK
(Ответ для Alexander Burmatov на комментарий #3)


> Дмитрий, что вы использовали в своем сервере для того, чтобы Tunneled SPICE
> корректно подключался?

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