异地远程串流

异地远程串流

【授权作品,如果链接失效,请点击视频,进入b站评论区,获取最新链接】

什么是串流

串流(Streaming)是指数据或信息在持续传输和接收过程中逐步被处理和使用的技术。与传统的“下载”方式不同,串流通常允许用户在数据传输过程中就可以开始观看、听取或处理内容,而不需要等待整个文件完全下载完成。

-【此解释由 ChatGPT 生成,请注意甄别】
 
简单点说,在线视频、在线音乐、远程桌面等需要从对端传输数据至本地设备的过程,都存在串流。其中音视频主要包括自建影音库、alist,而远程桌面,则是字面意思,也是本文要讨论的重点。
 

常用串流软件

如果不是追求能够远程在家里电脑玩黑猴,高分刷新率拉满,免费方案就已经够用了。典型的比如我,只是偶尔需要远程家里电脑拷贝个文件过来,“出去”查点东西或者其它什么在自己电脑上处理更方便的内容等,时延画质要求不高的需求。反之,如果免费方案满足不了,自然可以加钱获得更好的体验。
 
就我自己上手用过的几个方案如下:
 
  • ToDesk
  • Sunshine & Moonlight
  • Frp
  • ZeroTier
🎗️: 我的使用环境
  • 宿主机:电信有线(20M 上行),Win10,笔记本
  • 客户端:无线(20M 下行),Win10,笔记本

ToDesk

参考资料
免费方案:
  • 分辨率:最高 1080P30 帧(取决与网络环境):在我这边 20M 条件下基本只有 720P 可以比较流畅使用
  • 时间限制:120h/月 300 次/月
  • 文件传输:支持,速度一般
  • 剪贴板共享:支持
  • 客户端:
    • 主控客户端:需要
    •  被控客户端:需要
  • 登录:需要
☘️ 使用体验:
每天约 8h 连接时间(活动时间约 2h),经常性 720P,临时性使用尚可,较长时间使用很容易攒怒气。需要主控设备均安装客户端并登录账号。
🍀 使用建议:
作为备用方案,临时的时候用一下还行。如果作为主要方案,免费版确实不够看。

Sunshine & Moonlight

参考资料:
这套应该是搜索 “远程桌面串流” 结果最多的,一是免费,二是性能足够好,可以作为主推方案,只不过这套选择在我的手上并没有发挥出应有的水平:使用 moonlight 串流之后的鼠标加速很奇怪,也没有找到怎么调整,只得作罢。
基本情况:
  • 分辨率与帧率:最大支持 4K 60 帧(取决于硬件和网络环境),条件允许,轻薄本畅玩黑猴也不是不行诶
  • 时间限制:最多 744h/月 👻,没有次数限制
  • 文件传输:不支持
  • 剪贴板共享:支持
  • 客户端:
    • 主控:需要安装 Moonlight,并配对
    • 被控:需要安装 Sunshine
  • 登录:不需要,但需要配对码配对。
☘️ 使用体验:
Sunshine + Moonlight 的组合比较适合高质量的游戏串流,理想条件下,画质可以达到 4K,时延也是毫秒级。只是配置起来,稍微比上面的开箱即用麻烦一点。
🍀 使用建议:
如果网络环境不错,不嫌麻烦,很推荐这种方式(如果没遇到奇奇怪怪的东西的话)。

Frp

参考资料:
推荐两个项目,官方手册已经很详细了:
  • frp: 支持 P2P,比中转流畅一点。需自建服务端
  • SakuraFrp: 使用官方隧道,限速 10M,免费 10G(可签到获取)
frp 是一个反向代理的应用,主要是做内网穿透,来做远程其实也还不错。
这种方式需要一个两边都能访问到的服务端,所以如果正好手头有服务器可以试试,没有的话就不推荐了。
  • 分辨率与帧率:本质是反代宿主机 3389 端口(RDP 协议),也就是利用 Windows 本身的远程桌面服务,可以支持 60Hz(出门 bing 一下)
  • 时间限制:无
  • 文件传输:支持(RDP)
  • 剪贴板共享:支持(RDP)
  • 客户端:主控:需部署 frpc 服务
    • 被控:需部署 frpc 服务
    • 服务端:需部署 frps 服务
  • 登录:不需要,需配置
SakuraFrp 有图形化界面,新建通道简单配置就可以使用了,goFrp 稍微麻烦一点,~~简要说明一下。~~新版本好久没实际用过了,纸上谈兵肯定不行,所以干脆先不写了,后面用上了再补充。
☘️ 使用体验:
采用的是第一个 goFrp 的方式,通过 P2P 的方式建立隧道,然后使用 Windows 自带的 RDP,分辨率和帧率能达到 1080P60 帧(需修改配置),体验倒还不错,唯一的问题就是不算稳定,经常掉线,一掉就不太好连上了。整体比 ToDesk 评价高一点。
🍀 使用建议:
可以折腾玩玩,如果实际体验不错,也建议使用。

ZeroTier

参考资料:
ZeroTier 是将多个客户端关联到一个专用虚拟局域网(VPN)中的 P2P 工具,在设备间时间点对点连接,保证了安全性和速度。然后就可以用 Windows RDP 做远程了。
提供免费和付费服务,个人使用免费版就足够了,三个虚拟网,每个最多 10 个客户端。
  • 分辨率:可以 1080P60Hz
  • 时间限制:最多 744h/月
  • 文件传输:都在一个局域网了,开了共享就可以使用 ftp/smb 传输了。或者用 RDP 的
  • 剪贴板共享:RDP 可共享
  • 客户端要求:
    • 主控:需要
    • 被控:需要
  • 登录:不需要,但是第一次需要登录后台创建网络、管理设备。
☘️ 使用体验:
目前主要方案,使用自建行星服务器。画质帧率、稳定性都还不错,只要两边网络能跟得上。。。
🍀 使用建议:
最推荐的方式。

基本概念

  • PLANET(行星服务器):ZeroTier 网络核心根服务器,用于网络设备发现和初始连接,整个网络中枢。
  • MOON(卫星服务器):作为 PLANET 的区域代理,帮助就近设备快速建立连接
  • LEAF(叶子节点):所有接入 ZeroTier 网络的终端设备,如电脑、手机、服务器等。这些设备通过 PLANET 和 MOON 的协调来相互发现和通信。

官方服务器

  1. 注册并登录到 [ZeroTier](https://www.zerotier.com/) 管理页面;
  2. 选择【Create A Nerwork】创建一个虚拟网络,记录**Network ID**
  3. 在每个设备下载 Zerotier 客户端,启动后在任务栏找到图标,右键-【Join New Network】,输入上面的网络 ID;
    或者直接管理员身份打开命令终端加入:
    # 可以 tab 补全
    zerotier-cli join <network ID>

    提示 `200 Successfully` 表示成功加入。

  4. 回到 ZeroTier 的管理页面,进入刚才创建的网络详情页,可以看到新加入的设备,勾选【Auth】进行认证,认证后会获得一个 IP,所有加入到这个网络的设备都可以使用这里出现的 IP 互访。比如使用 Windows RDP 访问家里的电脑。

  5. 【可选】下面高级部分可以自定义局域网网段、路由转发等,需要可自行查阅资料。

自建 Planet 服务器

自建 PLANET 服务器主要是为了:
  • 提升网络稳定性:官方服务器位于海外,延迟较高不稳定
  • 加快连接速度:本地化 PLANET 服务器可以加快连接
  • 增强网络控制和安全性:私有化部署流量不经过三方
  • 降低对官方服务器依赖:除开网络波动,个人部署稳定性应该是比不上官方的 🥹
  1. 环境准备:
    1. 拥有公网 IP 的服务器
    2. 防火墙开放以下端口:
      • 3443/TCP 管理面板,根据实际调整
      • 9994/TCP ZeroTier 通信,根据实际调整
      • 9994/udp ZeroTier 通信,根据实际调整
    3. Docker 环境:请参考官方安装教程,2min 搞定
    4. git 软件包
    5. 【可选】docker 加速镜像
      sudo tee /etc/docker/daemon.json <<EOF
            {
                "registry-mirrors": [
                    "https://docker.mirrors.aster.edu.pl",
                    "https://docker.mirrors.imoyuapp.win"
                ]
            }
            EOF
      
      
            sudo systemctl daemon-reload
            sudo systemctl restart docker
  2. 下载源码

    # 官方地址
       git clone https://github.com/xubiaolin/docker-zerotier-planet.git
    
    
       # 加速地址
       git clone https://ghproxy.imoyuapp.win/https://github.com/xubiaolin/docker-zerotier-planet.git
  3. 执行安装
    # 进入项目目录
    cd docker-zerotier-planet
    
    
    # 运行安装脚本
    ./deploy.sh

    选择【1】安装,自动获取公网地址即可。

  4. 下载 planet 文件
    安装完成后,会在项目目录 `./data/zerotier/dist` 目录下生成 `planet ` 和 `moon` 文件,通过 SSH 工具下载到本地
  5. 新建网络
    1. 打开管理面板 `http://<ip>:3443`,默认账密: `admin/password`
    2. 选择【Add Network】新建网络,输入网络名称,其它可保持默认。创建成功后会生成一个网络 ID
    3. 进入网络详情页,选择【Easy setup】-【Generate network address】随机生成 ip 范围
  6. 添加客户端
    1. Windows
      1. 下载安装好 ZeroTier 客户端,将生成的 `planet` 文件覆盖到 `C:\ProgramData\ZeroTier\One` 目录(先重命名备份),如果看不到就打开显示隐藏文件;
      2. 重启 【ZeroTier One】服务/直接重启客户端。
      3. 管理员身份打开 PowerShell,执行命令加入网络
        > zerotier-cli.bat join <ID>
         200 join OK

        加入成功后,管理页面会显示客户端,勾选【Authorized】认证即可。

      4. 执行
        > zerotier-cli.bat peers

        可以看到 PLANET 和 LEAF 角色,连接方式为 DIRECT(直连),至此加入网络成功。

    2. Linux & MacOS
      操作步骤和上面类似:安装客户端,替换 `planet` 文件,重启服务,加入网络。

Tailscale

还有一种自建服务的选择——Tailscale,待补充。

总结

以上仅提出一点参考和个人使用体验,但毕竟每个人环境、设备、需求都不尽相同,很难说我觉得完全够用的方案对你来说不过勉勉强强,具体还是需要实际上手体验为准。

😶‍🌫️ 一点碎碎念~~

什么时候能够支持 Markdown 编辑啊,站长大大!现在这种编辑方式对于部分人可能很好用,可是也有人是喜欢编辑 Markdown 的。

© 版权声明
THE END
喜欢就支持一下吧
点赞14赞赏 分享
评论 共3条

请登录后发表评论

    请登录后查看评论内容