什么是串流
串流(Streaming)是指数据或信息在持续传输和接收过程中逐步被处理和使用的技术。与传统的“下载”方式不同,串流通常允许用户在数据传输过程中就可以开始观看、听取或处理内容,而不需要等待整个文件完全下载完成。
常用串流软件
- ToDesk
- Sunshine & Moonlight
- Frp
- ZeroTier
- 宿主机:电信有线(20M 上行),Win10,笔记本
- 客户端:无线(20M 下行),Win10,笔记本
ToDesk
-
分辨率:最高 1080P30 帧(取决与网络环境):在我这边 20M 条件下基本只有 720P 可以比较流畅使用
-
时间限制:120h/月 300 次/月
-
文件传输:支持,速度一般
-
剪贴板共享:支持
-
客户端:
-
主控客户端:需要
- 被控客户端:需要
-
- 登录:需要
Sunshine & Moonlight
- 分辨率与帧率:最大支持 4K 60 帧(取决于硬件和网络环境),条件允许,轻薄本畅玩黑猴也不是不行诶
- 时间限制:最多 744h/月 👻,没有次数限制
- 文件传输:不支持
- 剪贴板共享:支持
- 客户端:
- 主控:需要安装 Moonlight,并配对
- 被控:需要安装 Sunshine
- 登录:不需要,但需要配对码配对。
Frp
- 分辨率与帧率:本质是反代宿主机 3389 端口(RDP 协议),也就是利用 Windows 本身的远程桌面服务,可以支持 60Hz(出门 bing 一下)
- 时间限制:无
- 文件传输:支持(RDP)
- 剪贴板共享:支持(RDP)
- 客户端:主控:需部署 frpc 服务
- 被控:需部署 frpc 服务
- 服务端:需部署 frps 服务
- 登录:不需要,需配置
ZeroTier
- 分辨率:可以 1080P60Hz
- 时间限制:最多 744h/月
- 文件传输:都在一个局域网了,开了共享就可以使用 ftp/smb 传输了。或者用 RDP 的
- 剪贴板共享:RDP 可共享
- 客户端要求:
- 主控:需要
- 被控:需要
- 登录:不需要,但是第一次需要登录后台创建网络、管理设备。
基本概念
- PLANET(行星服务器):ZeroTier 网络核心根服务器,用于网络设备发现和初始连接,整个网络中枢。
- MOON(卫星服务器):作为 PLANET 的区域代理,帮助就近设备快速建立连接
- LEAF(叶子节点):所有接入 ZeroTier 网络的终端设备,如电脑、手机、服务器等。这些设备通过 PLANET 和 MOON 的协调来相互发现和通信。
官方服务器
- 注册并登录到 [ZeroTier](https://www.zerotier.com/) 管理页面;
- 选择【Create A Nerwork】创建一个虚拟网络,记录**Network ID**
- 在每个设备下载 Zerotier 客户端,启动后在任务栏找到图标,右键-【Join New Network】,输入上面的网络 ID;
或者直接管理员身份打开命令终端加入:# 可以 tab 补全 zerotier-cli join <network ID>
提示 `200 Successfully` 表示成功加入。
-
回到 ZeroTier 的管理页面,进入刚才创建的网络详情页,可以看到新加入的设备,勾选【Auth】进行认证,认证后会获得一个 IP,所有加入到这个网络的设备都可以使用这里出现的 IP 互访。比如使用 Windows RDP 访问家里的电脑。
-
【可选】下面高级部分可以自定义局域网网段、路由转发等,需要可自行查阅资料。
自建 Planet 服务器
- 提升网络稳定性:官方服务器位于海外,延迟较高不稳定
- 加快连接速度:本地化 PLANET 服务器可以加快连接
- 增强网络控制和安全性:私有化部署流量不经过三方
- 降低对官方服务器依赖:除开网络波动,个人部署稳定性应该是比不上官方的 🥹
- 环境准备:
- 拥有公网 IP 的服务器
- 防火墙开放以下端口:
- 3443/TCP 管理面板,根据实际调整
- 9994/TCP ZeroTier 通信,根据实际调整
- 9994/udp ZeroTier 通信,根据实际调整
- Docker 环境:请参考官方安装教程,2min 搞定
- git 软件包
- 【可选】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
-
下载源码
# 官方地址 git clone https://github.com/xubiaolin/docker-zerotier-planet.git # 加速地址 git clone https://ghproxy.imoyuapp.win/https://github.com/xubiaolin/docker-zerotier-planet.git
- 执行安装
# 进入项目目录 cd docker-zerotier-planet # 运行安装脚本 ./deploy.sh
选择【1】安装,自动获取公网地址即可。
- 下载 planet 文件
安装完成后,会在项目目录 `./data/zerotier/dist` 目录下生成 `planet ` 和 `moon` 文件,通过 SSH 工具下载到本地 - 新建网络
- 打开管理面板 `http://<ip>:3443`,默认账密: `admin/password`
- 选择【Add Network】新建网络,输入网络名称,其它可保持默认。创建成功后会生成一个网络 ID
- 进入网络详情页,选择【Easy setup】-【Generate network address】随机生成 ip 范围
- 添加客户端
- Windows
- 下载安装好 ZeroTier 客户端,将生成的 `planet` 文件覆盖到 `C:\ProgramData\ZeroTier\One` 目录(先重命名备份),如果看不到就打开显示隐藏文件;
- 重启 【ZeroTier One】服务/直接重启客户端。
- 管理员身份打开 PowerShell,执行命令加入网络
> zerotier-cli.bat join <ID> 200 join OK
加入成功后,管理页面会显示客户端,勾选【Authorized】认证即可。
- 执行
> zerotier-cli.bat peers
可以看到 PLANET 和 LEAF 角色,连接方式为 DIRECT(直连),至此加入网络成功。
- Linux & MacOS
操作步骤和上面类似:安装客户端,替换 `planet` 文件,重启服务,加入网络。
- Windows