zoukankan      html  css  js  c++  java
  • 局域网环境远程控制解决方案(利用tightvnc和noVNC)

    由于客户端存在C/S软件,需要嵌入到网页并进行远程控制,下面是解决方案

    =============================================================================================
    原理

    0
    . 原理:被控主机(vnc server) => websockify映射到websocket => 控制端(管理员用户)以web形式远程控制
    =============================================================================================
    被控端

    1.1 被控主机下载最新版本的tightvnc并(以典型模式)安装,软件官网 https://www.tightvnc.com/ 1.2 安装过程中根据提示,设定远程控制密码 1.3 安装完毕后,tightvnc服务端(vnc server)即自动开始运行

    =============================================================================================
    控制端
    2.1 最新版本novnc代码(github仓库 https://github.com/novnc/noVNC),解压代码后部署到web服务器(纯前端代码) 2.2 修改nginx配置,使vnc.html可以被浏览器正确访问到 (修改nginx.cnf里面server里的root的路径) 3.1 修改nginx配置,websocket配置示例 location /websockify { proxy_http_version 1.1; proxy_pass http://127.0.0.1:6080/; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # VNC connection timeout proxy_read_timeout 61s; # Disable cache proxy_buffering off; } 3.2 安装websockify:pip3 install websockify 3.3 运行:python3 -m websockify 127.0.0.1:6080 192.168.1.119:5900 #前面是websocket地址(与nginx配置内容一致),后面是vnc地址(即tightvnc的server地址,5900为默认端口)
    这里需要注意,如果python环境版本比较多,可以用python3 -m websockify的形式
    4. 浏览器打开 vnc.html,输入正确的远程控制密码即可 5. 经测试,vnc.html可以用iframe加载

    ==============================================================================================
    如果想控制多台主机呢
    1. nginx的配置文件增加location,端口修改,同时,配置文件的/websockify也需要进行修改,有几份复制几份,可以修改为/websockify_one......。
    2. 对应2.1的noVNC的vnc.html也要复制对应的份数,文件名修改为vnc_one.html.....,然后修改代码,找到vnc_one.html里面的代码websockify,对应修改location的地址
    3. 对应的websockify也需要启动对应的N个
    4. 修改noVNC下面的app/ui.js的代码。
    修改为:
    UI.initSetting('path', document.getElementById('noVNC_setting_path').attributes['value'].value)
     
    作者:沐禹辰
    出处:http://www.cnblogs.com/renfanzi/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
  • 相关阅读:
    python元编程(metaclass)
    STL源码剖析:序
    高效C++:定制new和delete
    高效C++:模板和泛型编程
    高效C++:继承和实现
    高效C++:实现
    高效C++:设计与声明
    高效C++:资源管理
    高效C++:构造/析构/赋值
    Noip2017退役记
  • 原文地址:https://www.cnblogs.com/renfanzi/p/14850705.html
Copyright © 2011-2022 走看看