Windows上linux远程终端启动linux服务器上的图形界面程序
服务器(以root身份运行): xhost +
说明:设置xhost +允许所有的服务器使用当前的X Server,默认情况下,其他服务器是无法访问本机的X Server,这时如果执行需要图形化显示的命令,就会导致上面的Xlib: connection to "x.x.x.x:1.0" refused by server的错误。
Windows上linux远程终端: export DISPLAY=Linux服务器IP:0或1(你当前启动的图形界面), for example: export DISPLAY=10.1.130.78:1. DISPLAY环境变量的作用在Linux/Unix类操作系统上, 用来设置将图形显示到何处。
DISPLAY环境变量格式如下host:NumA.NumB, host指Xserver所在的主机主机名或者ip地址, 图形将显示在这一机器上, 可以是启动了图形界面的Linux/Unix机器, 也可以是安装了Exceed, X-Deep/32等Windows平台运行的Xserver的Windows机器. 如果Host为空, 则表示Xserver运行于本机, 并且图形程序(Xclient)使用unix socket方式连接到Xserver, 而不是TCP方式. 使用TCP方式连接时, NumA为连接的端口减去6000的值, 如果NumA为0, 则表示连接到6000端口; 使用unix socket方式连接时则表示连接的unix socket的路径, 如果为0, 则表示连接到/tmp/.X11-unix/X0. NumB则几乎总是0. 如果使用su username或者su - username切换到别的用户, 并且使用命令export DISPLAY=:0.0设置DISPLAY环境变量, 运行图形程序(如xclock)时会收到如下错误: Xlib: connection to ":0.0" refused by serverXlib: No protocol specifiedError: Can't open display: :0.0这是因为Xserver默认情况下不允许别的用户的图形程序的图形显示在当前屏幕上。
如果需要别的用户的图形显示在当前屏幕上, 则应以当前登陆的用户, 也就是切换身份前的用户执行如下命令xhost +这个命令将允许别的用户启动的图形程序将图形显示在当前屏幕上。