ubuntu@dsps-pi-k8s:~$ export DISPLAY=slapa:0.0
ubuntu@dsps-pi-k8s:~$ startx
/usr/lib/xorg/Xorg.wrap: Only console users are allowed to run the X server
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error
Couldn't get a file descriptor referring to the console.
但我可以看到 MobaXterm 正在监听端口 6000,这是通常的 X Display 服务器端口,而且这不是防火墙问题,因为:-
ubuntu@dsps-pi-k8s:~$ telnet slapa 6000
Trying 192.168.1.237...
Connected to slapa.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
我确信这就是我以前使用 HummingBird Exceed 和其他 X 服务器所做的事情。
答案1
startx
是错误的工具,因为它的目的是启动 X 客户端和一个 X 服务器。你不需要这样做——设置 $DISPLAY 的目的是为了让你的程序使用现存的另一个系统上的 X 显示器,而“startx”总是尝试启动一个新系统。(通常它会尝试启动 Xorg 以在 SSH 服务器的显示器上进行渲染,即使这是您想要的,也无法通过 SSH 进行工作。)
由于您已经有可用的 X 显示服务器(通过 $DISPLAY),您应该开始仅有的X 客户端应用程序。对于许多程序来说,这可以在没有任何特殊工具的情况下完成;您只需运行xterm &
或firefox &
通过 SSH 连接即可。
(要启动整个 GNOME 会话,您需要运行dbus-run-session gnome-session &
,尽管我不指望 GNOME 能在网络 X11 上运行得很好 – 您可能需要使用 Xvnc。)
要启动与 startx 相同的 X 客户端,您可以手动运行该~/.xinitrc
脚本,或者/etc/X11/xinitrc
如果您没有自定义脚本。