如何 ping 我的 qemu 虚拟树莓派客户

如何 ping 我的 qemu 虚拟树莓派客户

我将我的笔记本电脑上的网络配置为 root,以获得如下所示的网桥:

ip tuntap add dev tap0 mode tap group $USER
ip link set dev tap0 up promisc on
ip addr add 0.0.0.0 dev tap0
ip link add br0 type bridge
ip link set br0 up
ip link set tap0 master br0
echo "0" |  tee --append /sys/class/net/br0/bridge/stp_state
ip addr add 192.168.2.1/24 dev br0
sysctl net.ipv4.conf.tap0.proxy_arp=1
sysctl net.ipv4.conf.enp2s0.proxy_arp=1
sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o enp2s0 -j MASQUERADE
iptables -A FORWARD -i br0 -o enp2s0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i enp2s0 -o br0 -j ACCEPT

我像这样启动了我的 QEMU ARM cpu:

qemu-system-arm -cpu arm1176 -m 256 \
-M versatilepb -no-reboot -serial stdio \
-append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" \
-kernel kernel-qemu-4.4.12-jessie \
-hda 2016-05-27-raspbian-jessie-lite.img \
-net nic -net tap,ifname=tap0,script=no,downscript=no

我将192.168.2.2静态 IP 地址放入 Raspberry 仿真中。该仿真能够 ping enp2s0、br0 和/或万维网的地址。但我无法从我的笔记本电脑上 ping 通它。

我错过了什么 ?

答案1

好的我终于找到了问题:

iptables -A FORWARD -i tap0 -o br0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i br0 -o tap0 -m state --state RELATED,ESTABLISHED -j ACCEPT

根本原因是enp2s0和之间的路由已开通,br0br0和之间的路由尚未开通tap0。在执行此 Booth 命令之后,我能够连接ssh到我的 QEMU。如果你明白的话就很容易

相关内容