novnc使用

NOVNC

1.客户端部署

  • 运行下列命令安装vnc:

        sudo apt-get install x11vnc
    
  • 生成密码

        sudo x11vnc -storepasswd yourVNCpasswordHERE  /etc/x11vnc.pass  //生成密码
    
  • 开机启动

        //15.04+ 系统
        sudo nano /lib/systemd/system/x11vnc.service
        //16.10+ 系统
        sudo nano /etc/systemd/system/x11vnc.service
    
  • 在打开的页面中插入以下代码

        [Unit]
        Description="x11vnc"
        Requires=display-manager.service
        After=display-manager.service
        
        [Service]
        ExecStart=/usr/bin/x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth guess -rfbauth /etc/x11vnc.pass
        ExecStop=/usr/bin/killall x11vnc
        Restart=on-failure
        Restart-sec=2
        
        [Install]
        WantedBy=multi-user.target
    
  • 执行命令

        sudo systemctl daemon-reload
        sudo systemctl start x11vnc
    
  • 确保在服务启动时启动

        sudo systemctl enable x11vnc
    

2.服务端部署

  1. 在服务端机器上从Github将novnc下载
  2. 创建token.conf文件,写入客户端IP,格式:
        test1: 192.168.11.239:5900
        test1: 192.168.11.240:5900  //:后面必须有空格
    
  3. 启动novnc
        ./utils/websockify/websockify.py ./ --target-config=/home/ceeety/data/token/token.conf 8787
    

3. 连接测试

  1. 通过vnc_lite.html访问
    • 打开拉取下来的项目中的vnc_lite.html文件,需要修改host、post、password、token
        var host = WebUtil.getConfigVar('host', '192.168.11.241');  //服务端ip
        var port = WebUtil.getConfigVar('port', '8787');    //端口
        
        var password = WebUtil.getConfigVar('password', 'ceeety'); //客户端密码
        var token = WebUtil.getConfigVar('token', 'test');    //token.conf中客户端ip对应name
      
    • 运行vnc_lite.html页面,上一步没有修改密码时,需要输入密码。测试连接。
  2. 通过vnc.html访问
    • 运行vnc.html,在左侧填写连接信息,测试连接。

4. 集成

  • 多客户端同时连接
name type mode default description
target DOM WO null 用于渲染的画布元素(id)
encrypt bool RW false 使用TLS / SSL加密
local_cursor bool RW false Request locally rendered cursor
shared bool RW true 请求共享VNC模式
view_only bool RW false 仅监控,不能操作
focus_on_click bool RW true 点击
xvp_password_sep str RW '@' Separator for XVP password fields
disconnectTimeout int RW 3 连接超时
wsProtocols arr RW ['binary'] 使用 WebSocket connection
repeaterID str RW '' UltraVNC RepeaterID to connect to
viewportDrag bool RW false 鼠标拖动移动窗口
    ```
    
    
    
        屏幕监控
        
        
        
    
    
    
    1.
      //设置渲染的画布id
        Canvas not supported1.
    
    
    2.
    
        Canvas not supported2.
    
    
    
    
    
    
    ```
  • 等比例缩放
    在rfb.js中的 _resize: function(width, height) 方法中添加以下代码
        this._display.autoscale(540,192,1);
    

你可能感兴趣的:(novnc使用)