You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solaris 11.4下如何让vncserver生成带hostname的DISPLAY变量?

Solaris 11.4 VNC会话DISPLAY变量设置问题

这是默认行为吗?

是的,这属于Solaris 11.4中vncserver的默认行为:

  • vncserver默认创建本地X显示会话,使用Unix域套接字,对应DISPLAY变量格式为:n(如:1),这种模式下会话仅对本地进程可见,不监听TCP端口。
  • 手动修改DISPLAY为hostname:1后xhost失效的原因是:xhost针对TCP连接的访问授权生效,但此时VNC会话未绑定TCP端口,通信机制不匹配导致授权操作无法生效。

如何实现需求?

要创建DISPLAY变量为hostname:1的VNC会话,需让vncserver监听TCP端口而非仅本地套接字,具体步骤如下:

  1. 启动VNC时指定监听所有网络接口
    执行命令强制VNC服务器监听TCP端口(对应显示:1的端口为5901):

    vncserver -localhost no :1
    

    参数-localhost no表示允许非本地连接,同时让VNC绑定到主机网络接口,会话将支持TCP套接字访问。

  2. 设置正确的DISPLAY变量
    启动会话后,在终端中根据shell类型设置DISPLAY:

    • 对于Bash/Zsh等Bourne系shell:
      export DISPLAY=hostname:1
      
    • 对于Csh/Tcsh等C系shell:
      setenv DISPLAY hostname:1
      

    此时xhost可正常工作,因为会话已通过TCP套接字提供服务,xhost的授权规则能匹配当前DISPLAY设置。

  3. 持久化配置(可选)
    若希望每次启动VNC自动应用设置,可修改~/.vnc/config文件添加:

    localhost=no
    

    同时修改~/.vnc/xstartup文件,在开头加入DISPLAY变量设置命令,确保会话启动时自动加载正确值。

内容的提问来源于stack exchange,提问作者user3132525

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 15:57:14