2

我有一个远程服务器,我想在我已经设置的网络命名空间内启动一些 gui 应用程序。我正在使用 socat 转发 x 会话。

socat  exec:'ssh {REMOTE_HOST} rm -rf /tmp/.X11-unix/X1; socat -d -d -d -d unix-l\:/tmp/.X11-unix/X1111 -' unix:/tmp/.X11-unix/X0

但是,如果我尝试启动一个应用程序eog

DISPLAY=:1111 eog

它失败并显示以下消息:

I   No protocol specified
** (eog:9498): WARNING **: Could not open X display
Cannot open display:
Run 'eog --help' to see a full list of available command line options.

socat立即退出。

4

1 回答 1

2

好吧,花了一天时间,但我想出了一个办法。

我最终使用Xpra在远程服务器上启动了一个 X 服务器,并在我的本地计算机上连接到它。

socat 方法在xhost +本地运行并在远程服务器的调用中添加fork标志后也起作用。socat但是,它从未始终如一地工作(应用程序在启动过程中挂起的可能性与没有一样多)。而且它从未与更复杂的应用程序(如 Firefox)一起使用。跟踪应用程序指向在尝试使用 dbus 时挂起的应用程序。

于 2016-10-29T15:24:20.660 回答