只会 Windows 也能轻松搭建远程桌面 RustDesk 自用服务器

在这里插入图片描述

网管小贾 / sysadm.cc

“哥,你啥时候回来啊?XX业务系统又出问题了!”

“情况紧急,老大说让你远程处理,总之尽快解决!”


虽说我常年出差在外总能收到这样的消息,似乎早已习惯,但是公司小胡的这通连环轰炸却让我有些焦躁。

如今情况不同,我发现最近HS采样点都离奇地消失了!

这大老远的让我怎么回公司呢?

于是我就找啊找啊,好不容易让我给找着了,排队的人还真多,每个人都一副焦急的样子,队伍一眼望不到头,尽头处的小白房子若隐若现。

我立马排上队,急接着就给小胡回消息,示意他公司电脑里有一份 RustDesk 搭建服务器的说明文档,让他赶紧帮忙确认一下远程服务器的运行情况。

如果可以的话,我先用手机远程上去看看问题。


公司出于系统安全方面的考量,在出差前我已经在 Windows 系统平台上初步搭建了 RustDesk 中继服务器。

现在正好用上,如果你也想了解如何自建 RustDesk 服务器,那么我顺便给你们说上一说。

什么,太专业,只会 Windows

没事,会 Windows 系统就够了,没有想象中的那么难,走起吧!


### `RustDesk` 简介

RustDesk 是一款免费开源可商用的远程桌面控制软件。


不方便访问 Github 的小伙伴可以下载这里的备用链接。

  • rustdesk-server - 服务器程序
    • rustdesk-server-1.1.6.zip - 源码
    • rustdesk-server-linux-x64.zip - Linux
    • rustdesk-server-windows-x64.zip - Windows
  • rustdesk-1.1.9.zip - 客户端源码
  • rustdesk-1.1.9-fedora28-centos8.rpm - Fedora 客户端
  • rustdesk-1.1.9-manjaro-arch.pkg.tar.zst - Manjaro 客户端
  • rustdesk-1.1.9-raspberry-armhf.deb - 树莓派客户端
  • rustdesk-1.1.9.dmg - MacOS 客户端
  • rustdesk-1.1.9.deb - Debian 客户端
  • rustdesk-1.1.9-suse.rpm - SUSE Linux 客户端
  • rustdesk-1.1.9.apk - 安卓版客户端
  • rustdesk-1.1.9-windows_x64.zip - Windows 安装版客户端
  • rustdesk-1.1.9-windows_x64-portable.zip - Windows 便捷版客户端
  • node-v18.12.0-x64.msi - NodeJS 安装包

RustDesk全家桶打包.7z(89.9M)

下载链接:https://pan.baidu.com/s/1_pbFBZS6_uuPxM6Adw1Qdw

提取码:<关注公众号,发送001001>


RustDesk 的具体特点大家可以到官网上查看,我这儿只说一些相比其他远程软件不同或更高级的特点。

比如说,支持多平台客户端,包括网页版。

又比如不限速度,稳定可靠,可自行搭建中继服务器。

又又比如不区分控制端和受控端,互相都可以连接控制。


RustDesk 的连接原理非常简单,就是通过 ID 中继服务器识别双方,然后再由服务器返回指令让双方直接建立连接。

如果双方无法直接建立连接,那么 ID 中继服务器就充当中间人在连接双方之间来回传递数据和信息。


再来让我们看看 RustDesk 的名字,我想各位可能猜出来了,肯定是用 Rust 写的。

好像了解 Rust 语言的人并不多,在国内似乎也没有很大的知名度。

不过这些都不打紧,RustDesk 的易用就是一大特点,只要我们能用会用就行。

OK,介绍完毕!

在正式开始说明前,我们先来了解一些有助于我们理解的概念术语!


一些概念术语

要想自己搭建 RustDesk 服务器,有一些概念术语需要事先了解。


服务器:
  • hbbs - RustDesk ID 注册服务器
  • hbbr - RustDesk 中继服务器

ID 注册服务器( hbbs )就是管各个客户端 ID 的,每个客户端都有一个唯一的 ID

而中继服务器( hbbr )则是负责检测、中转各个客户端连接和数据传输。

通常这两个服务器可以是在同一台机器中运行。


开放端口:

默认情况下,hbbs 监听 21115(tcp) , 21116(tcp/udp) , 21118(tcp)hbbr 监听 21117(tcp)21119(tcp)

务必在防火墙开启这几个端口, **注意 21116 要同时开启 TCPUDP **。


  • TCP/21115 - hbbs 用作 NAT 类型测试
  • UDP/21116 - hbbs 用作 ID 注册与心跳服务
  • TCP/21116 - hbbs 用作 TCP 打洞与连接服务
  • TCP/21117 - hbbr 用作中继服务
  • TCP/21118/21119 - 网页客户端

官方安装说明(有坑):

https://rustdesk.com/docs/en/self-host/install/


Windows 上自建服务器

打开 Windows 服务器程序压缩包,只看到两个文件,意思是啥前面已经解释过了。

hbbr.exe
hbbs.exe

别看只有两个文件,劝君还是不要只看官网,否则会有无数个坑等着你,比如直接运行它会报错。

虽说原因无非就是缺东西,和人一样,给到位了就好了。

问题是缺少的东西不是太好找,不过我费了点劲儿还是给找到了,老规矩文末下载。

在这里插入图片描述


如果你不信,那么接下来就会遭遇N多问题。

给你看张图,不管如何运行都会出错和失败,服务始终无法正常工作。

在这里插入图片描述


缺少组件是不是上网到处找啊?

其实大可不必,只要安装 NodeJS 即可,已经放在打包下载中了。


一旦搞定缺失的组件后,整个状态就会变得完全不一样了,毕竟官方为我们编译好的程序我们只要拿来用就行了,非常之爽啊!

PM2 或是 NSSM 也只不过是用于辅助启动的工具罢了。

当然我先声明,我对 NodeJS 的了解基本属于小白级别,只不过我有照猫画虎的小聪明罢了。

接下来我们就先给小伙伴们展示一下直接跑 hbbs/hbbr 的样子,之后再拿 PM2 来简述一下,毕竟后者是官方推荐的方法,可以很方便地管理 hbbs/hbbr 服务的启动。


hbbs/hbbr 的方法简单得不能再简单了,直接一个命令不带任何参数。

我们先跑下 ID 注册服务器试试。

C:\rustdesk-server-windows-x64>hbbs

在这里插入图片描述


你看,它不报错了吧,与此同时也打开了几个端口。

在这里插入图片描述


再来看看进程列表,稳稳地跑着呢。

在这里插入图片描述


在实际连接使用过程中,服务会很敬业地分析接收我们传递的连接信息,小筒子一看就很认真嘛!

在这里插入图片描述


OK,中继服务器 hbbr 也是同理,不过我好像只开了一个 hbbs 就可以用了。

那么接下来我们再试试官网推荐的 PM2 方法。

我的理解是,这玩意应该是 NodeJS 程序的软件包管理器,不管怎样这一点照着官网走就是了。


首先,安装 NodeJS ,下载包在后面也给备好了,亦或者各位可以到其官网上下载 LTS 版本。

在这里插入图片描述


一路耐可斯特后安装完毕,接下来在命令提示窗口中依次输入三条命令,意为安装 Windows 启动管理器。

第一条命令:

npm install -g pm2

在这里插入图片描述


第二条命令:

npm install pm2-windows-startup -g

在这里插入图片描述


第三条命令:

pm2-startup install

在这里插入图片描述


一切准备就绪了,我们可以用 pm2 管理并运行 ID 注册服务器 hbbs 和中继服务器 hbbr 了。

cd c:\rustdesk-server-windows-x64
pm2 start hbbs.exe -- -r <hbbr运行所在主机的地址>
pm2 start hbbr.exe 
pm2 save

看看我运行的效果,先来一张跑 hbbs 的截图。

在这里插入图片描述


很好,online 状态,再瞅瞅进程信息,用的是 node.exe

在这里插入图片描述


紧接着跑 hbbr 吧,兄弟俩齐上阵,效果刚刚滴。

在这里插入图片描述


前面跑单独命令的时候我没跑 hbbr ,现在顺便也看一下端口状态吧。

嗯,2111721119 也都开放了。

在这里插入图片描述


非常完美,我们把它保存起来,下次重启后还能跟着系统自动启动多好。

pm2 save

在这里插入图片描述


假如你不放心,还想看看它工作的样子,可以随时将它再打印出来查看。

pm2 list

连连看

服务都跑起来了,差不多也该到连连看环节了,要不光一个服务有啥好看的呢!

来吧,打开客户端程序,我用的是 Windows 上的客户端,它长这样。

在这里插入图片描述


界面很简洁,左侧是系统自动计算给出的 ID 和密码,右侧则是我们需要连接到目标的操作区域。

通常,我们只要在文本框中输入目标对象的 ID 再点击 连接 就可以了。

一旦连接有了反馈,RustDesk 就会问我们要对方的密码。

在这里插入图片描述


这个密码是啥,在哪儿找?

呐,就在这儿,你把鼠标放上去就看显示明文。

不过这个密码是对方的,可以通过询问了解到。

在这里插入图片描述


很快连接就建立好了,速度飞快,你可以开始远程操作了。

在这里插入图片描述


连接完成后,控制台上也会留有连接记录,方便下次快捷操作。

在这里插入图片描述


好了,到这里我就问你,完美不完美?

说实话,很完美,不过这种情况下,RustDesk 建立连接时会去找公网上的服务器,然后会自动帮你连接你想要的目标对象。

然而你别忘了,我们前面都自建好了服务器,放着不用浪费感情你不会心痛?

是的,要用真心,我们赶快连接我们自己的服务器吧!


告诉你,用自己的服务器也灰常简单,简单得不要不要的!

第一步,点开三个点菜单,选择 ID/中继服务器

在这里插入图片描述


第二步,将服务器的主机名或IP地址输入到窗口文本框中,其他的不理它就是了。

在这里插入图片描述


好了,就两步,有没有病都是走这两步。

你要是还不太自信,可以将服务器和客户端的网关去掉,确保它们上不了公网。

这样做的目的是为了让连接与被连接双方都明确无误地连接我们指定的自建的服务器上而非公网服务器。

最后,你可以像之前远程连接一样来连接目标对象了。


需要多说一嘴,使用自建服务器来建立远程连接的方式,非常适合安全性要求高的场景,局域网或其他一些私有网络也可以这么做,安全可靠、便捷高效。


其实还能玩直连

RustDesk 的原理,服务器只是充当了中介的身份,只要连接双方是在直接能访问到的网络中(比如局域网),它就会给安排成直连。

除非无法直连或速度不理想,否则最后连接双方其实还是直连状态,也就是说 RustDesk 完全可以直接玩直连。


如下图,在菜单中勾选 允许IP直接访问 ,然后输入目标主机名或IP地址即可畅快连接。

在这里插入图片描述


这种情况下,中继服务器也就可以退休了,说白了,比如在局域网中,我们就可以像用其他远程连接软件一样,直接连接远程操作了。


写在最后

我排着队一路走走停停,最终手机成功连接到了公司的服务器上,还好问题不大很快就处理好了。

这时我一抬头,嘿,马上轮到我了,那个激动啊。

结果等我走近扶着眼镜这么仔细一瞧差点没当场社死!

只见那小白房子上挂一块硕大匾额,上写四个大字:公共厕所…


将技术融入生活,打造有趣之故事

网管小贾 / sysadm.cc

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/153390.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分类预测 | MATLAB实现KOA-CNN-LSTM开普勒算法优化卷积长短期记忆神经网络数据分类预测

分类预测 | MATLAB实现KOA-CNN-LSTM开普勒算法优化卷积长短期记忆神经网络数据分类预测 目录 分类预测 | MATLAB实现KOA-CNN-LSTM开普勒算法优化卷积长短期记忆神经网络数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.MATLAB实现KOA-CNN-LSTM开普勒算法优化…

精品Python语言django基于爬虫的新闻资讯分析系统的设计与实现

《[含文档PPT源码等]精品Python项目django基于爬虫的新闻资讯分析系统的设计与实现》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程等&#xff01; 软件开发环境及开发工具&#xff1a; 开发语言&#xff1a;python 使用框架&#xff1a;Django 前…

代码理解技术应用实践介绍

作者 | CQT&星云团队 一、前言 代码理解作为软件知识图谱重要的技术之一&#xff0c;可以为构建、测试、定位、代码解释等提供基础的技术和数据保障&#xff0c;也是持续集成的起点&#xff0c;只有理解了代码才能有目的性的进行有效构建。代码理解对于软件开发的成功和维…

Linux 部署 MinIO 分布式对象存储 配置为 typora 图床

前言 MinIO 是一款高性能的对象存储系统&#xff0c;它可以用于大规模的 AI/ML、数据湖和数据库工作负载。它的 API 与Amazon S3 云存储服务完全兼容&#xff0c;可以在任何云或本地基础设施上运行。MinIO 是开源软件&#xff0c;也提供商业许可和支持 MinIO 的特点有&#x…

WPS/word 表格跨行如何续表、和表的名称

1&#xff1a;具体操作&#xff1a; 将光标定位在跨页部分的第一行任意位置&#xff0c;按下快捷键ctrlshiftenter&#xff0c;就可以在跨页的表格上方插入空行&#xff08;在空行可以写&#xff0c;表1-3 xxxx&#xff08;续&#xff09;&#xff09; 在空行中输入…

vue cli和vite区别

1.Vue CLI脚手架 什么是Vue脚手架&#xff1f; 在真实开发中我们不可能每一个项目从头来完成所有的webpack配置&#xff0c;这样显示开发的效率会大大的降低&#xff1b;所以在真实开发中&#xff0c;我们通常会使用脚手架来创建一个项目&#xff0c;Vue的项目我们使用的就是…

苍穹外卖项目

1. 苍穹外卖项目介绍 1.1 项目介绍 定位&#xff1a;专门为餐饮企业&#xff08;餐厅、饭店&#xff09;定制的一款软件产品 项目架构&#xff1a;体现项目中的业务功能模块 1.2 产品原型 产品原型&#xff1a;用于展示项目的业务功能&#xff0c;一般由产品经理进行设计 …

安全与隐私:直播购物App开发中的重要考虑因素

随着直播购物App的崭露头角&#xff0c;开发者需要特别关注安全性和隐私问题。本文将介绍在直播购物App开发中的一些重要安全和隐私考虑因素&#xff0c;并提供相关的代码示例。 1. 数据加密 在直播购物App中&#xff0c;用户的个人信息和支付信息是极为敏感的数据。为了保护…

忘记压缩包密码?解决方法一键找回,省时又便捷!

使用在线rar/zip解密工具&#xff0c;找回rar/zip密码并解密压缩包的方法非常简单。具体步骤如下&#xff1a;首先&#xff0c;在百度上搜索“密码帝官网”&#xff0c;这是一个专业的解密服务网站。然后&#xff0c;点击搜索结果中的链接&#xff0c;进入官网首页。在页面上方…

Netty(四)NIO-优化与源码

Netty优化与源码 1. 优化 1.1 扩展序列化算法 序列化&#xff0c;反序列化主要用于消息正文的转换。 序列化&#xff1a;将java对象转为要传输对象(byte[]或json&#xff0c;最终都是byte[]) 反序列化&#xff1a;将正文还原成java对象。 //java自带的序列化 // 反序列化 b…

【Java】微服务——Feign远程调用

目录 1.Feign替代RestTemplate1&#xff09;引入依赖2&#xff09;添加注解3&#xff09;编写Feign的客户端4&#xff09;测试5&#xff09;总结 2.自定义配置2.1.配置文件方式2.2.Java代码方式 3.Feign使用优化4.最佳实践4.1.继承方式4.2.抽取方式4.3.实现基于抽取的最佳实践1…

麻省理工学院与Meta AI共同开发StreamingLLM框架,实现语言模型无限处理长度

&#x1f989; AI新闻 &#x1f680; 麻省理工学院与Meta AI共同开发StreamingLLM框架&#xff0c;实现语言模型无限处理长度 摘要&#xff1a;麻省理工学院与Meta AI的研究人员联合研发了一款名为StreamingLLM的框架&#xff0c;解决了大语言模型在RAM与泛化问题上的挑战&am…

微信小程序 获取当前屏幕的可见高宽度

很多时候我们做一下逻辑 需要用整个窗口的高度或宽度参与计算 而且很多时候我们js中拿到的单位都是px像素点 没办法和rpx同流合污 官方提供了wx.getSystemInfoSync() 可以获取到部分窗口信息 其中就包括了整个窗口的宽度和高度 wx.getSystemInfoSync().windowHeight 返回值为像…

微店商品链接获取微店商品详情数据(用 Python实现微店商品信息抓取)

在网页抓取方面&#xff0c;可以使用 Python、Java 等编程语言编写程序&#xff0c;通过模拟 HTTP 请求&#xff0c;获取微店网站上的商品页面。在数据提取方面&#xff0c;可以使用正则表达式、XPath 等方式从 HTML 代码中提取出有用的信息。值得注意的是&#xff0c;微店网站…

[stm32]外中断控制灯光

在STM32CubeMX中配置外部中断功能和参数 1、将上拉输入的引脚设置为&#xff1a;GPIO_EXTI功能 2、GPIO模式设为下降沿触发外部中断&#xff0c;使能上拉电阻&#xff0c;用户标签 3、要将NVIC的相关中断勾选 只有将中断源进行勾选&#xff0c;相关的中断请求才能得到内核的…

xshell安装完成在windows不能打开

文章目录 问题描述问题排查解决第一步第二步 问题描述 安装打开xshell的时候总是点击没有任何的反应&#xff0c;重启电脑后再次点击xshell也没有任何的响应。只有在重装软件后才能正常打开。 问题排查 点击打开xshell7的时候总是报如下错 在这里能看到具体的描述&#xff…

高频时序数据仓库

天软课堂将在本周四添加新主题--天软超高频行情数据。针对市场上高频行情数据处理业务的相关痛点&#xff0c;直观的在线演示如何通过天软高频数仓及高性能计算能力&#xff0c;将其逐个击破&#xff0c;期待各位老师的参会。

Android攻城狮学鸿蒙-配置

1、config.json配置 鸿蒙中的config.json应该类似于Android开发中Manifest.xml&#xff0c;可以进行页面的配置。根据顺序&#xff0c;会识别启动应用的时候&#xff0c;要打开哪个界面。 2、 Ability详解&#xff0c;以及与Android的Activity对比。 他人的学习文章连接&…

奖品定制经营商城小程序的作用是什么

奖品是激励人员团体很好的方式&#xff0c;也是荣誉象征&#xff0c;奖牌、奖杯、高端礼盒等&#xff0c;同时市场中团体非常多&#xff0c;其需求也是很多&#xff0c;尤其定制方面&#xff0c;就更是不用说。 对奖品定制企业来说&#xff0c;除了线下门店获客经营外&#xf…

从零学算法(LCR 180)

文件组合.待传输文件被切分成多个部分&#xff0c;按照原排列顺序&#xff0c;每部分文件编号均为一个 正整数&#xff08;至少含有两个文件&#xff09;。传输要求为&#xff1a;连续文件编号总和为接收方指定数字 target 的所有文件。请返回所有符合该要求的文件传输组合列表…