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
在真正的电脑上
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME adb 117743 hiro 7u IPv4 1420502 0t0 TCP localhost:5037 (LISTEN)
从以上结果可以看出,iriunwebcam 监听 4698/udp 端口以查找可用的智能手机,一旦建立连接,端口就会关闭,并从高端口到智能手机的 4699/tcp 建立 tcp 连接。
真实机上的问题是无法打开4698/udp端口,而虚拟机和真实机上都可以打开5037/tcp端口。
虚拟机和真实机的防火墙都开放了4698/udp和5037/tcp,当然如果关闭了,iriunwebcam手机APP是无法连接PCAPP的,但是即使端口关闭了,PCAPP也会开放端口。
我想知道为什么它无法在真实PC上打开4698 / udp端口。
以下是我的环境。
主机(真正的 PC):2011 年末的 iMac(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 中打开端口。从测试版到 LTS,套接字连接或其他方面有什么变化吗?
答案1
我遇到了同样的问题,并在安装了 Ubuntu 20.04 和 19.10 的虚拟机中对其进行了测试。两者都立即生效。然后,我再次在笔记本电脑上使用有线网络连接尝试了该操作,因为虚拟机中只有有线连接可用,而且也成功了!经过多次尝试和搜索,我终于通过 WIFI 适配器(我主要使用无线方式)使其工作,最终我将 WIFI 适配器名称设置为默认的 wlan0。要更改适配器名称,请执行以下操作:
- 打开 /etc/default/grub
- 将“net.ifnames=0”添加到 GRUB_CMDLINE_LINUX_DEFAULT 行。在我的系统上,它现在看起来像这样:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash net.ifnames=0"
- 保存文件
- 运行 update-grub 并重新启动机器
- 您可能需要重新连接到网络并输入密码
答案2
尝试sudo modprobe v4l2loopback exclusive_caps=1
答案3
您也可以尝试使用以下命令在防火墙设置中添加规则。
ufw allow from <your-device-local-ip>
它
应该从该行中的“192.xxx”开始。
它对我有用
答案4
对我来说,iriun 网络摄像头在 ubuntu 18.04 中运行良好(在 grub 中设置 if_names=0),但在 ubuntu 20.04 中,只要我启动客户端,它就会显示一条消息“初始化失败,您可能需要运行:sudo modprobe v4l2loopback exclusive_caps=1”(当然,if_names=0)。运行此命令没有效果。然而,DroidCam 运行完美。虽然我注意到 iriun 的图片质量比 DroidCam 更好。