mviereck / x11docker

Run GUI applications and desktops in docker and podman containers. Focus on security.
MIT License
5.68k stars 379 forks source link

Remote control application todesk or gotohttp not work properly inside the x11docker #453

Closed joelive closed 2 years ago

joelive commented 2 years ago

I am trying to use remote control application todesk or gotohttp. But they do not work. I have modified the image of x11docker xfce by adding: RUN apt-get install -y wget xfonts-utils systemd sudo glibc-source dpkg firefox-esr RUN apt-get install -y dialog apt-utils at-spi2-core

start x11docker: x11docker --sudouser -I --xc --desktop --gpu --pulseaudio --init=systemd -c --home x11docker/xfce

  1. problem of todesk The install process of todesk is normal. joy@e77018ba7204:/tmp$ sudo apt install ./todesk_4.1.0_amd64.deb

We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

[sudo] password for joy: Reading package lists... Done Building dependency tree... Done Reading state information... Done Note, selecting 'todesk' instead of './todesk_4.1.0_amd64.deb' The following NEW packages will be installed: todesk 0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded. Need to get 0 B/30.5 MB of archives. After this operation, 0 B of additional disk space will be used. Get:1 /tmp/todesk_4.1.0_amd64.deb todesk amd64 4.1.0 [30.5 MB] Selecting previously unselected package todesk. (Reading database ... 37770 files and directories currently installed.) Preparing to unpack /tmp/todesk_4.1.0_amd64.deb ... Unpacking todesk (4.1.0) ... Setting up todesk (4.1.0) ... Created symlink /etc/systemd/system/multi-user.target.wants/todeskd.service → /e tc/systemd/system/todeskd.service. Processing triggers for hicolor-icon-theme (0.17-2) ... Processing triggers for desktop-file-utils (0.26-1) ... But when I remotely connect to this todesk. it report that there is no desktop environment. image

The log of todesk: [2022-07-03 08:51:28.537] [thread(1756)] [info] Initialize todesk service. [2022-07-03 08:51:28.538] [thread(1756)] [info] Load todesk service configure file [2022-07-03 08:51:28.538] [thread(1756)] [info] Can not find configure file /opt/todesk/config/todeskd.conf. [2022-07-03 08:51:28.538] [thread(1756)] [info] Create todesk service configure file /opt/todesk/config/todeskd.conf. [2022-07-03 08:51:28.538] [thread(1756)] [info] Temp password is empty, generate one. [2022-07-03 08:51:28.538] [thread(1756)] [info] Todesk service is actived. [2022-07-03 08:51:28.538] [thread(1764)] [info] Resolving center domian(authds.todesk.com). [2022-07-03 08:51:28.546] [thread(1764)] [info] Resolve center domian(authds.todesk.com->106.75.225.172) success. [2022-07-03 08:51:28.546] [thread(1764)] [info] Connecting to center(106.75.225.172). [2022-07-03 08:51:28.570] [thread(1764)] [info] Center connected. [2022-07-03 08:51:28.570] [thread(1764)] [info] Logging on center ... [2022-07-03 08:51:28.626] [thread(1764)] [info] Center logined. [2022-07-03 08:52:51.810] [thread(1756)] [info] Client connected. [2022-07-03 08:53:05.272] [thread(1764)] [info] Remote client ask for control. [2022-07-03 08:53:05.272] [thread(1978)] [info] Connecting to video forward server. [2022-07-03 08:53:05.285] [thread(1978)] [info] Video forward server connected. [2022-07-03 08:53:05.285] [thread(1978)] [info] Logging into ForwardServer. [2022-07-03 08:53:05.303] [thread(1978)] [info] ForwardServer logined. [2022-07-03 08:53:12.678] [thread(1978)] [error] [Text] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.678] [thread(1978)] [error] [Text] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.678] [thread(1978)] [error] [Text] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.679] [thread(1978)] [error] [Text] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.679] [thread(1978)] [error] [Text] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.679] [thread(1978)] [error] [Text] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.679] [thread(1978)] [error] [Text] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.679] [thread(1978)] [error] [Text] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.679] [thread(1978)] [error] [Text] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.679] [thread(1978)] [error] [Text] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.679] [thread(1978)] [error] [Text] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.679] [thread(1978)] [error] [Text] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.679] [thread(1978)] [error] [Text] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.679] [thread(1978)] [error] [Text] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.679] [thread(1978)] [error] [Text] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.679] [thread(1978)] [error] [Text] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.679] [thread(1978)] [error] [Text] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.679] [thread(1978)] [error] [Text] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.679] [thread(1978)] [error] [Text] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.679] [thread(1978)] [error] [Text] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.685] [thread(1978)] [error] [Pointer] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.685] [thread(1978)] [error] [Pointer] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.685] [thread(1978)] [error] [Pointer] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.685] [thread(1978)] [error] [Pointer] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.685] [thread(1978)] [error] [Pointer] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.685] [thread(1978)] [error] [Pointer] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.685] [thread(1978)] [error] [Pointer] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.685] [thread(1978)] [error] [Pointer] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.685] [thread(1978)] [error] [Pointer] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.685] [thread(1978)] [error] [Pointer] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.685] [thread(1978)] [error] [Pointer] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.685] [thread(1978)] [error] [Pointer] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.685] [thread(1978)] [error] [Pointer] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.685] [thread(1978)] [error] [Pointer] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.686] [thread(1978)] [error] [Pointer] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.686] [thread(1978)] [error] [Pointer] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.686] [thread(1978)] [error] [Pointer] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.686] [thread(1978)] [error] [Pointer] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.686] [thread(1978)] [error] [Pointer] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.686] [thread(1978)] [error] [Pointer] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.691] [thread(1978)] [error] [Keyboard] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.691] [thread(1978)] [error] [Keyboard] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.691] [thread(1978)] [error] [Keyboard] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.691] [thread(1978)] [error] [Keyboard] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.691] [thread(1978)] [error] [Keyboard] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.691] [thread(1978)] [error] [Keyboard] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.691] [thread(1978)] [error] [Keyboard] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.691] [thread(1978)] [error] [Keyboard] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.691] [thread(1978)] [error] [Keyboard] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.691] [thread(1978)] [error] [Keyboard] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.691] [thread(1978)] [error] [Keyboard] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.691] [thread(1978)] [error] [Keyboard] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.691] [thread(1978)] [error] [Keyboard] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.691] [thread(1978)] [error] [Keyboard] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.691] [thread(1978)] [error] [Keyboard] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.691] [thread(1978)] [error] [Keyboard] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.691] [thread(1978)] [error] [Keyboard] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.691] [thread(1978)] [error] [Keyboard] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.691] [thread(1978)] [error] [Keyboard] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.691] [thread(1978)] [error] [Keyboard] XCB Connect Error: XCB_CONN_ERROR [2022-07-03 08:53:12.693] [thread(1978)] [info] P2P register to server. [2022-07-03 08:53:12.750] [thread(2029)] [info] P2P register success. [2022-07-03 08:53:12.751] [thread(2029)] [info] P2P client disconnected. [2022-07-03 08:53:12.789] [thread(1978)] [info] Rermote client(301238784) join the remote control. [2022-07-03 08:53:12.794] [thread(2034)] [error] [Cursor] XCB connect faild

  1. problem of gotohttp: gotohttp require root mode and I log in the root account.

    root@129656c00f92:/opt/gothttp# ./gotohttp GotoHTTP7.3(GUI) copyright (c) 2017-2022 Pingbo Inc, all rights reserved.

    GotoHTTP has enabled auto startup by default. If you want to uninstall it please run the script 'uninstall' in the GotoHTTP directory.

Supported Parameters: -p Set user password -f <1|0> Allow/Disallow file transfer

root@129656c00f92:/opt/gothttp# Starting GotoHTTP... Warnning: GotoHTTP run in view only mode for non-root user.!

Connecting to server...... Connected.(secure connection)

File Transfer: ON

But the program infer that I am non-root user.! According to the developer of gotohttp, it requires /dev/uinput read available. But I did not see a /dev/uinput in the container. How to make the two program work properly?

mviereck commented 2 years ago

But the program infer that I am non-root user.!

By default x11docker runs with an unprivileged user in container. You can set --user=root to have root in container. You might also need to set --cap-default to allow root privileges.

According to the developer of gotohttp, it requires /dev/uinput read available. But I did not see a /dev/uinput in the container.

Use --share=/dev/uinput to share the device with the container.


todesk complains that there would be no X server. This message is wrong and should be reported to the todesk developers. todesk should give a proper error message. Now we can only guess what todesk might miss. Maybe todesk needs X extension XTEST. Enable it with option --xtest.

joelive commented 2 years ago

Thank you for the reply. Following to your instructions, the gotohttp has worked. But --xtest did not make todesk work, I have reported it to the todesk developers.

mviereck commented 2 years ago

But --xtest did not make todesk work

Just an idea: Try also --gpu to allow GPU access.

mviereck commented 2 years ago

Did you get a response from the todesk devolopers?