手动 IP 连接:mDNS 和 WebRTC 都不行时的最后一招
什么时候需要用它
LANDrop 的自动发现机制有时会彻底失效(两个都失败):
- 企业 VPN 直接吞掉了 UDP 组播;
- 某些运营商网络做了严格 NAT,WebRTC ICE 候选穿透失败;
- 两台设备连的 Wi-Fi 之间被路由器用 VLAN 隔离开了,mDNS 组播被 NAT 防火墙拦截。
这三种情况下,LANDrop 的 Devices 列表是空的,但两台设备实际上是可以通过 IP 地址互相访问的——只是发现机制没找到对方而已。
v2.7.0 新增的手动 IP 连接就是为了这种场景准备的。
怎么操作
在一台设备的 LANDrop 设置里(不同平台位置略有差异,桌面端通常在"添加设备"或类似入口),有一个手动输入 IP 地址的选项。操作流程:
- 让接收端打开 LANDrop,记下它显示在界面上的本机 IP(或者你自己从路由器后台、IP 查收命令、Android 设置页里查);
- 在发送端 LANDrop 里手动输入这个 IP 地址;
- 发送端会直接尝试建立点对点连接,跳过 mDNS 组播和 WebRTC Nearby 两套发现机制;
- 如果 IP 能通、双方端口没被防火墙封,连接就能成功。
它和公钥 ID 的关系
手动 IP 连接虽然跳过了发现,但不跳过安全握手:
- 连上之后,双方仍然走完整的 libsodium 加密握手(X25519 + Ed25519 + 6 位验证码);
- 公钥 ID 仍然作为身份识别的基础——LANDrop 不会因为你手动输入 IP 就跳过安全层;
- 如果对方之前加过你进可信设备白名单,手动 IP 连上后同样自动免验证码。
端口配置
v0.4.0 版本(源码仓库里记录的版本)就已经加了"server port configuration to settings"——也就是说 LANDrop 的监听端口是可以在设置里改的。如果你的环境里某个端口被封,改个端口试试。具体端口值会因版本和平台略有差异,以实际运行界面显示为准。
为什么不默认开启
手动 IP 连接需要用户知道对方的 IP,门槛比自动发现高得多,所以它只作为"发现机制都失效时的最后通道"存在——LANDrop 不会强制用户去手动配 IP。这也是产品设计上的务实选择:绝大多数普通用户一辈子都不会碰到 NAT/VPN/组播被隔离的情况。