woaipaojiao's recent timeline updates
woaipaojiao

woaipaojiao

V2EX member #675861, joined on 2024-02-17 15:06:33 +08:00
woaipaojiao's recent replies
看到有些兄弟收藏了,再 call 一下解决方案。参考的教程就是 https://www.bilibili.com/opus/993912143071936516

对应的项目是 https://github.com/chenxi65535/civ6-multiplay

思路上是说,广播是手机端触发的,手机点击刷新按钮,会向当前局域网广播,问所有人:你是不是主机

1.因为种种限制,手机端广播只能在真实局域网下有效。此时就可以在真实局域网下,再加一个真实设备,例如平板/电脑。

2.手机端和电脑在同一个真实局域网,所以手机端的广播,可以被电脑捕捉到。此时 udp 包就被捕获了。

3.现在,服务端(也就是我朋友),和我的电脑,再异地组网,组网软件应该任选了(我理解如果不是文明 6 ,此时服务端用 FRP 也是可以的,只需要让电脑能访问到就行了)

4.此时的局势是:我的手机(文明 6 )和我的电脑在同一个真是局域网,我的电脑和我朋友(做主机)在一个虚拟局域网。

5.这时候我的手机点击刷新列表按钮,手机端广播,我电脑收到,我电脑转发报文给我朋友,我朋友响应给电脑,电脑响应给手机。

这时候手机就把电脑,当作了服务端。至此实现了联机。注意,全程我的手机(客户端)是不需要 vpn 的,我的手机就是把电脑当作主机了。


其实我后续也测试了连接成功后去除电脑端,但是其实不行,因为电脑端的 udp 转发,只是把 udp 的 payload 拿出来重新给手机端发包了,手机端接收到的报文的 ip 是电脑的,ip 是内核自动加的。

所以如果电脑端想变成打洞的角色,就需要转发 udp 报文时保留主机端的 ip ,这时候手机端就需要和服务端互通。
@zephyr65535 感谢,这是正解,已经晚上了
copilot ,40 刀 pro+订阅,超过使用限额支持按量( 0.04 刀/次)付费。但是 6 月份开始不是按次收费了,转为按量付费
@bobryjosin 可以细说吗大佬
@itechify 搜了下,官网原文是 Unfortunately the iOS and Android VPN APIs won't let ZeroTier use multicast/broadcast. These are typically how apps auto-discover services on the LAN.还是没法广播
@itechify 安卓端也能 L2 吗
忘了说,还有个 feature 是支持定时任务,可定时执行脚本+AI 分析,分析的结果可以通过渠道机器人发送消息,可以始终推送,也可以通过提示词让 AI 自行判断是否需要发送
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1164 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 19ms · UTC 23:57 · PVG 07:57 · LAX 16:57 · JFK 19:57
♥ Do have faith in what you're doing.