iriunwebcam ( https://iriun.com ) 在另一个 VMware 虚拟机上的 Ubuntu 20.04 LTS 和 Ubuntu 20.04 beta 上运行良好,但在真正的 PC 上仍然无法运行。它也可以在另一台虚拟机上的 Ubuntu 19.10 中正常工作。此外,我已经确认它可以在另一个虚拟机上的 Fedora 31 中运行。
以下是lsof -i
从智能手机应用程序连接之前和之后的结果。
在虚拟机上(20.04、19.10、Fedora 31)
(1) 在从 sp 连接之前:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME iriunwebc 2553 htakenaka 14u IPv4 60002 0t0 UDP *:4698 iriunwebc 2553 htakenaka 15u IPv6 60005 0t0 UDP *:4698 adb 2572 htakenaka 6u IPv4 55976 0t0 TCP localhost:5037 (LISTEN) adb 2572 htakenaka 14u IPv4 55962 0t0 UDP *:4698 adb 2572 htakenaka 15u IPv6 55966 0t0 UDP *:4698
(2) 从 sp 连接后:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME iriunwebc 2078 htakenaka 22u IPv4 73587 0t0 TCP Ubuntu1910-vmw:39256->192.168.79.201:4699 (ESTABLISHED) adb 2098 htakenaka 6u IPv4 56531 0t0 TCP localhost:5037 (LISTEN) adb 2098 htakenaka 20u IPv4 56514 0t0 UDP *:4698 adb 2098 htakenaka 21u IPv6 56518 0t0 UDP *:4698
在真实的 PC 上
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME adb 117743 hiro 7u IPv4 1420502 0t0 TCP localhost:5037 (LISTEN)
从上面的结果 iriunwebcam 监听 4698/udp 端口来寻找一个可用的智能手机,一旦连接建立,端口就会关闭,并从一个高端口建立一个 tcp 连接到智能手机的 4699/tcp。
真机上的问题是4698/udp端口打不开,而5037/tcp端口在虚拟机和真机上都可以打开。
4698/udp 和 5037/tcp 在虚拟机和真机上的防火墙中都打开了。当然,如果它们被关闭,iriunwebcam 智能手机应用程序将无法连接到 PC 应用程序。但是,即使端口关闭,PC 应用也会打开端口。
我想知道为什么它无法在真机上打开 4698/udp 端口。
以下是我的环境。
主机(真正的 PC):iMac 2011 年末(Core i3,16GB RAM)
VMware Workstation 15.5.2 用于虚拟机。
虚拟机通过主机桥接到 LAN。
我没有将 NAT 用于虚拟机网络接口。
我试过使用 iriunwebcam (https://iriun.com)。起初,我将它安装在 VMware 虚拟机上的 Ubuntu 20.04 beta 中,并且成功运行。然后我将它安装在一台真正的 PC 上的 Ubuntu 20.04 LTS 中,但是它不起作用。应用程序本身成功启动,但无法从智能手机应用程序中找到连接。
lsof -i
显示 iriunwebcam 在 20.04 beta 中可以打开 4698/udp,但在 LTS 中不能。iriunwebcam 似乎使用该端口接收来自智能手机应用程序的连接。
我想知道为什么它无法在 20.04 中打开端口。关于套接字连接或其他东西,从 beta 到 LTS 有什么变化吗?
我遇到了同样的问题,并且还在使用 Ubuntu 20.04 和 19.10 的 VM 中对其进行了测试。两者都立即工作。然后我用有线网络连接在我的笔记本电脑上再次尝试了它,因为虚拟机中只有一个有线连接可用,而且它也可以工作!经过大量尝试和搜索以使其通过 WIFI 适配器工作(我主要是无线工作),我最终将 WIFI 适配器名称设置为默认 wlan0。要更改适配器名称,请执行以下操作:
您也可以尝试使用命令在防火墙设置中添加规则。
ufw allow from <your-device-local-ip>
.它应该从该行中的“192.xxx”开始。
它对我有用
对我来说,iriun 网络摄像头在 ubuntu 18.04 中运行良好(在 grub 中设置 if_names=0)但在 ubuntu 20.04 中,一旦我启动客户端,它就会显示一条消息“初始化失败,您可能想要运行:sudo modprobe v4l2loopback exclusive_caps= 1"(如果_names=0,当然可以)。运行此命令无效。然而,DroidCam 可以完美运行。虽然我注意到 iriun 的画质比 DroidCam 好。
尝试
sudo modprobe v4l2loopback exclusive_caps=1
如果 Iriun 网络摄像头在更新 GRUB 后无法正常工作,可能是由于您计算机的防火墙有时会导致问题。
您需要使用以下命令重置 Ubuntu 中的所有网络防火墙: