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

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
J
Java Code Geeks
量子位
腾讯CDC
C
Check Point Blog
小众软件
小众软件
IT之家
IT之家
I
InfoQ
Hugging Face - Blog
Hugging Face - Blog
Stack Overflow Blog
Stack Overflow Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
GbyAI
GbyAI
Apple Machine Learning Research
Apple Machine Learning Research
大猫的无限游戏
大猫的无限游戏
博客园_首页
S
SegmentFault 最新的问题
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
aimingoo的专栏
aimingoo的专栏
P
Proofpoint News Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google DeepMind News
Google DeepMind News
T
Tailwind CSS Blog
Martin Fowler
Martin Fowler

竹林里有冰的博客

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 认证 | 竹林里有冰的博客
使用动态公网 ip + ddns 实现 rustdesk 的 ip 直连 | 竹林里...
竹林里有冰 · 2024-06-30 · via 竹林里有冰的博客

最近跟风整了一台 n100 的迷你主机装了个 Archlinux 当 HomeServer,搭配上了显卡欺骗器,平常一直远程使用,因此需要实现稳定的远程桌面连接。开源软件 Rustdesk 本身对 Linux 的适配尚可,可惜官方提供的服务器位于境外,且前一阵子因为诈骗相关的风波使得官方对连接做出了一些限制,应当使用自建服务器或者 ip 直连。

单从网络安全的角度出发,最佳实践应该是通过 wireguard 或者别的协议先接入局域网,然后使用局域网内的 ip 直连,这是最稳妥的,但我有点懒,而且我可能会在多个设备上都有控制 HomeServer 的需求,给所有设备配置 wireguard 是一件挺麻烦的事情,因此我决定放弃安全性,直接公网裸奔。

在学校宿舍的电信宽带提供了一个动态公网 ip,因此只需要设置好 ddns 和端口转发就可以拿到一个固定的 domain + port 提供给 rustdesk 直连。

在「设置」中的「安全」一栏选择「解锁安全设置」,拉到最下面的「安全」栏,勾选「允许 IP 直接访问」,并选择一个端口,范围在 1000 ~35535 之间且不要被本地的其他程序占用,Rustdesk 的默认值为 21118。

可以直接在局域网内的另一台设备进行测试,直接在 Rustdesk 中输入被控端的局域网 ip 和刚刚设置的端口,看看能不能访问得通,如果不行可能需要排查一下被控端访问墙设置的问题。

ddns#

由于我的域名是交给 cloudflare 进行解析的,就找了个支持 cloudflare 的 ddns 脚本,大致的部署过程可以参考 「自建基于Cloudflare的DDNS」,不过我小改了一下脚本中获取公网 ipv4 的方式,直接 ssh 到路由器上获取当前的 ipv4 地址,不依赖外部的服务。

WAN_IP=`ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa root@192.168.1.1 'ip -br a' | grep pppoe-wan | awk '{print $3}'`

理论上来说,有不少路由器自身就支持不少域名解析商

端口转发#

端口转发需要在路由器的后台设置进行,我这里路由器使用的是 openwrt 系统,大部分路由器应该都支持这个操作。

在「网络」-「防火墙」

选择「端口转发」

新建端口转发,共享名随便填,外部端口是你最终要在主控端输入的端口,内部 IP 地址是被控机 的 IP 地址,可以用 ip -br a 命令看到,内部端口就是上文在 Rustdesk 指定的端口号。

效果#

可以直接在主控端口输入 ddns 的域名和端口号,实现远程控制