当前位置: 首页 > article >正文

Windows Server远程管理新选择:一键脚本部署noVNC服务端(含开机自启配置)

Windows Server远程管理新选择一键脚本部署noVNC服务端含开机自启配置对于需要管理Windows Server的系统管理员来说远程访问是不可或缺的功能。传统的RDP虽然稳定但在某些场景下可能受限比如网络环境复杂或需要跨平台访问时。本文将介绍一种基于noVNC的轻量级远程管理方案通过一键脚本实现快速部署特别适合云服务器、内网测试机等场景。与常规的VNC方案相比noVNC基于WebSocket协议无需安装客户端软件通过浏览器即可访问大大降低了使用门槛。更重要的是我们将整个部署过程封装为自动化脚本从环境配置到服务启动一气呵成并确保服务能够开机自启满足服务器管理的可靠性要求。1. 环境准备与一键部署方案1.1 核心组件说明我们的方案基于以下技术栈构建noVNC基于Web的VNC客户端支持HTML5浏览器直接访问WebsockifyWebSocket到TCP的代理桥梁实现浏览器与VNC服务通信Node.js提供JavaScript运行时环境运行Websockify服务注意本方案不需要Java环境相比传统VNC方案更加轻量。1.2 一键部署脚本设计我们设计了一个PowerShell脚本自动完成所有依赖安装和配置# 检查并安装Node.js if (-not (Test-Path C:\Program Files\nodejs\node.exe)) { Write-Host 正在安装Node.js... $nodeUrl https://nodejs.org/dist/v16.14.2/node-v16.14.2-x64.msi $installerPath $env:TEMP\nodejs-installer.msi Invoke-WebRequest -Uri $nodeUrl -OutFile $installerPath Start-Process -FilePath msiexec -ArgumentList /i $installerPath /quiet -Wait Remove-Item $installerPath } # 设置npm全局安装路径 $npmPrefix C:\nodejs-global if (-not (Test-Path $npmPrefix)) { New-Item -ItemType Directory -Path $npmPrefix -Force | Out-Null } [Environment]::SetEnvironmentVariable(NPM_CONFIG_PREFIX, $npmPrefix, Machine) # 安装必要模块 Write-Host 正在安装Websockify... npm install -g ws optimist mime-types2. noVNC服务配置与优化2.1 服务部署流程完成基础环境后我们需要配置noVNC服务下载noVNC最新版本并解压到指定目录修改Websockify配置文件优化VNC连接参数设置防火墙规则允许WebSocket端口通信# 下载并配置noVNC $novncUrl https://github.com/novnc/noVNC/archive/refs/heads/main.zip $novncPath C:\noVNC if (-not (Test-Path $novncPath)) { New-Item -ItemType Directory -Path $novncPath -Force | Out-Null Invoke-WebRequest -Uri $novncUrl -OutFile $env:TEMP\noVNC.zip Expand-Archive -Path $env:TEMP\noVNC.zip -DestinationPath $novncPath -Force } # 配置Websockify $websockifyCmd node $novncPath\noVNC-main\utils\websockify\websockify.js --web $novncPath\noVNC-main 9000 localhost:59002.2 性能优化参数针对服务器管理场景我们建议调整以下参数参数默认值推荐值说明compressionfalsetrue启用压缩减少带宽占用quality68提高图像质量autoscalefalsetrue自动适应浏览器窗口这些参数可以通过修改Websockify启动命令实现$optimizedCmd $websockifyCmd --compress --quality 8 --autoscale3. 服务化与开机自启配置3.1 创建Windows服务为确保服务稳定运行我们将其注册为Windows服务# 创建服务包装脚本 $serviceWrapper var child_process require(child_process); child_process.exec(node C:\\noVNC\\noVNC-main\\utils\\websockify\\websockify.js --web C:\\noVNC\\noVNC-main 9000 localhost:5900, (error, stdout, stderr) { if (error) console.error(error); }); Set-Content -Path C:\noVNC\service-wrapper.js -Value $serviceWrapper # 使用NSSM创建服务 if (-not (Test-Path C:\nssm\nssm.exe)) { New-Item -ItemType Directory -Path C:\nssm -Force | Out-Null Invoke-WebRequest -Uri https://nssm.cc/release/nssm-2.24.zip -OutFile $env:TEMP\nssm.zip Expand-Archive -Path $env:TEMP\nssm.zip -DestinationPath C:\nssm -Force } C:\nssm\nssm.exe install noVNC-Service C:\Program Files\nodejs\node.exe C:\noVNC\service-wrapper.js C:\nssm\nssm.exe set noVNC-Service Start SERVICE_AUTO_START3.2 备选启动方案除了Windows服务我们还提供两种备选启动方式计划任务启动配置为系统启动时运行启动文件夹将脚本放入用户启动目录提示Windows服务方式更加可靠推荐生产环境使用4. 安全配置与多用户管理4.1 基础安全措施服务器环境下安全配置至关重要修改默认端口不使用9000等常见端口启用密码认证配置VNC Server强密码IP限制通过防火墙限制访问来源IP# 防火墙规则配置 New-NetFirewallRule -DisplayName noVNC Web Access -Direction Inbound -LocalPort 9000 -Protocol TCP -Action Allow -RemoteAddress 192.168.1.0/244.2 多用户场景处理当多个管理员需要访问同一服务器时为每个用户创建独立VNC会话使用不同端口映射5901, 5902等配置独立的noVNC实例# 多用户启动脚本示例 Start-Process node -ArgumentList C:\noVNC\noVNC-main\utils\websockify\websockify.js --web C:\noVNC\noVNC-main 9001 localhost:5901 -WindowStyle Hidden Start-Process node -ArgumentList C:\noVNC\noVNC-main\utils\websockify\websockify.js --web C:\noVNC\noVNC-main 9002 localhost:5902 -WindowStyle Hidden5. 常见问题排查与维护5.1 连接问题诊断当遇到连接问题时按以下步骤排查检查VNC Server是否正常运行确认Websockify服务已启动验证防火墙设置查看Node.js服务日志5.2 日志配置与监控为便于维护建议配置服务日志# 修改服务包装脚本加入日志功能 $logWrapper const fs require(fs); const logStream fs.createWriteStream(C:\\noVNC\\service.log, {flags: a}); process.stdout.write process.stderr.write logStream.write.bind(logStream); var child_process require(child_process); child_process.exec(node C:\\noVNC\\noVNC-main\\utils\\websockify\\websockify.js --web C:\\noVNC\\noVNC-main 9000 localhost:5900, (error, stdout, stderr) { if (error) console.error(error); console.log(stdout); }); Set-Content -Path C:\noVNC\service-wrapper.js -Value $logWrapper在实际部署中我们发现将noVNC与现有监控系统集成可以大幅提高管理效率。例如当服务异常停止时可以通过监控系统自动重启服务或发送告警通知管理员。

相关文章:

Windows Server远程管理新选择:一键脚本部署noVNC服务端(含开机自启配置)

Windows Server远程管理新选择:一键脚本部署noVNC服务端(含开机自启配置) 对于需要管理Windows Server的系统管理员来说,远程访问是不可或缺的功能。传统的RDP虽然稳定,但在某些场景下可能受限,比如网络环境…...

保姆级教程:ROS1/ROS2下rosbag录制与播放的10个实战技巧(含脚本与launch文件)

ROS1/ROS2高效数据管理:rosbag录制与播放的工程化实践指南 第一次接触rosbag时,我花了整整三天时间才搞明白为什么录制的数据总是无法正常播放。当时在实验室调试移动机器人,每次测试都要重新跑一遍完整流程,效率低得令人抓狂。直…...

语义通信:从理论到6G落地的关键技术演进与挑战

1. 语义通信的理论基石 语义通信(Semantic Communication, SemCom)的核心思想与传统通信有着本质区别。传统通信追求的是"准确传输比特流",而语义通信关注的是"有效传递信息的意义"。这就像两个人对话:传统通…...

3D打印桥接工具:从设计到输出的全流程优化

3D打印桥接工具:从设计到输出的全流程优化 【免费下载链接】sketchup-stl A SketchUp Ruby Extension that adds STL (STereoLithography) file format import and export. 项目地址: https://gitcode.com/gh_mirrors/sk/sketchup-stl SketchUp STL插件是连接…...

Oracle RAC OCR坏了怎么办?手把手教你用ocrconfig修复与备份(附11g/12c实战命令)

Oracle RAC OCR故障应急指南:从诊断到修复的全链路实战 凌晨三点,当手机铃声划破寂静,作为DBA的你从睡梦中惊醒。电话那头传来运维同事急促的声音:"生产环境RAC集群所有节点突然离线,CRS服务无法启动&#xff01…...

Claude浏览器扩展漏洞允许通过任意网站实现零点击XSS提示注入

网络安全研究人员披露了Anthropic公司Claude谷歌浏览器扩展中存在的一个漏洞,攻击者只需诱使用户访问特定网页即可触发恶意提示注入。漏洞原理分析Koi Security研究员Oren Yomtov在提供给The Hacker News的报告中指出:"该漏洞允许任何网站静默地向该…...

3个智能化解决方案让科研工作者实现投稿管理效率革命:Elsevier Tracker无缝集成工具

3个智能化解决方案让科研工作者实现投稿管理效率革命:Elsevier Tracker无缝集成工具 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 行业现状分析 学术出版领域数字化转型过程中,科研工作者…...

如何让微信聊天记录真正属于你:完整备份与分析终极指南

如何让微信聊天记录真正属于你:完整备份与分析终极指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeCh…...

财务效率革命:printPDF免费电子发票批量打印工具深度解析

在当今数字化办公的时代背景下,财务、报销、税务等岗位的日常工作中,电子发票处理已成为不可忽视的重要环节。每月数百甚至上千张的电子发票,一张张手动打开、设置、打印的传统操作模式,不仅耗时耗力,效率低下&#xf…...

LeifHomieLib:ESP32/8266轻量级Homie v3 MQTT设备库

1. LeifHomieLib 项目概述LeifHomieLib 是一个专为 ESP8266 和 ESP32 平台设计的轻量级 Homie v3 协议实现库,其核心目标是为资源受限的物联网边缘节点提供符合 Homie 规范的 MQTT 设备抽象能力。该库并非 Homie v3 标准的全功能实现,而是聚焦于与 openH…...

避坑指南:如何在torch 2.4.0 + CUDA 12.1环境下成功安装llamafactory及其依赖

深度避坑:PyTorch 2.4.0与CUDA 12.1环境下的Llamafactory全栈部署实战 当开发者尝试在PyTorch 2.4.0和CUDA 12.1环境下部署Llamafactory时,往往会陷入依赖地狱——从Torch版本误装到vllm模块缺失,每个环节都可能成为耗时数小时的深坑。本文将…...

告别手打公式!用SimpleTex截图转LaTeX+Axmath微调+Typora排版的保姆级教程

数学公式高效处理全流程:从截图识别到专业排版 每次在论文或笔记中插入复杂的数学公式时,你是否也经历过这样的痛苦?反复核对LaTeX代码中的每个括号,调整上下标位置,或是为了一个特殊符号翻遍文档。传统的手动输入方式…...

保姆级教程:在Ubuntu 20.04上搞定海思SS524/SS522 SDK编译与固件烧录

海思SS524/SS522开发实战:从零构建嵌入式Linux系统的完整指南 作为一名长期深耕嵌入式开发的工程师,我深知从零开始搭建一个完整的开发环境有多么令人头疼。特别是当你拿到一块全新的开发板,面对陌生的SDK和工具链时,那种既兴奋又…...

开发提效新组合:用Cursor生成代码片段,在快马一键集成与部署

最近在做一个数据整理的小工具时,发现了一个特别高效的工作流组合:先用Cursor快速生成核心代码片段,再用InsCode(快马)平台一键整合部署。整个过程就像搭积木一样顺畅,特别适合需要快速实现功能模块的场景。 需求分析 我们经常要处…...

Solidity 智能合约入门:从 0 到 1 编写第一个区块链合约

一、什么是 Solidity? Solidity 是一门面向以太坊虚拟机(EVM)、静态类型的高级编程语言,专门用于编写区块链上的智能合约。 简单来说: 智能合约 运行在区块链上的自动执行代码(无需第三方,代…...

Unity URDF导入终极指南:3步快速实现机器人仿真

Unity URDF导入终极指南:3步快速实现机器人仿真 【免费下载链接】URDF-Importer URDF importer 项目地址: https://gitcode.com/gh_mirrors/ur/URDF-Importer Unity URDF Importer是Unity Robotics官方推出的机器人模型导入工具,它能够让你在Unit…...

x265帧内预测实战:从35种模式到MPM优化的效率提升技巧

x265帧内预测深度优化:从35种模式到MPM的工程实践 在视频编码领域,HEVC标准相比前代H.264引入了更复杂的帧内预测机制,其中x265作为开源编码器实现,其帧内预测模块的优化直接影响编码效率。本文将深入剖析x265帧内预测的核心技术…...

LibreHardwareMonitor:5分钟掌握免费开源硬件监控的终极指南

LibreHardwareMonitor:5分钟掌握免费开源硬件监控的终极指南 【免费下载链接】LibreHardwareMonitor Libre Hardware Monitor, home of the fork of Open Hardware Monitor 项目地址: https://gitcode.com/GitHub_Trending/li/LibreHardwareMonitor 想要实时…...

【YOLOv11工业级实战】35. DeepStream集成实战——构建高并发视频分析管道

摘要:在智慧交通、智慧工地等工业场景中,多路高清视频的实时分析面临高并发、低延迟、低资源占用的核心诉求。传统PyTorch逐帧推理方案因CPU解码瓶颈、内存拷贝频繁等问题,无法满足500路以上视频流的并发处理需求。本文以NVIDIA DeepStream框架为核心,结合YOLOv11目标检测模…...

ElasticSearch集群搭建步骤

文章目录一、前言二、使用 RPM 安装 Elasticsearch导入 Elasticsearch GPG 密钥从 RPM 存储库安装三、设置基本安全性生成证书使用TLS加密节点间通信四、为 Elasticsearch 加密 HTTP 客户端通信五、配置集群编辑 elasticsearch.yml(通用配置)关键性能参数…...

智能变电站实战:如何用SCL配置文件搞定IED设备联调(附避坑案例)

智能变电站实战:SCL配置文件在IED设备联调中的关键作用与避坑指南 在智能变电站的工程实施中,设备联调环节往往成为项目进度的"拦路虎"。据统计,超过60%的现场调试时间消耗在IED设备间的通信配置问题上。SCL(Substation…...

如何在5分钟内将网页SVG完美保存为可编辑矢量文件?

如何在5分钟内将网页SVG完美保存为可编辑矢量文件? 【免费下载链接】svg-crowbar Extracts an SVG node and accompanying styles from an HTML document and allows you to download it all as an SVG file. 项目地址: https://gitcode.com/gh_mirrors/sv/svg-cr…...

告别ZooKeeper!ClickHouse Keeper双机集群搭建全攻略(含常见报错解决方案)

ClickHouse Keeper双机集群实战指南:从零搭建到故障排查 1. 为什么选择ClickHouse Keeper替代ZooKeeper 在ClickHouse集群架构中,协调服务一直扮演着关键角色。传统方案依赖ZooKeeper实现分布式协调,但这种方式存在几个明显痛点: …...

Repomix Git日志集成:掌握commit历史分析的终极指南

Repomix Git日志集成:掌握commit历史分析的终极指南 【免费下载链接】repomix 📦 Repomix (formerly Repopack) is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect for when you need to feed your codeb…...

手把手教你用Matlab Simulink搭建闭环Buck电路:从PID调参到负载突变分析

从零构建闭环Buck电路:Simulink实战与PID调参全解析 电力电子工程师的日常工作中,Buck降压电路的设计与调试是基础中的基础。但真正让一个新手头疼的,往往不是电路拓扑本身,而是如何通过仿真快速验证设计,特别是当引入…...

新手避坑指南:用Prometheus+PX4+ROS在Gazebo里复现无人机追踪小车(保姆级流程)

新手避坑指南:用PrometheusPX4ROS在Gazebo里复现无人机追踪小车(保姆级流程) 当第一次接触无人机仿真开发时,很多人会被复杂的工具链和晦涩的错误信息劝退。本文将手把手带你完成从零搭建仿真环境到实现视觉追踪的全过程&#xff…...

用腾讯云轻量锐驰和对象存储,手把手教你30分钟搞定私人不限速网盘(附SSL证书配置)

零基础30分钟搭建高性能私人网盘:腾讯云轻量锐驰对象存储实战指南 你是否也受够了公有网盘动辄几百KB的下载速度?每次分享文件给朋友,对方总要忍受龟速下载的煎熬。更别提那些突然消失的文件和频繁弹出的会员广告——是时候拥有一个完全自主掌…...

brpc连接池动态调整算法:基于排队理论的设计与实现

brpc连接池动态调整算法:基于排队理论的设计与实现 【免费下载链接】brpc brpc is an Industrial-grade RPC framework using C Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Recommendat…...

新手福音:免安装claude code,在快马平台开启你的ai编程第一课

作为一个刚接触编程的新手,最近想尝试用AI辅助写代码,但光是安装本地工具就让我头疼不已。直到发现了InsCode(快马)平台,才发现原来AI编程可以这么简单——不用配环境、不用解决依赖冲突,打开网页就能直接开玩。今天就把我的入门体…...

基于模糊PID的水下航行器运动控制系统研究——Matlab 2016b及以上软件应用、课程报告...

基于模糊PID的水下航行器运动控制系统研究 1.适用软件Matlab 2016b及以上 2.课程报告6500字左右共16页 3.课程报告小报告仿真仿真视频 4.请结合以下图片水下航行器的运动控制一直是海洋工程领域的热门课题。面对复杂多变的洋流扰动和强非线性的水动力特性,传统PID控…...