[英]How to access Raspberry PI QEMU VM via network
我已经通过QEMU在我的Mac OS X上成功设置了Raspberry PI VM。 现在我想从我的Mac访问这个VM的文件系统。
当我在我的VM上调用ifconfig时,我得到了这个。
这里是我的/ etc / network / interfaces文件的内容
在我的Mac上
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=10b<RXCSUM,TXCSUM,VLAN_HWTAGGING,AV>
ether 3c:07:54:65:da:50
inet6 fe80::3e07:54ff:fe65:da50%en0 prefixlen 64 scopeid 0x4
inet6 fdbf:a879:6730::3e07:54ff:fe65:da50 prefixlen 64 autoconf
inet6 fdbf:a879:6730::401e:56f5:f2f9:a236 prefixlen 64 autoconf temporary
inet 192.168.1.119 netmask 0xffffff00 broadcast 192.168.1.255
nd6 options=1<PERFORMNUD>
media: autoselect (1000baseT <full-duplex,flow-control>)
status: active
我认为原因是VM使用某种共享网络。 有没有办法让VM从我的路由器获取IP地址?
他们配置qemu
似乎是默认的主机NAT网络(又名qemu -net nic -net user
配置)
默认情况下,从您的访客访问时,您的主机(在本例中为Mac)将在10.0.2.2上找到。 在您的访客内部,您可以在10.0.2.2上连接主机(MAC)上的服务。 但这是使用NAT,所以你不能轻易地回到另一个方向。
例如,如果您决定要连接到SSH服务和在guest虚拟机中运行的Web服务器,则需要使用以下修改选项启动qemu
:
qemu -net nic -net user,hostfwd=tcp::2222-:22,hostfwd=tcp::22280-:80
这将做什么是从您的主机(您的MAC)上的端口22280到您的qemu
guest qemu
内的端口80的路由连接(对于端口2222 - >来宾中的端口22相同)
这意味着您可以在Mac上浏览到http://localhost:22280
,以访问虚拟Raspberry Pi中的Web服务器等。
由于使用的端口不同以及使用它们的方式等,FTP和SMB设置这种方式会更复杂,但是如果你设置FTP使用PASV模式它不会是一个太大的问题。
这包括按照您的建议进行操作,配置虚拟机任务以便从路由器获取IP地址。 在这种情况下,您需要从虚拟机桥接到主机网络。
这需要比此处快速解释的设置更多,但实质上,您需要将NIC分配给vlan并添加tap
界面,例如:
qemu -net nic,vlan=0 -net tap,ifname=tap0
然而,这需要在主机上进行更多设置(最初是手动,当你弄清楚自己的情况,但随后可编写脚本)来创建桥接和点击接口 - 这通常需要超出简单运行qemu
所需的root访问权限。 一些谷歌搜索引出了各种方法来实现这一点,因为它会根据您的设置而变化。 (我在这里找到了一个示例安装脚本: https : //gist.github.com/EmbeddedAndroid/6572715 )
qemu
选项。 注意:我只在Linux下试过这个
您可以在qemu中启用samba服务器:
qemu -smb /path/to/files
这将创建一个SMB共享,可从位于主机上/ path / to / files映射的\\ 10.0.2.4 \\ qemu的guest虚拟机内部访问。
如果您乐意使用SFTP / SCP,那么IMO最简单的方法就是在您的Pi客户机上安装openssh-server:
sudo apt-get update && sudo apt-get install openssh-server
启动Pi VM时,在启动QEMU guest虚拟机时使用-redir
开关重定向端口22(SSH / SFTP / SCP),例如
qemu <other-qemu-switches-options-etc> -redir tcp:2222::22
然后,您可以通过主机上的端口2222连接到VM SFTP / SCP(或SSH)。 所以从你的主机你可以使用localhost; 从局域网上的其他机器,您可以使用:2222
[更新2019]正如@ChristophBimminger在评论中所述,在较新版本的QEMU中, -redir
开关已被弃用/删除。 现在通过-net
或-netdev
开关来实现同样的目的。 请查看手册页,例如Debian测试 (我目前没有运行QEMU,因此无法给出确定的示例)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.