使用 socat 远程访问 X
Using socat to access X remotely
我有一个远程服务器,我想在我已经设置的网络名称空间内启动一些 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
立即退出。
好吧,花了一天时间,但我想出了一个办法。
我最终使用 Xpra 在远程服务器上启动了一个 X 服务器,并在我的本地机器上附加了它。
在本地 运行 xhost +
并在远程服务器的 socat
调用中添加 fork
标志后,socat 方法也起作用了。但是,它从未始终如一地工作(应用程序在启动期间挂起的可能性与未挂起的可能性一样大)。而且它从未与像 firefox 这样的更复杂的应用程序一起工作。跟踪应用程序指向尝试使用 dbus 时挂起的应用程序。
我有一个远程服务器,我想在我已经设置的网络名称空间内启动一些 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
立即退出。
好吧,花了一天时间,但我想出了一个办法。
我最终使用 Xpra 在远程服务器上启动了一个 X 服务器,并在我的本地机器上附加了它。
在本地 运行 xhost +
并在远程服务器的 socat
调用中添加 fork
标志后,socat 方法也起作用了。但是,它从未始终如一地工作(应用程序在启动期间挂起的可能性与未挂起的可能性一样大)。而且它从未与像 firefox 这样的更复杂的应用程序一起工作。跟踪应用程序指向尝试使用 dbus 时挂起的应用程序。