大数跨境
0
0

我把远程桌面RustDesk搬回家里实测:连续3天高强度协助稳如老狗!

我把远程桌面RustDesk搬回家里实测:连续3天高强度协助稳如老狗! 内存科技
2025-11-14
11
导读:最近连续三天高强度有偿帮助网友弄家里的网络,顺带体验了自部署的 rustdesk 远程协助服务,发现真的稳如老狗,我先快撑不住了,它依旧流畅自若,几乎不掉线!正因如此,我得好好把它分享一下。

 

字数 1620,阅读大约需 9 分钟

将家庭云生活设为“星标⭐”,最新文章不再错过

最近连续三天高强度有偿帮助网友弄家里的网络,顺带体验了自部署的 rustdesk 远程协助服务,发现真的稳如老狗,我先快撑不住了,它依旧流畅自若,几乎不掉线!正因如此,我得好好把它分享一下。

碎碎念

熟悉我的小伙伴可能都已经清楚,我的家里没有公网 IPv4,是 NAT1 类型,我把 rustdesk 的服务端和中继都搬到了家里,中继通过 nat 打洞对外开放服务,服务端通过远程端口转发暴露服务,反正就是强迫所有节点走中继的意思,中继放家里,延迟都还能接受。原本想着把异地组网那套自动化的东西用在 rustdesk 这里,奈何精力有限,分享实现关键环节,重要的文件都上传到我的代码库,可自行前往参考观摩,本篇的实现基于异地组网那套进行的补充。

实战环节

先来看看主体服务部分,rustdesk 服务端和中继安排在 headscale 同台服务器上,老规矩,一个 compose 文件搞定。我给每个容器都配置了静态 IP,便于端口转发。


   
    
   services:
  hbbr:
    container_name: hbbr
    image: rustdesk/rustdesk-server:latest
    command
: hbbr
    volumes:
      - ./data:/root
    restart: always
    networks:
      rd-net:
        ipv4_address: 172.16.33.3

  hbbs:
    container_name: hbbs
    image: rustdesk/rustdesk-server:latest
    # 下面的domain:21117改成自己的外网域名/ip:端口的形式

    command
: hbbs -r $RELAY -k _
    environment:
      - RELAY
    volumes:
      - ./data:/root
    restart: always
    networks:
      rd-net:
        ipv4_address: 172.16.33.2

networks:
  rd-net:
    driver: bridge
    ipam:
      config:
        - subnet: "172.16.33.0/24"
          gateway: "172.16.33.1"

之所以不使用 host 网络,更是为了安全隔离,将它们安排在一个独立的网络,它们最终是要对外开放服务的,是不可信的,默认不允许它外联,奈何 headscale 又必须外联,所以只能用 docker 桥接网络搞事情了。

紧接着安排下环境变量文件 .env,中继节点信息可以随便添,后边会根据打洞情况实时更新的。


   
    
   RELAY=127.0.0.1:443

到此 rustdesk 主体服务已经安排妥当。

将该项目中关键的文件弄到 headscale 项目下的 client 容器中去,我脚本里已经做好了内网端口同步 dnat 规则,这么做的好处也是为了别让家里 rustdesk 客户端在家还要绕过外网去兜一圈,想想都难受。

给 headscale 客户端入口脚本补充如下内容。

这样就实现了动态更新该项目中环境变量的内容,当环境变量发生变化后,需要立即唤起重建容器,更新服务启动参数里的中继信息。由于我内外网统一采用的域名,主要是端口的变化。我这里使用 crontab 来实现,为提升成功率,我在检测到环境变量文件 3 分钟内发生变化就重启 3 次,因为我是每分钟执行一次检测。


   
    
   * * * * *       find /data/tools/rustdesk/.env -mmin -3 2>/dev/null | grep -q . && /usr/bin/docker compose -f /data/tools/rustdesk/compose.yaml up -d

紧接着就是远程端口转发了,这是相对于我家里来说哈,但实际上,我是使用的 xray,用到的是 xray 的本地端口转发功能,只不过是家里作为 xray 的服务端,远端 VPS 按需转发数据到家里的 xray,我这样做主要为了节省资源,避免不必要的长链接,是稳定发展长存之计,深层次原因不便多讲。当然也可以通过其他 frp、nps 等工具进行远程端口转发。

域名解析。随便准备一个域名用作 rustdesk 的服务接入域名,内网的域名解析指向 headscale 的服务器 IP 地址。

安全加固

正如前边说了,对外开放服务的容器是不受信任的,不能让它联网,但资源又有限,只能从 docker 网络来做文章了,将 docker 的 iptables 功能关闭了。

另外还需要将容器中的端口给暴露到宿主的 IP 地址上,以供内网访问,项目中已在 xray 的配置文件中体现,这里不再赘述。

最后在 rustdesk 的客户端配置如下信息,无需配置中继信息,自动从服务端动态获取。

愉快的玩耍吧!

小结

本篇通过把 rustdesk 搬回家里,从安全角度有了更多掌控能力,远端 VPS 仅作为数据转发作用,尽可能降低数据泄漏风险,同时又不影响数据传输体验,远端 VPS 可以是一个很渣的配置,反正大流量数据强制走了家里的中继,流畅如斯!即使跨网,得益于 headscale 之初配置的 bbr,速度上也是能够接受的!

推荐阅读


随手点赞👍,戳个喜欢

 

【声明】内容源于网络
0
0
内存科技
1234
内容 1560
粉丝 0
内存科技 1234
总阅读18.9k
粉丝0
内容1.6k