Xpra-org / xpra

Persistent remote applications for X11; screen sharing for X11, MacOS and MSWindows.
https://xpra.org/
GNU General Public License v2.0
1.95k stars 169 forks source link

vnc client connect xpra server #3159

Closed just-github closed 3 years ago

just-github commented 3 years ago

my server environment : centos 7.9 my client environment: ubuntu 20.04 xpra version: release 4.2 my start xpra server cmd:

xpra start-desktop --start=firefox \
    --bind-tcp=0.0.0.0:14500 --bind-rfb=0.0.0.0:5900 \
    --rfb-upgrade=5 --sharing=yes --daemon=False

I cannot connect to xpra server with any vnc client(turbovnc,tigervnc,tightvnc). Did I start the parameter wrong or need additional configuration of xpra?

totaam commented 3 years ago

I have just tested your command line and it worked perfectly (bar some mouse click forwarding problems) using:

vncviewer localhost::5900

Or even:

vncviewer localhost::14500

(though this one uses the 5 second delay from your command line)

Your server is definitely not running version 4.2 since that's not available on CentOS 7.x

I cannot connect

Perhaps there's a firewall or something else getting in the way. Can you not connect a regular xpra client to that port? Is there anything in your server log?

just-github commented 3 years ago

The firewall status is disable. For the first time, I compiled from source code on ubuntu 18.04 environment,here is my start log

root@xpra:~# cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.5 LTS"

root@xpra:~# xpra start-desktop --start=firefox --bind-tcp=0.0.0.0:14500 --bind-rfb=0.0.0.0:5900 --daemon=False

Warning: running as root
2021-06-09 10:02:23,737 created tcp socket '0.0.0.0:14500'
2021-06-09 10:02:23,737 created rfb socket '0.0.0.0:5900'
failure on /tmp/.X11-unix/X3781: [Errno 2] No such file or directory: '/tmp/.X11-unix/X3781'
2021-06-09 10:02:23,739 cannot access python uinput module:
2021-06-09 10:02:23,739  No module named 'uinput'
_XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed
_XSERVTransMakeAllCOTSServerListeners: server already running

Warning: running as root
2021-06-09 10:02:24,994 pointer device emulation using XTest
2021-06-09 10:02:25,017 Error: cannot find the html web root
2021-06-09 10:02:25,017  '/usr/local/share/xpra/www' does not exist
2021-06-09 10:02:25,017  install the html-xpra package
2021-06-09 10:02:25,020 created unix domain socket '/run/user/0/xpra/xpra-1'
2021-06-09 10:02:25,020 created unix domain socket '/run/xpra/xpra-1'
2021-06-09 10:02:25,020 created unix domain socket '/root/.xpra/xpra-1'
2021-06-09 10:02:25,040 Warning: cannot set resolution to (1280, 1024)
2021-06-09 10:02:25,050  (this resolution is not available)
2021-06-09 10:02:25,071 D-Bus notification forwarding is available
2021-06-09 10:02:25,093 pulseaudio server started with pid 3840
2021-06-09 10:02:25,094  private server socket path:
2021-06-09 10:02:25,095  '/run/user/0/xpra/pulse-1/pulse/native'
W: [pulseaudio] main.c: This program is not intended to be run as root (unless --system is specified).
2021-06-09 10:02:25,171 xpra is ready.
2021-06-09 10:02:25,173 watching for applications menu changes in:
2021-06-09 10:02:25,173  '/usr/share/ubuntu/applications'
2021-06-09 10:02:25,173  '/usr/local/share/applications'
2021-06-09 10:02:25,173  '/usr/share/applications'
2021-06-09 10:02:25,173  '/var/lib/snapd/desktop/applications'
2021-06-09 10:02:25,189 Warning: webcam forwarding is disabled
2021-06-09 10:02:25,189  the virtual video directory '/sys/devices/virtual/video4linux' was not found
2021-06-09 10:02:25,190  make sure that the 'v4l2loopback' kernel module is installed and loaded
2021-06-09 10:02:25,190  or use the 'webcam=no' option
2021-06-09 10:02:25,190 found 0 virtual video devices for webcam forwarding
2021-06-09 10:02:25,200 printer forwarding enabled using postscript and pdf

Warning: running as root
2021-06-09 10:02:25,206 started command 'firefox' with pid 3854
2021-06-09 10:02:25,222 15.6GB of system memory
2021-06-09 10:02:25,379 GStreamer version 1.14.5 for Python 3.6.9 64-bit
2021-06-09 10:02:25,450 No OpenGL information available
2021-06-09 10:02:25,658 loaded 48 start menu entries from 6 sub-menus in 0.5 seconds
2021-06-09 10:02:28,248 Warning: remote clipboard request timed out
2021-06-09 10:02:28,249  request id 0, selection=CLIPBOARD, target=TARGETS
2021-06-09 10:02:34,739 xpra X11 desktop version 4.2 64-bit
2021-06-09 10:02:34,740  uid=0 (root), gid=0 (root)
2021-06-09 10:02:34,741  running with pid 3781 on Linux Ubuntu 18.04 bionic
2021-06-09 10:02:34,741  connected to X11 display :1 with 24 bit colors
2021-06-09 10:02:34,741  initial resolution: 8192x4096
2021-06-09 10:02:34,743   :1.0 (2167x1084 mm - DPI: 96x96)
2021-06-09 10:02:34,743     screen

I connect it use vncviewer(vncvniewe localhost::5900),it dosen't work . Then I compiled from source on Centos 7.9,here is my start log in CentOS 7.9,

[root@xpra ~]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)
[root@xpra ~]# cat log.txt 
[root@xpra ~]# xpra start-desktop  --start=mate-session --bind-tcp=0.0.0.0:14500 --bind-rfb=0.0.0.0:5900 --sharing=yes  --daemon=False 

Warning: running as root
2021-06-09 09:38:39,394 created tcp socket '0.0.0.0:14500'
2021-06-09 09:38:39,394 created rfb socket '0.0.0.0:5900'
failure on /tmp/.X11-unix/X10957: [Errno 2] No such file or directory: '/tmp/.X11-unix/X10957'
2021-06-09 09:38:39,396 cannot access python uinput module:
2021-06-09 09:38:39,396  No module named 'uinput'
_XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed
_XSERVTransMakeAllCOTSServerListeners: server already running
_XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed
_XSERVTransMakeAllCOTSServerListeners: server already running
_XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed
_XSERVTransMakeAllCOTSServerListeners: server already running

X.Org X Server 1.20.4
X Protocol Version 11, Revision 0
Build Operating System:  3.10.0-957.1.3.el7.x86_64 
Current Operating System: Linux xpra 3.10.0-1160.25.1.el7.x86_64 #1 SMP Wed Apr 28 21:49:45 UTC 2021 x86_64
Kernel command line: BOOT_IMAGE=/vmlinuz-3.10.0-1160.25.1.el7.x86_64 root=UUID=e0f9420f-1bf4-418c-8a50-d60777572f8e ro crashkernel=auto rhgb quiet LANG=en_US.UTF-8
Build Date: 24 February 2021  09:09:20PM
Build ID: xorg-x11-server 1.20.4-15.el7_9 
Current version of pixman: 0.34.0
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(++) Log file: "/run/user/0/xpra/Xorg.S10957.log", Time: Wed Jun  9 09:38:39 2021
(++) Using config file: "/usr/local/etc/xpra/xorg.conf"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"

Warning: running as root
2021-06-09 09:38:40,899 Warning: zlib is the only compressor enabled
2021-06-09 09:38:40,899  install and enable lz4 support for better performance
2021-06-09 09:38:40,900 pointer device emulation using XTest
2021-06-09 09:38:40,930 Error: cannot find the html web root
2021-06-09 09:38:40,930  '/usr/local/share/xpra/www' does not exist
2021-06-09 09:38:40,930  install the html-xpra package
2021-06-09 09:38:40,933 created unix domain socket '/run/user/0/xpra/xpra-3'
2021-06-09 09:38:40,933 created unix domain socket '/run/xpra/xpra-3'
2021-06-09 09:38:40,933 created unix domain socket '/root/.xpra/xpra-3'
2021-06-09 09:38:40,951 Warning: failed to load the mdns publisher
2021-06-09 09:38:40,952  No module named 'zeroconf'
2021-06-09 09:38:40,952  either install the 'python-avahi' module
2021-06-09 09:38:40,952  or use the 'mdns=no' option
2021-06-09 09:38:40,971 D-Bus notification forwarding is available
2021-06-09 09:38:40,985 pulseaudio server started with pid 11009
2021-06-09 09:38:40,986  private server socket path:
2021-06-09 09:38:40,986  '/run/user/0/xpra/pulse-3/pulse/native'
W: [pulseaudio] main.c: This program is not intended to be run as root (unless --system is specified).
E: [pulseaudio] ltdl-bind-now.c: Failed to open module module-x11-publish.so: module-x11-publish.so: cannot open shared object file: No such file or directory
E: [pulseaudio] module.c: Failed to open module "module-x11-publish".
E: [pulseaudio] main.c: Module load failed.
E: [pulseaudio] main.c: Failed to initialize daemon.
2021-06-09 09:38:41,034 Warning: cannot watch for application menu changes without pyinotify:
2021-06-09 09:38:41,034  No module named 'pyinotify'
2021-06-09 09:38:41,051 Warning: cannot use application menu data:
2021-06-09 09:38:41,051  no python-xdg module
2021-06-09 09:38:41,067 Warning: webcam forwarding is disabled
2021-06-09 09:38:41,068  the virtual video directory '/sys/devices/virtual/video4linux' was not found
2021-06-09 09:38:41,068  make sure that the 'v4l2loopback' kernel module is installed and loaded
2021-06-09 09:38:41,068  or use the 'webcam=no' option
2021-06-09 09:38:41,069 found 0 virtual video devices for webcam forwarding
2021-06-09 09:38:41,100 started command 'mate-session' with pid 11042
2021-06-09 09:38:41,101 Warning: cannot watch for application menu changes without pyinotify:
2021-06-09 09:38:41,101  No module named 'pyinotify'

Warning: running as root
2021-06-09 09:38:41,126 3.7GB of system memory
generating cookie with syscall
generating cookie with syscall
generating cookie with syscall
generating cookie with syscall
2021-06-09 09:38:41,200 xpra is ready.
2021-06-09 09:38:41,202 xpra X11 desktop version 4.2 64-bit
2021-06-09 09:38:41,202  uid=0 (root), gid=0 (root)
2021-06-09 09:38:41,202  running with pid 10957 on Linux CentOS 7.9.2009 Core
2021-06-09 09:38:41,202  connected to X11 display :3 with 24 bit colors
2021-06-09 09:38:41,203  initial resolution: 1280x1024
2021-06-09 09:38:41,208   :3.0 (3048x1672 mm - DPI: 11x16)
Warning: failed to query pulseaudio using 'pactl info'
 Connection failure: Connection refused
 pa_context_connect() failed: Connection refused
Warning: failed to query pulseaudio using 'pactl info'
 Connection failure: Connection refused
 pa_context_connect() failed: Connection refused
2021-06-09 09:38:41,268 GStreamer version 1.10.4 for Python 3.6.8 64-bit
2021-06-09 09:38:41,304 Warning: failed to query pulseaudio using 'pactl info'
2021-06-09 09:38:41,304  Connection failure: Connection refused
2021-06-09 09:38:41,304  pa_context_connect() failed: Connection refused
[1623202721,000,xklavier.c:xkl_engine_start_listen/]    The backend does not require manual layout management - but it is provided by the application
2021-06-09 09:38:41,399 No OpenGL information available
SELinux Troubleshooter: Applet requires SELinux be enabled to run.
GNOME_KEYRING_CONTROL=/root/.cache/keyring-OMPO40
SSH_AUTH_SOCK=/root/.cache/keyring-OMPO40/ssh
GNOME_KEYRING_CONTROL=/root/.cache/keyring-OMPO40
SSH_AUTH_SOCK=/root/.cache/keyring-OMPO40/ssh
GNOME_KEYRING_CONTROL=/root/.cache/keyring-OMPO40
SSH_AUTH_SOCK=/root/.cache/keyring-OMPO40/ssh
/usr/share/system-config-printer/applet.py:44: PyGIWarning: Notify was imported without specifying a version first. Use gi.require_version('Notify', '0.7') before import to ensure that the right version gets loaded.
  from gi.repository import Notify

** (polkit-mate-authentication-agent-1:11152): WARNING **: 09:38:41.533: Unable to register authentication agent: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: An authentication agent already exists for the given subject
Cannot register authentication agent: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: An authentication agent already exists for the given subject
Xlib:  extension "DPMS" missing on display ":3".
Initializing caja-image-converter extension
Initializing caja-open-terminal extension

(nm-applet:11140): nm-applet-WARNING **: 09:38:41.641: GDBus.Error:org.freedesktop.NetworkManager.AgentManager.PermissionDenied: An agent with this ID is already registered for this user.
2021-06-09 09:38:42,201 Warning: pulseaudio has terminated shortly after startup.
2021-06-09 09:38:42,201  pulseaudio is limited to a single instance per user account,
2021-06-09 09:38:42,201  and one may be running already for user 'root'.
2021-06-09 09:38:42,201  To avoid this warning, either fix the pulseaudio command line
2021-06-09 09:38:42,201  or use the 'pulseaudio=no' option.
2021-06-09 09:38:44,487 Warning: remote clipboard request timed out
2021-06-09 09:38:44,487  request id 0, selection=CLIPBOARD, target=TARGETS

Whether it is in centos or ubuntu environment, when I connect with vncviewer, I always wait. When Ctrl C vncviewer(vncviewer localhost::5900) reports such an error at the same time

2021-06-09 09:51:14,339 rfb_protocol_class: conn is RFBProtocol(rfb socket: 192.168.2.237:5900 <- 192.168.2.237:36664)
`(It's my debug info)`
Exception in thread new-rfb-connection:
Traceback (most recent call last):
  File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.6/threading.py", line 864, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.6/dist-packages/xpra/server/server_core.py", line 1140, in handle_new_connection
    self.handle_rfb_connection(conn)
  File "/usr/local/lib/python3.6/dist-packages/xpra/server/rfb/rfb_server.py", line 74, in handle_rfb_connection
    p = self.do_make_protocol("rfb", conn, {}, rfb_protocol_class)
TypeError: do_make_protocol() missing 1 required positional argument: 'pre_read'

Xpra client can only connect to the tcp port, not to the rfb port. Vncviewer can be used in one of the environments. Are you using Tight VN or which version of VNC ?

totaam commented 3 years ago

So, you're not using the official xpra packages and you're running 4.2 on CentOS 7.x which is a very unusual configuration.

The fix above should solve things.

totaam commented 3 years ago

The ubuntu official packages don't have the fix above yet.

just-github commented 3 years ago

What is your environment, (OS, version......)May I can try it ?

just-github commented 3 years ago

I just want to see the effect of vnc

totaam commented 3 years ago

Just apply the one-liner patch or use the xpra.org version for centos 7. (3.x series)

just-github commented 3 years ago

The vnc client still can't connect xpra server .

totaam commented 3 years ago

The vnc client still can't connect xpra server .

Then try: 8962c2bb6b936ad31429d22589417de7f51fe227

FYI: the xpra.org packages for centos7 do work and do not require any patching.

just-github commented 3 years ago

thx, it's connect successfully!!!