Ubuntu 19 使 X11 侦听并接受端口 6000 上的连接

Kin*_*ley 5 xorg

自从我从 Ubuntu 18.04 升级到 19.10 以来,我的远程 TCP-XWindows 坏了,我需要它来工作。

我正在开发一个非常旧的当前生产系统,它使用旧式 X11 TCP 连接。它不能使用SSH X 转发。我需要让 Ubuntu 接受远程 TCP 连接(来自老化的 Solaris 机器)。

这与如何使 X.org 侦听端口 6000 上的远程连接密切相关. 但是,我已经完成了答案中的所有操作,但问题仍然存在。

我需要能够运行远程 X-Windows 应用程序,例如:

xeyes -display 192.168.1.111:0.0
Run Code Online (Sandbox Code Playgroud)

并让它出现在我的本地工作站上。但我得到的是(当然):

Error: Can't open display: 192.168.1.111:0.0
Run Code Online (Sandbox Code Playgroud)

我已经编辑/etc/gdm3/custom.conf,包含:

[security]
DisallowTCP=false

[xdmcp]
ServerArguments=-listen tcp
Run Code Online (Sandbox Code Playgroud)

我肯定在跑步gdm,而不是lightdm

我还编辑了/etc/X11/xinit/xserverrc,现在它说:

exec /usr/bin/X -listen tcp "$@"
Run Code Online (Sandbox Code Playgroud)

尽管我希望gdm无论如何都会修改它。

我已经发出命令xhost +remote_server_name并且xhost +(在绝望中)。

我可以看到 X11 在端口 6001 上侦听。(x11-1 是 6001 in /etc/services... 为什么这不是 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
Run Code Online (Sandbox Code Playgroud)

(并在这些更改后重新启动)。

是否在 Ubuntu 19 中添加了一些“额外的层”配置以防止 X11 以这种方式运行?

编辑:似乎进程运行正常:

 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
Run Code Online (Sandbox Code Playgroud)

EDIT2:评论者更新旧应用程序通过命令行显示,例如:--display 192.168.1.111:0.0 然后它自己在远程显示器上打开更多窗口。

我试过了xhost +,没什么区别。

小智 7

我使用的是 Ubuntu 20.04。尽管您谈论了所有选项,但我无法连接到端口 6000。

最终起作用的是这个黑客:

sudo vi /usr/bin/Xorg
Run Code Online (Sandbox Code Playgroud)

并添加-listen tcp到 Xorg 命令:

#exec "$basedir"/Xorg.wrap "$@"
 exec "$basedir"/Xorg.wrap "$@" -listen tcp
Run Code Online (Sandbox Code Playgroud)

然后保存并退出文件并重新启动用户图形界面:

 sudo service gdm restart
Run Code Online (Sandbox Code Playgroud)

然后检查端口 6000 是否打开:

 nmap localhost
Run Code Online (Sandbox Code Playgroud)