noVNC — 虚拟机Web控制台

noVNC是一个HTML5 VNC客户端,常用于云计算和虚拟机控制面板。由于多数VNC服务器不支持WebSockets,需借助websockify作为代理进行TCP到WebSocket的转换。本文介绍了如何配置vncServer,启动noVNC服务,以及利用websockify在不同场景下建立代理,实现Web上访问和控制VNC服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不管是 VMware, Xen 还是 KVM都可以通过 VNC 客户端访问这些虚拟机的控制台,如果要开发虚拟机的 web 控制面板的话当然最好能配一个 web 的 VNC 客户端。noVNC 正是我们需要的 HTML5 VNC 客户端,其采用 HTML 5 WebSockets, Canvas 和 JavaScript 实现,并且被普遍用在各大云计算、虚拟机控制面板中,比如 OpenStack Dashboard 和 OpenNebula Sunstone 。

前面说了 noVNC 采用 WebSockets 实现,但是目前大多数 VNC 服务器都不支持 WebSockets,所以 noVNC 是不能直接连接 VNC 服务器的,怎么办呢?需要一个代理来做 WebSockets (Http socket)和 TCP sockets 之间的转换,理解这一点很重要。这个代理也已经有了,在 noVNC 的目录里,叫做 websockify。

vncServer

  1. 安装vnc4server,使用noVNC访问服务器的虚拟机控制器,首选需要在服务器如192.168.110.179安装该服务;

    xy@tnode07:~$ sudo apt-get install vnc4server

    配置vnc的xstartup文件:vi /home/xy/.vnc/xstartup

    
    #!/bin/sh
    
    [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
    [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
    xsetroot -solid grey
    vncconfig -iconic &
    x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
    x-window-manager &
  2. 启动vncserver服务

    xy@tnode07:~$ vncserver         //启动vncserver服务
    
    You will require a password to access your desktops.
    
    Password:
    Verify:
    xauth:  file /home/xy/.Xauthority does not exist
    
    New 'tnode07:1 (nsr)' desktop is tnode07:1
    
    Creating default startup script /home/xy/.vnc/xstartup
    Starting applications specified in /home/xy/.vnc/xstartup
    Log file is /home/xy/.vnc/tnode07:1.log
  3. 命令查看vncserver状态

    xy@tnode07:~/noVNC/websockify$ ps axu|grep vnc4
    xy     6867  0.
### 如何访问和操作 Linux 虚拟机控制台 #### 通过本地虚拟化软件访问 Linux 控制台 当使用 VMware 或 VirtualBox 等本地虚拟化平台时,可以直接启动虚拟机并进入其图形界面或命令行模式。对于某些特定情况下的键盘输入问题,例如在 ESXi 中无法正常使用 `:` 键的情况,可以通过调整键盘映射解决[^3]。 #### 使用快捷键切换至虚拟控制台 (Virtual Console) Linux 提供了多个 TTY 终端,默认情况下可通过组合键快速切换到这些终端。例如,在大多数发行版中,`Ctrl+Alt+F1~F6` 可用于切换到不同的虚拟控制台。返回图形界面通常可按 `Ctrl+Alt+F7` 或 `Ctrl+Alt+F1`(取决于具体配置)。需要注意的是,如果在虚拟控制台下执行了危险的操作(如误触 `Ctrl+Alt+Del`),可能会触发系统重启行为[^1]。 #### 配置 SSH 实现远程访问 为了更灵活地管理和操作 Linux 虚拟机,建议启用 SSH 服务以便于从其他设备进行远程连接。以 Ubuntu 发行为例,需先安装 OpenSSH 服务器组件: ```bash sudo apt-get update && sudo apt-get install openssh-server ``` 完成上述步骤后,可以从 Windows 的 PowerShell 或者第三方客户端像 PuTTY 输入目标 IP 地址来建立安全 shell 连接[^4]。 #### 处理云端环境中遇到的控制台加载失败现象 如果是基于云计算框架比如 OpenStack 创建出来的实例,则有可能因为网络代理或者内部 DNS 设置不当而导致 Web-based VNC/SPICE console 加载缓慢甚至完全不可用的现象。针对这类情形,应仔细核查 nova.conf 文件中的相关参数设定是否合理以及 glance image metadata 是否正确指定了 kernel 和 ramdisk id 值[^5]。 #### 特殊场景处理技巧 - **字符乱码**:确认终端编码方式一致;尝试修改 .bashrc 文件加入 export LANG=en_US.UTF-8 类似的语句重新登录生效。 - **权限不足错误**:确保当前用户拥有足够的权利执行所需指令,必要时添加到管理员组或将单条命令之前加上 sudo 关键字获取临时提升后的特权级别。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值