V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ygchy
V2EX  ›  问与答

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

  •  
  •   ygchy · 2022-10-13 21:53:08 +08:00 · 2840 次点击
    这是一个创建于 805 天前的主题,其中的信息可能已经有所发展或是发生改变。
    当前状况:两个局域网的路由器都是 OpenWrt 系统,都安装了 Zerotier 并组网成功,可以互相用 IP 地址访问两边局域网内的设备。

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

    还请各位大神指教……
    第 1 条附言  ·  2022-11-29 00:47:55 +08:00
    发现将 ZeroTier 作为网桥使用更符合我描述的场景:

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

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

    入站 IPv4 and iPv6
    来自 所有区域
    到 此设备,IP 224.0.0.251, 端口
    5353
    接受入站
    sypopo
        8
    sypopo  
       2022-10-15 10:09:47 +08:00
    @ygchy 谢谢,我再试试看。
    duffercn
        9
    duffercn  
       2022-11-28 23:15:40 +08:00
    感谢,正好需要,学习了。
    不过路由器已经自带了 avahi-daemon ,就直接修改了。
    duffercn
        10
    duffercn  
       2022-11-28 23:24:53 +08:00
    但是我只能用电脑投,手机上还是找不到。手机上有解决办法么?
    ygchy
        11
    ygchy  
    OP
       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
        12
    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
        13
    duffercn  
       2022-11-29 09:37:33 +08:00
    补充一下,网络是桥接的,zerotier 上的 allow ethernet bridging 打开了,dhcp 规则也关了。
    ygchy
        14
    ygchy  
    OP
       2022-11-29 11:58:21 +08:00 via iPhone
    @duffercn 又试了一下,手机 4G 连回家里,确实是没法发现家里其他的设备……B 站那个投屏是本来登录同账号就可以的,昨天晚上搞错了。不过电脑确实是没问题,用手机给电脑开热点,电脑上运行 ZeroTier ,可以正常看到家里局域网的各种设备,AirPlay 、AirPrint 打印机都是可以正常发现的。

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

    我自己又遇到个新问题,就是我家里是电信宽带,电脑用联通热点的话连 Zerotier 都连不上,一直显示 REQUESTING CONFIGURATION ,可能是打洞失败了?我自己再琢磨下
    duffercn
        17
    duffercn  
       2022-11-29 21:46:14 +08:00
    又试了几次,能连上了,哈哈,完美
    ygchy
        18
    ygchy  
    OP
       2022-11-29 22:27:15 +08:00 via iPhone
    @duffercn 哈哈,祝贺~~
    sypopo
        19
    sypopo  
       2022-12-01 22:06:44 +08:00
    @ygchy 两个网络的 OpenWrt 路由器都需要按照文章上说的设置吗
    ygchy
        20
    ygchy  
    OP
       2022-12-01 23:14:56 +08:00 via iPhone
    @sypopo 对,另外建议稍微把子网扩大一点(比如扩大到 /22 ),以便两个路由器用一个子网。然后一定要配置屏蔽 DHCP ,否则会导致两个路由器的 DHCP 冲突,导致两头都上不了网。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1069 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:09 · PVG 03:09 · LAX 11:09 · JFK 14:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.