我是这个新手 但是我使用构建root构建了用于臂 - versatilepb的内核,然后我使用qemu来运行它 使用以下命令:
qemu-system-arm -M versatilepb -m 256 -kernel zImage -dtb versatile-pb.dtb -drive file=rootfs.ext2,if=scsi,format=raw -append "root=/dev/sda console=ttyAMA0,115200" -serial stdio -net nic,model=rtl8139 -net user
当我从Qemu运行图像并执行IFCONFIG时,我会看到以下内容:
#ifconfig ETH0链接封装:以太网HWADDR 52:54:00:12:34:56
INET ADDR:10.0.2.15 bcast:10.0.2.255蒙版:255.255.255.0`
所以问题是我可以从Qemu机器中尝试的任何网站 但是,当我尝试从主机计算机中ping QEMU机器(使用IP:10.0.2.15)时,它没有响应。 预先感谢!
您问题的答案与答案的答案相同: 如何连接SSH的Mac主机的KVM Guest VM? 您使用用户模式网络,这不允许外界连接到来宾,除非您在QEMU命令行上设置特定的端口转发。
您正在使用的网络配置(-NET用户)配置QEMU使用SLIRP网络,该网络不支持从主机计算机中的ICMP数据包到QEMU虚拟NIC.
,其中“一般而言,“一般而言,ICMP流量不起作用”,并且“客人都无法直接从主机或外部网络访问”
I在Linux主机上(我使用Arch BTW)上设置了类似的问题(最终Ubuntu 20.04)。事实是,Eve-ng在设置QEMU之后无法触及的网络服务器(如果您有兴趣,理解您可用的模式是找到解决方案的第一步。简而言之,这里有两种有趣的模式:
用户网络(又称slirp10.0.2.15
IP地址)
virt-manager
。
XML
用上面创建的名称相应地将vm nic提示(在此示例中
virbr0)。对于要使用的设备型号,请参见thisthread。 virtio是一个很好的默认值。
现在,如果您关闭虚拟机并再次打开它(不要重新启动,进行关闭,以便拾取“硬件”更改),则应同时具有Internet访问权以及主机到待办事项和访客 - 主机通信
一个主机OS,您还应该看到新创建的virbr0
和通往该网络的路线:
$ ifconfig
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:7c:4d:f3 txqueuelen 1000 (Ethernet)
...
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
...
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
...
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0