chirp+sunshine+moonlight+反向隧道实现远程串流

chirp+sunshine+moonlight+反向隧道实现远程串流

在chirp 1.1.6版本时,突然收到一个网友发来的消息,网友想要Sunshine搭配 Moonlight进程远程游戏串流。于是在1.1.7版本时,chirp果断适配了udp。1.1.8版本实现了udp/tcp共存,1.2.0版本实现了反向隧道,彻底摆脱udp被丢包的问题。

在chirp 1.1.7版本刚刚支持udp的时候,当我通过局域网测试正常通过Moonlight访问了Sunshine,但是通过chirp内网穿透之后,我的公网ip还是无法到访问到内网的Sunshine,Moonlight 显示 RTSP handshake failed 。

经过多轮测试发现

  1. 服务器udp服务正常通讯,但是对于我的本地 moonlight rtsp始终无法通讯。
  2. 服务器udp服务正常通讯,普通udp发送消息正常通讯
  3. 程序在纯内网udp时连接正常,普通udp消息通讯正常,rtsp连接正常

最终结论,运营商对音视频的udp流量进行了无差别限制。想到这里又揣测了Tailscale的原理,于是产生了一个大胆的想法。

能否模仿像Tailscale这样,两边都是局域网进行访问,中间建立一条无形的隧道,这样一来有两个好处。

  • 服务器不再需要暴露更多的端口
  • 公网只做数据转发,不必在遵守通用的udp、tcp的套路

最终效果如上图,我们可以从局域网a的内网ip端口,直接访问内网b的ip端口。当然,chirp也是支持自定义任意内网a和内网b的ip和端口,两边的局域网不必保持相同的ip和端口。

sunshine配置

登录sunshine后台,在应用处增加一个Desktop的应用

在配置页面,记录所有的端口和协议

chirp客户端配置

如果您是首次使用chirp,可以参考这篇文章进行安装部署https://mp.weixin.qq.com/s/FZsrcp1F3LI5FvA2GfFfIg。

首先在sunshine所在的局域网,打开chirp客户端,在隧道管理页面,依次添加隧道。

注意,内网ip软件默认为127.0.0.1,可根据实际局域网ip灵活调整

添加完,所有的ip、端口、协议。然后,依次启动多有的通道

然后我们找到另一个局域网的电脑,安装chirp客户端。

在反向隧道栏,点击刷新按钮,列表就会自动显示出sunshine穿透出来的所有ip

我们可以依次启动这些反向隧道,如果端口冲突,还可以点击编辑按钮,修改为新的端口。

moonlight

我们现在可以打开moonlight,输入反向隧道的所在的局域网ip。

最终查看这个画质,还不错。

结束语

chirp 还是一个比较年轻的穿透工具,原生的网页操作页面就做的很好,比起frp复杂的配置,使用起来更加便捷,对小白用户友好,易于上手。目前已经适配开箱即用的反向隧道模式,可以无缝使用异地局域网模拟内网互相访问。

相关推荐
cpolar技术支持7 天前
「我这边连不上你那个服务」—— 用清单驱动的 TCP 连通性只读看板,cpolar 让远端同事自己取证
python·内网穿透·tcp·cpolar·网络诊断
承渊政道9 天前
Open-LLM-VTuber本地部署教程:大模型、语音交互、Live2D与远程访问
大模型·内网穿透·数字人·cpolar·语音交互·open-llm-vtuber
贝锐11 天前
向日葵迎来重磅升级 异地组网与内网穿透在设备列表一键开启
内网穿透·远程控制·异地组网
承渊政道13 天前
Linux网络学习【从NAT与代理服务理解网络转发、探索内网穿透原理、再到认识DNS与ICMP、最后动手部署并测试内网穿透】
linux·网络·学习·内网穿透·dns·nat
如若12314 天前
Windows SSH + Headscale/Tailscale 组网及免密登录完整配置教程
运维·windows·ubuntu·ssh·内网穿透
cpolar技术支持16 天前
网关加 gzip,同时开启 chunked,下载回来的包解不开:把两层编码的解压顺序与长度核对做成只读页
python·http·网络编程·socket·内网穿透
承渊政道19 天前
新增一台服务器时还要重新装Nginx?Ansible只改hosts目标列表,同一份Playbook继续执行
运维·nginx·ansible·内网穿透·cpolar
cpolar技术支持23 天前
磁盘明明没满,服务却写不进去?做个 inode 与分区占用只读报表页,cpolar 给异地同事看
linux·内网穿透·cpolar·inode·运维排障
承渊政道1 个月前
极空间部署Portainer实战:Docker Socket、9000端口、容器管理与固定地址访问
运维·docker·容器·内网穿透·cpolar·portainer
SoStraw1 个月前
没有公网IP怎么远程SSH?设备只装 p2pssh-server,File2File 一键连回去
ssh·内网穿透·远程ssh·webrpc·无公网ip·file2file·p2pssh