Solaris 10/11 (x86)下使用vnc - Xvnc

本文介绍了在Solaris 10/11 x86系统下配置VNC Server的过程,包括如何启动和保护VNC Server。默认配置下,VNC Server无密码保护,允许任何有VNC Viewer的用户连接。为解决这个问题,文章提供了设置密码的方法,并解释了如何通过vncserver启动、连接、停止和更改密码。同时,还指出了多个VNC Server同时运行可能带来的问题以及管理员如何管理这些进程。
部署运行你感兴趣的模型镜像

还是在Solaris6的时代曾经挑战了一次vnc server。结果,无果而终。配置太麻烦了。

 

前些天一个同事告诉我,Solaris下vnc服务器可以很简单地配置了,并送来了如下网址:

https://blogs.oracle.com/timthomas/entry/a_simple_vnc_server_zh

 

读完后,试了一下,果然能用了。于是乎,废弃了使用多年的x-server程序。

 

用了几天后,发现了一些问题:

1.  使用vnc server没有password保护。

于是,凡是有vncviewer的,都可以连接你的vnc server。你在干什么看的一清二楚不说,还可以直接操纵你的机器。

作为系统管理员,犯下如此初级错误,你是否觉得追悔莫及?

 

先看原因吧:

# svccfg
svc:> select xvnc-inetd
svc:/application/x11/xvnc-inetd> listprop

............

inetd_start/exec               astring  "/usr/X11/bin/Xvnc -inetd -query localhost -once securitytypes=none"

............

 

看到了吧。xvnc-inetd服务的缺省配置不要求password(securitytypes=none)。

坑人吧?

 

2. 同时不能启动多个vnc server。

 

再查查看,发现这篇文章很有帮助

https://blogs.oracle.com/jasonhuang/entry/vnc_on_solaris_10

(安装部分可以省略不看,因为安装好了的)

 

这个是用户个人起动vncserver的,不需要管理员介入。

 

具体步骤如下

 

2.1. 用户个人起动vncserver

初次使用必须设定password。以后再起动就不必了。

 

zhang@bsapx86:~$ vncserver

 

You will require a password to access your desktops.

 

Password:

Verify:

 

Warning: bsapx86:2 is taken because of /tmp/.X2-lock

Remove this file if there is no X server bsapx86:2

xauth:  file /home/zhang/.Xauthority does not exist

 

New 'bsapx86:3 ()' desktop is bsapx86:3

 

Creating default startup script /home/zhang/.vnc/xstartup

Starting applications specified in /home/zhang/.vnc/xstartup

Log file is /home/zhang/.vnc/bsapx86:3.log

 

上例中,vnc server在2号Display

(bsapx86:2)

 

2.2. 用 vncviewer 连接

在vncviewer的窗口中要输入bsapx86:2。

(不能只输入bsapx86。)

然后在第2个窗口中输入2.1.中设定的Password。

 

2.3. vncserver 的停止

zhang@bsapx86:~$ vncserver -kill :2

 

2.4. 重新设置Password

zhang@bsapx86:~$ vncpasswd

 

注意:

此方法可以让用户在需要的时候启动vnc server。

但是,如果用户不及时关闭不需要的vnc server,会影响系统功能。

管理员在必要时可通过kill杀掉不必要的vnc server进程。

 

vnc server相关的文件在用户的$HOME/.vnc底下。

您可能感兴趣的与本文相关的镜像

Qwen3-8B

Qwen3-8B

文本生成
Qwen3

Qwen3 是 Qwen 系列中的最新一代大型语言模型,提供了一整套密集型和专家混合(MoE)模型。基于广泛的训练,Qwen3 在推理、指令执行、代理能力和多语言支持方面取得了突破性进展

<think>我们正在解决的问题是:在Rocky Linux 9.6上部署了x11vnc服务,服务正常运行,但VNC客户端连接后出现黑屏且鼠标控制异常。 根据之前的部署步骤,服务已经启动并监听端口,但连接后黑屏,可能的原因和解决方法如下: 常见原因: 1. 显示环境变量设置不正确:x11vnc无法正确找到X服务器的显示和认证文件。 2. 权限问题:可能没有正确读取到用户的Xauthority文件。 3. 鼠标异常:可能与显示设置或窗口管理器有关。 解决方案: 步骤1:确定当前用户的显示环境 在Rocky Linux 9.6中,通常使用GNOME桌面,显示号(DISPLAY)一般为`:0`或`:1`。我们可以通过以下命令查看当前用户的DISPLAY环境变量: ```bash echo $DISPLAY ``` 通常输出为`:0`。 步骤2:获取X授权文件(Xauthority)的位置 通常位于`~/.Xauthority`,但是有时可能在其他位置。我们可以通过以下命令查找: ```bash ps aux | grep auth ``` 或者查看当前用户的X进程参数,通常包含`-auth`参数指定文件。 然而,更简单的方法是使用`x11vnc`的`-auth`选项直接指定认证文件。例如,如果当前用户是`rockyuser`,我们可以尝试: ```bash x11vnc -auth /home/rockyuser/.Xauthority -display :0 ``` 步骤3:修改服务文件,指定显示和认证文件 在之前的服务文件中,我们使用了`-auth guess`,这有时可能不正确。我们可以改为明确指定认证文件和显示。 编辑服务文件: ```bash sudo vi /etc/systemd/system/x11vnc.service ``` 修改`ExecStart`行,例如(注意替换用户名): ```ini ExecStart=/usr/bin/x11vnc -auth /home/rockyuser/.Xauthority -display :0 -forever -loop -noxdamage -repeat -rfbauth /home/rockyuser/.vnc/passwd -rfbport 5900 -shared -localhost -o /var/log/x11vnc.log ``` 步骤4:关于鼠标异常 鼠标控制异常可能是因为x11vnc与当前桌面环境的交互问题。可以尝试以下参数调整: - 添加`-nocursor`或`-cursor arrow`来设置鼠标样式。 - 尝试添加`-xkb`来改善键盘映射。 - 如果鼠标移动不跟手,可以尝试`-pointer_mode 1`(或0,2)等。 另外,黑屏问题有时是由于屏幕保护或电源管理导致的,可以尝试禁用屏幕保护: ```bash gsettings set org.gnome.desktop.screensaver lock-enabled false gsettings set org.gnome.desktop.session idle-delay 0 ``` 步骤5:重启服务并测试 ```bash sudo systemctl daemon-reload sudo systemctl restart x11vnc ``` 步骤6:检查日志 查看日志文件以获取错误信息: ```bash tail -f /var/log/x11vnc.log ``` 步骤7:如果仍然黑屏,尝试以调试模式手动运行 停止服务,然后以当前用户身份运行: ```bash sudo systemctl stop x11vnc x11vnc -auth /home/rockyuser/.Xauthority -display :0 -forever -rfbauth /home/rockyuser/.vnc/passwd -o /tmp/x11vnc.log -verbose ``` 然后观察控制台输出和日志,根据错误信息调整。 常见错误及解决: - 如果出现`No protocol specified`错误,可能是认证问题,尝试使用`-auth guess`并确保以目标用户身份运行。 - 如果出现`Failed to connect to socket /tmp/.X11-unix/X0: 拒绝连接`,则可能是显示号不对,确认`DISPLAY`环境变量。 步骤8:确保用户登录的是图形界面 注意:x11vnc需要连接到已经登录的图形会话。如果当前用户是通过SSH登录且没有图形会话,则无法连接。确保在Rocky Linux上使用图形界面登录。 如果系统没有自动登录图形界面,需要配置自动登录(注意安全风险): - 打开GNOME设置:`Settings` -> `Users` -> 解锁 -> 设置自动登录。 - 或者编辑配置文件:`/etc/gdm/custom.conf`,在`[daemon]`部分添加: AutomaticLoginEnable=true AutomaticLogin=username 步骤9:防火墙问题 虽然之前已经开放了5900端口,但黑屏问题通常不是防火墙导致的(因为连接上了,只是黑屏)。但若连接不上,请确认防火墙设置。 步骤10:尝试其他显示号 如果显示号`:0`不行,尝试`:1`(如果有多个显示器或者用户会话)。 最后,如果问题依旧,考虑使用x0vncserver(TigerVNC提供的服务)作为替代方案,它可以直接连接到当前会话。 生成相关问题: 1. 如何配置Rocky Linux 9.6的自动登录图形界面? 2. 如何查看和修改X11的认证文件? 3. x11vnc的常见调试方法有哪些? 4. 如何为x11vnc设置加密连接? 5. 在Rocky Linux 9.6上,如何配置多用户同时使用VNC? 注意:在服务文件中,我们使用了`-localhost`参数,这意味着只能从本地连接。如果需要远程连接,请移除该参数(但不安全),或者使用SSH隧道(推荐)。 </think>### Rocky Linux 9.6 部署 x11vnc 后黑屏及鼠标异常的解决方案 #### 1. 诊断黑屏问题 **核心原因**:x11vnc 无法正确识别显示服务器或认证文件,常见于 GNOME 桌面环境与 Wayland/X11 的兼容问题。 ```bash # 检查当前显示服务器类型 echo $XDG_SESSION_TYPE # 查看 X11 认证文件位置(关键) ls -l ~/.Xauthority ``` #### 2. 解决方案步骤 ##### 2.1 强制使用 Xorg 显示服务器 ```bash # 编辑 GDM 配置 sudo vi /etc/gdm/custom.conf # 在 [daemon] 部分添加 WaylandEnable=false ``` 重启系统生效:`sudo systemctl restart gdm` ##### 2.2 指定显示和认证文件 修改服务文件: ```bash sudo vi /etc/systemd/system/x11vnc.service ``` 更新 `ExecStart` 行: ```ini ExecStart=/usr/bin/x11vnc -display :0 -auth /home/[用户名]/.Xauthority \ -forever -loop -noxdamage -repeat -rfbauth /home/[用户名]/.vnc/passwd \ -rfbport 5900 -shared -o /var/log/x11vnc.log ``` ##### 2.3 配置鼠标修复 添加鼠标参数: ```ini ExecStart=... -pointer_mode 1 -nocursorpos ``` ##### 2.4 禁用屏幕保护 ```bash # 禁用 GNOME 锁屏 gsettings set org.gnome.desktop.screensaver lock-enabled false gsettings set org.gnome.desktop.session idle-delay 0 ``` #### 3. 重启服务并验证 ```bash sudo systemctl daemon-reload sudo systemctl restart x11vnc # 检查日志中的关键错误 tail -f /var/log/x11vnc.log | grep -E "AUTH|DISPLAY" ``` #### 4. 备用调试方案 手动启动调试模式: ```bash x11vnc -display :0 -auth ~/.Xauthority -forever -rfbauth ~/.vnc/passwd -o /tmp/debug.log -noxdamage -nocursorpos -debug ``` #### 5. 高级问题排查 如果仍黑屏,尝试: ```bash # 1. 检查 SELinux 限制 sudo ausearch -c 'x11vnc' --raw | audit2allow -M myx11vnc sudo semodule -i myx11vnc.pp # 2. 验证 X11 权限 xhost + # 临时禁用访问控制(测试后恢复) # 3. 查看显示详情 xdpyinfo | grep -B2 name ``` #### 6. 客户端连接建议 使用支持 X11 扩展的客户端: ```bash # TigerVNC 连接示例(启用全颜色模式) vncviewer -FullColor -PreferredEncoding=ZYWRLE server-ip:5900 ``` > 日志分析要点:查找 `AUTH:` 认证错误或 `DISPLAY:` 配置错误[^1],95%的黑屏问题源于认证文件路径错误或Wayland未禁用[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值