我正在尝试与 WLAN 上的网络设备建立本地 WebRTC 连接。该 LAN 是隔离的,根本没有任何互联网连接。该设备运行基于 gstreamer 的 WebRTC 主机和网络服务器。
设置: 客户端接口: eth0,10.1.1.199/24 可访问互联网,默认路由 eth1,192.168.0.200/24,本地隔离 LAN,192.168.0.0/24 的路由
我可以通过“http://192.168.0.3/index.html”从设备请求index.html。调试输出显示SDP / REST通信正常,远程服务器提供流。但客户端仅提供其默认值界面: “a=候选:xxxxxxxxx 1 udp xxxxxxxxx 10.1.1.199 50193 典型主机第 0 代网络成本 999 一个”。
我尝试在发送请求之前先调用“navigator.mediaDevices.getUserMedia”来获取相机的权限,但结果相同。仅显示默认界面。
我不明白为什么浏览器只提供内部启用的接口,即使 HTML 文件是通过另一个网络/接口加载的。
有什么办法让 Chrome / Firefox / Brave 提供正确的本地候选(192.168.0.200)? - 或者至少是所有本地候选人?
这里的大多数答案似乎都已过时,并且不再适用于当前的浏览器。
解决方案: 我在设备上安装了 STUN 服务器。现在客户端可以使用 TUN 来获取用于发送请求的正确接口的外部 IP 地址。相当 hacky,但至少有效。