惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
J
Java Code Geeks
Apple Machine Learning Research
Apple Machine Learning Research
Jina AI
Jina AI
博客园_首页
C
Check Point Blog
小众软件
小众软件
博客园 - 叶小钗
Blog — PlanetScale
Blog — PlanetScale
Engineering at Meta
Engineering at Meta
美团技术团队
Martin Fowler
Martin Fowler
Vercel News
Vercel News
D
Docker
罗磊的独立博客
B
Blog RSS Feed
The Cloudflare Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 聂微东
Last Week in AI
Last Week in AI
T
Tailwind CSS Blog
雷峰网
雷峰网
博客园 - Franky

竹林里有冰的博客

Nuxt SSG 博客的尾斜杠到底怎么加? | 竹林里有冰的博客 小米 Xiaomi Book Pro 14 (Ultra X7) Linux 兼容性实测 | 竹林里有冰的博客 国内(大陆)版小米 FCM 熄屏断连:Rootless 环境下的尝试与可能的解决方案 | 竹林里有冰的博客 我没法访问 dl.google.com —— 记一次 TUN 下的网络 debug | 竹林里有冰的博客 Vercel 的缓存控制,你注意过吗? | 竹林里有冰的博客 小记 —— Caddy 在 Layer 4 上的流量代理实践 | 竹林里有冰的博客 你的域名后缀拖慢你的网站速度了嘛?——再谈 DNS 冷启动 | 竹林里有冰的博客 DNS 冷启动:小型站点的“西西弗斯之石” | 竹林里有冰的博客 HTTP/2 Server Push 已事实性“死亡”,我很怀念它 | 竹林里有冰的博客 Nuxt Content v3 中数组字段的筛选困境与性能优化 | 竹林里有冰的博客 后 OCSP 时代,浏览器如何应对证书吊销新挑战 | 竹林里有冰的博客 初试 Github Action Self-hosted Runner,想说爱你不容易 | 竹林里有冰的博客 DNS 解析延迟毁了我的图床优化 | 竹林里有冰的博客 Vue Markdown 渲染优化实战(下):告别 DOM 操作,拥抱 AST 与函数式渲染 | 竹林里有冰的博客 Vue Markdown 渲染优化实战(上):从暴力刷新、分块更新到 Morphdom 的华丽变身 | 竹林里有冰的博客 node-sass 迁移至 dart-sass 踩坑实录 | 竹林里有冰的博客 前端中的量子力学——一打开 F12 就消失的 Bug | 竹林里有冰的博客 2025 年,如何为 web 页面上展示的视频选择合适的压缩算法? | 竹林里有冰的博客 el-image 和 el-table 怎么就打架了?Stacking Context 是什么? | 竹林里有冰的博客 2025年,前端如何使用 JS 将文本复制到剪切板? | 竹林里有冰的博客 ssh 拯救世界——通过 ssh 隧道在内网服务器执行 APT 更新 | 竹林里有冰的博客 Cudy TR3000 吃鹅(daed)记 | 竹林里有冰的博客 使用 Cloudflare Workers 监控 Fedora Copr 构建状态 | 竹林里有冰的博客 基于 Cloudflare Workers 实现的在线服务状态检测告警系统 | 竹林里有冰的博客 构建部署在 Cloudflare Workers 上的 TG Bot | 竹林里有冰的博客 2024年,Firefox 是唯一还在坚持执行在线的 SSL 证书吊销状态检查的主流浏览器 | 竹林里有冰的博客 小爱课程表适配不完全指北——以 ZJUT 本科正方教务系统为例 | 竹林里有冰的博客 将博客从 waline v2 更新到 waline v3 | 竹林里有冰的博客 给家里云装上 Fedora 41 KDE 后,我是如何配置的 | 竹林里有冰的博客 为 Hexo 添加 follow 认证 | 竹林里有冰的博客
将 Rustdesk 中继服务从 Arch Linux 迁移至 Debian | 竹林里...
竹林里有冰 · 2024-09-20 · via 竹林里有冰的博客

这次迁移主要是两方面原因,一来是我安装了 Arch Linux 的 VPS 要过期了,续费价格过高,没有续费的动力;二来是手上的 VPS 越来越多,逐渐意识到 Arch Linux 作为滚动发行版,每次安装新的软件都要 Syu 甚至重启系统,实在没有太多的精力去维护,这也是为什么 Arch Linux 仅适合桌面发行版。

原本在 Arch Linux 上部署的 rustdesk server 我是按照这篇文章「(水文)在archlinux上部署rustdesk服务端」部署的。本身没什么技巧,直接从 AUR 安装现成的 rustdesk-server-bin,使用 systemctl 启用 rustdesk-server-hbbr.servicerustdesk-server-hbbs.service 两个服务即可。

Rustdesk 现在为 Debian 提供了官方的中继服务器的 deb 包,而谷歌搜了一圈都是下载 zip 包使用 pm2 管理进程,故写下此文。

AUR 上的安装方案将密钥放在 /opt/rustdesk-server/data 直接用 sftp 获取 id_ed25519id_ed25519.pub 两个文件就行。如果是新部署的没有这两个文件也没事,rustdesk 服务在启动时可以自动创建,只不过需要在客户端重新输入公钥。

sftp> get /opt/rustdesk-server/data/id_ed25519
sftp> get /opt/rustdesk-server/data/id_ed25519.pub

在新服务器上下载 deb 包,进行安装#

apt install -y curl jq
version=$(curl -s https://api.github.com/repos/rustdesk/rustdesk-server/releases/latest | jq .tag_name)

hbbr_deb=rustdesk-server-hbbr_${version:1:-1}_amd64.deb
hbbs_deb=rustdesk-server-hbbs_${version:1:-1}_amd64.deb
utils_deb=rustdesk-server-utils_${version:1:-1}_amd64.deb

for deb in $hbbr_deb $hbbs_deb $utils_deb
do
    curl -L https://github.com/rustdesk/rustdesk-server/releases/download/${version:1:-1}/${deb} -o ${deb}
done

dpkg -i $hbbr_deb $hbbs_deb $utils_deb
rm $hbbr_deb $hbbs_deb $utils_deb

简单写了个脚本,仅适用 amd64,也没做异常处理,如果服务器在大陆境内需要自行解决 github 下载时可能出现的网络波动问题。

dpkg 安装结束后默认会启用两个 systemd 服务并开机自启,所以不需要使用 systemctl 手动启用。

替换密钥#

将刚刚备份的一个公钥和一个私钥放在 Debian 服务器的相应路径,问题是这个路径在哪里呢?

通过翻看 rustdesk 的 service 文件,我们大概可以定位到是在 /var/lib/rustdesk-server/ 路径下的

service 问价你service 问价你

直接对两个密钥文件进行替换,重启 rustdesk 相关的两个 service 服务即可。

密钥文件密钥文件

开放服务器防火墙#

需要开放如下端口,记得 Linux 的防火墙和云服务供应商面板(如果有的话)上都要开放

  • TCP(21115, 21116, 21117, 21118, 21119)
  • UDP(21116)

客户端设置#

id_ed25519.pub 对应客户端中需要输入的 Key,大概长成下面这个样子

rdtxujYccRLXwXOu2KR3V9cGgP51lEdSmE0HJHGNkn4=

ID 服务器直接输入中继服务器的 ip 或者解析到对应 ip 的域名即可,另外两个地址可以不填,RustDesk会自动推导(如果没有特别设定)

成果展示#

成果展示成果展示

参见#