请问 Zerotier 连接的两个局域网内设备如何互相投屏和网络发现?

2022-10-13 21:53:08 +08:00
 ygchy
当前状况:两个局域网的路由器都是 OpenWrt 系统,都安装了 Zerotier 并组网成功,可以互相用 IP 地址访问两边局域网内的设备。

我的问题:
1.是否有办法让 A 局域网的手机 App 投屏 /AirPlay 到 B 局域网的电视上?
2.两个局域网的 SMB 设备是否有办法互相发现?(目前可以通过 IP 地址访问 SMB ,但网络里无法发现设备)
3.想把两个地方的局域网利用 ZeroTier 打通,达到在同一个局域网的使用体验,还应该做哪些设置?

还请各位大神指教……
2735 次点击
所在节点    问与答
20 条回复
zhangchimr
2022-10-13 22:21:13 +08:00
看我帖子
ygchy
2022-10-13 22:40:36 +08:00
感谢!我试试看
ygchy
2022-10-13 23:27:18 +08:00
@zhangchimr 太感谢了,参考你的 https://www.v2ex.com/t/862586 这个帖子一次就成功了,安装了你说的那个 avahi-nodbus-daemon 的包。试了一下 AirPlay 镜像和 AirPrint 打印都正常,不过扫描仪启动不了,还在研究。
zhangchimr
2022-10-14 13:55:22 +08:00
@ygchy 基本就是跨 vlan 转发协议的问题。
我用起来体验比较差,因为我跨运营商限速很严重。
ygchy
2022-10-14 14:10:59 +08:00
@zhangchimr 我自己为了组网特意两个地方都办了同一家运营商的宽带,体验还算不错。大概思路理解了,剩下的就一点点按需求慢慢折腾吧。
sypopo
2022-10-14 16:41:24 +08:00
防火墙需要怎么设置,两个 openwrt 上已经装了 avahi-nodbus-daemon ,修改了 enable-reflector=yes
ygchy
2022-10-14 17:47:51 +08:00
@sypopo 按照原贴里的方法,允许任意区域到本机的 224.0.0.251:5353 传入连接就行了。

具体可以到 OpenWrt 的防火墙-通信规则里如下添加:

入站 IPv4 and iPv6
来自 所有区域
到 此设备,IP 224.0.0.251, 端口
5353
接受入站
sypopo
2022-10-15 10:09:47 +08:00
@ygchy 谢谢,我再试试看。
duffercn
2022-11-28 23:15:40 +08:00
感谢,正好需要,学习了。
不过路由器已经自带了 avahi-daemon ,就直接修改了。
duffercn
2022-11-28 23:24:53 +08:00
但是我只能用电脑投,手机上还是找不到。手机上有解决办法么?
ygchy
2022-11-29 00:45:05 +08:00
刚刚又尝试了很多,找到了一个更合适的方法。大概是把 ZeroTier 作为网桥,将两个路由器桥接起来,两地组成一个局域网。同时,外出时移动设备也可以这样连接回局域网。因为没有 NAT ,也就不需要再用之前的方法转发协议了。实测可以用手机 4G 网络连接回家里局域网,并且使用 B 站客户端投屏到云视听小电视。在其中一个网络也可以扫描到另外一个网络的设备。

可以参考这篇文章设置 OpenWrt 路由器:
https://zerotier.atlassian.net/wiki/spaces/SD/pages/7438339/Layer+2+Bridging+with+LEDE+OpenWRT

另外参考这篇文章“在 ZeroTier 的规则引擎中屏蔽掉家庭网络路由的 DHCP 请求和响应”以避免连接后多个 DHCP 服务器冲突,并启用“Enable Broadcast”选项: https://blog.quantumghost.dev/use-zerotier-for-remote-access.html


@duffercn
duffercn
2022-11-29 09:26:14 +08:00
@ygchy 多谢!
我的网络是桥接的,电脑和手机都和家里的网络是同一个网段,访问没什么问题。就是电脑上可以发现家里的 iPad ,Google Nest 之类的设备,但是手机上,无论 iOS 还是 Android ,都看不到。我下载了几个 mDNS 相关的测试软件确认了一下,电脑上就能看到很多服务,手机上没有。
刚刚我查了一下,发现这段话: https://github.com/zerotier/ZeroTierOne/issues/986

Multicast is not available on iOS or Android as they do not give developers permission to enable it on the network adapters they give us for use.

所以我猜 iOS 和 Android 上的 zerotier 是没这个功能的?

但是看你说的,你是手机 4G 联回家里,然后可以投到家里电视吗?你手机还能看到家里其他的设备吗?
duffercn
2022-11-29 09:37:33 +08:00
补充一下,网络是桥接的,zerotier 上的 allow ethernet bridging 打开了,dhcp 规则也关了。
ygchy
2022-11-29 11:58:21 +08:00
@duffercn 又试了一下,手机 4G 连回家里,确实是没法发现家里其他的设备……B 站那个投屏是本来登录同账号就可以的,昨天晚上搞错了。不过电脑确实是没问题,用手机给电脑开热点,电脑上运行 ZeroTier ,可以正常看到家里局域网的各种设备,AirPlay 、AirPrint 打印机都是可以正常发现的。

我觉得应该就是你说的那个问题吧,iOS 版可能确实没这个功能。
ygchy
2022-11-29 12:12:14 +08:00
此外,用电脑开 ZeroTier 连接后扫描局域网设备,可以扫描到局域网的所有设备。用手机就一个都扫不到。另外,因为我的用途主要是是两个 OpenWrt 路由器组网,所以当手机连接其中一个路由器时可以正常访问到另一个网络的所有设备,当然这个实际上用的是路由器的 ZeroTier 客户端了。
duffercn
2022-11-29 21:25:14 +08:00
@ygchy 那就对了,都说的通了。

我自己又遇到个新问题,就是我家里是电信宽带,电脑用联通热点的话连 Zerotier 都连不上,一直显示 REQUESTING CONFIGURATION ,可能是打洞失败了?我自己再琢磨下
duffercn
2022-11-29 21:46:14 +08:00
又试了几次,能连上了,哈哈,完美
ygchy
2022-11-29 22:27:15 +08:00
@duffercn 哈哈,祝贺~~
sypopo
2022-12-01 22:06:44 +08:00
@ygchy 两个网络的 OpenWrt 路由器都需要按照文章上说的设置吗
ygchy
2022-12-01 23:14:56 +08:00
@sypopo 对,另外建议稍微把子网扩大一点(比如扩大到 /22 ),以便两个路由器用一个子网。然后一定要配置屏蔽 DHCP ,否则会导致两个路由器的 DHCP 冲突,导致两头都上不了网。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/886755

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX