Ubuntu 19 让 X11 监听并接受端口 6000 上的连接

Ubuntu 19 让 X11 监听并接受端口 6000 上的连接

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

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

这与如何让 X.org 监听端口 6000 上的远程连接?。然而,我按照答案中的步骤做了所有事情,问题仍然存在。

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

xeyes -display 192.168.1.111:0.0

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

Error: Can't open display: 192.168.1.111:0.0

我已编辑/etc/gdm3/custom.conf,内容如下:

[security]
DisallowTCP=false

[xdmcp]
ServerArguments=-listen tcp

我肯定是跑了gdm,而且不是lightdm

我还编辑了/etc/X11/xinit/xserverrc,现在内容如下:

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

尽管无论如何我都期望gdm这会改变。

我已经发出命令xhost +remote_server_name了,xhost +(无奈之下)。

我可以看到 X11 在端口 6001 上监听。(x11-1 是 6001 /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

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

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

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

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

答案1

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

最终有效的是这个 hack:

sudo vi /usr/bin/Xorg

并添加-listen tcp到 Xorg 命令:

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

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

 sudo service gdm restart

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

 nmap localhost

相关内容