从网络命名空间访问显示

从网络命名空间访问显示

我的 Fedora 21 VM 中有多个网络命名空间。如何从网络命名空间内访问显示?

    # ip netns exec n1 xlogo
    Error: Can't open display: localhost:10.0

答案1

如果您通过 UNIX 套接字访问 X11,那么它应该“正常工作”。显然,UNIX 域套接字不被网络命名空间隔离。

既然您收到错误,那么我猜您正在使用 TCP,而不是 UNIX 套接字。

要使用 TCP 连接到 X11,您必须按照与跨网络命名空间边界访问任何其他网络服务相同的方式进行操作:将流量通过网络路由到其他命名空间。例如创建一对veth网络接口充当命名空间之间的隧道,或通过真正的路由器。无论哪种方式,您都必须设置 IP 地址和路由。

如果您可以安排通过 UNIX 套接字而不是 TCP 进行连接,可能会更简单。无论如何,这通常是默认值。尝试:10$DISPLAY代替localhost:10?这可能会强制它使用 UNIX。如果您的 X11 服务器或代理仅侦听 TCP 套接字,那么这将不起作用。

相关内容