Ubuntu – Ubuntu 19 Make X11 listen and accept connections on port 6000

xorg

Since I upgraded from Ubuntu 18.04 to 19.10 my remote TCP-XWindows broke, and I need it for work.

I'm working on a really old currently-in-production system which uses old-style X11 TCP connections. It cannot use SSH X-forwarding. I need to make Ubuntu accept remote TCP connections (from an aging Solaris box).

This is closely related to How to make X.org listen to remote connections on port 6000?. However, I have done everything in the answers and the problem remains.

I need to be able to run a remote X-Windows application, e.g.:

xeyes -display 192.168.1.111:0.0

And have it appear on my local workstation. But what I get is (of course):

Error: Can't open display: 192.168.1.111:0.0

I have edited /etc/gdm3/custom.conf, to contain:

[security]
DisallowTCP=false

[xdmcp]
ServerArguments=-listen tcp

I am definitely running gdm, and not lightdm.

I have also edited /etc/X11/xinit/xserverrc, such that it now says:

exec /usr/bin/X -listen tcp "$@"

Although I expect that gdm modifies this anyway.

I have issued the command xhost +remote_server_name and xhost + (in desperation).

I can see X11 listening on port 6001. (x11-1 is 6001 in /etc/services … why is this not x11-0 / 6000?)

$ netstat -a | grep x11
tcp        0      0 0.0.0.0:x11-1           0.0.0.0:*               LISTEN
tcp6       0      0 [::]:x11-1              [::]:*                  LISTEN

(and rebooted after these changes).

Has some "extra layer" of configuration been added in Ubuntu 19 to prevent X11 running in this manner?

EDIT: It seems like the processes are running OK:

 2196 tty2     Ssl+   0:00 /usr/lib/gdm3/gdm-x-session --register-session --run-script --allow-remote-connections cinnamon-session-cinnamon
 2198 tty2     Sl+   16:53 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -listen tcp -background none -noreset -keeptty -verbose 3

EDIT2: Update for commenters
The old application is passed the display on the command-line, e.g.: --display 192.168.1.111:0.0 It then takes it upon itself to open further windows on the remote display.

I have tried xhost +, it made no difference.

Best Answer

I am using Ubuntu 20.04. I could not connect to port 6000, despite all the options you are talking about.

What finally works is this hack:

sudo vi /usr/bin/Xorg

and add -listen tcp to the Xorg command(s):

#exec "$basedir"/Xorg.wrap "$@"
 exec "$basedir"/Xorg.wrap "$@" -listen tcp

Then save and exit the file and restart the user graphical interface:

 sudo service gdm restart

and then check that port 6000 is open:

 nmap localhost
Related Question