如何在RHEL 8.4(红帽8.4)的Xvnc中启用"-listen TCP"功能
RHEL 8.4 下实现Xvnc监听6000+端口的解决方案
RHEL 8.4自带的GNOME桌面管理器(gdm)存在已知配置传递缺陷,
/etc/gdm/custom.conf中的DisallowTCP=false参数不会被正确传递给Xvnc进程,导致无法自动启用TCP监听。
方案1:修改gdm配置(适用gdm托管VNC会话场景)
- 编写Xvnc wrapper脚本,强制注入
-listen TCP参数,创建文件/usr/local/bin/Xvnc-wrapper,内容如下:#!/bin/bash exec /usr/bin/Xvnc "$@" -listen TCP - 给脚本添加执行权限:
chmod +x /usr/local/bin/Xvnc-wrapper - 编辑gdm配置文件
/etc/gdm/custom.conf,在[xdmcp]段下添加/修改如下配置:[xdmcp] Enable=true DisallowTCP=false ServerCmd=/usr/local/bin/Xvnc-wrapper - 重启gdm服务生效:
systemctl restart gdm - 验证端口监听状态:
ss -tulnp | grep Xvnc,正常会输出6000(对应DISPLAY :0)或更高端口的监听记录。
方案2:手动启动Xvnc会话(适用自定义VNC会话场景)
直接在启动命令中显式添加-listen TCP参数即可,示例命令:Xvnc :1 -geometry 1920x1080 -depth 24 -listen TCP
上述命令会启动DISPLAY为:1的VNC会话,对应监听6001端口,可根据需要调整DISPLAY编号、分辨率等参数。
注意事项
- 开启TCP监听后需配置防火墙放行对应6000+端口,示例放行6000端口命令:
firewall-cmd --add-port=6000/tcp --permanent && firewall-cmd --reload - 系统更新gdm包后可能会覆盖自定义配置,更新后需重新检查
ServerCmd配置是否生效 - 若端口未正常监听,可执行
grep Xvnc /var/log/audit/audit.log检查是否为SELinux拦截导致,可根据实际情况调整SELinux策略。
内容的提问来源于stack exchange,提问作者Andrew Vickers
相关产品推荐
相关产品推荐

