Самый простой и более эффективный способ, который я узнал для меня, заключался в следующем .
В итоге на хосте:
tunctl -u <username>
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/conf/wlan0/proxy_arp
echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp
ip link set tap0 up
route add -host 192.168.0.20 dev tap0 <-- to be changed by you.
и для гостя, просто запустите его с:
kvm -hda ~/fedora.qcow2 -net nic -net tap,ifname=tap0,script=no -usb
или
qemu -hda ~/fedora.qcow2 -net nic -net tap,ifname=tap0,script=no -usb
Вам просто нужно настроить tapустройство, принадлежащее вашему пользователю, включить arp proxyingи настроить routeмежду вашим хостом и гостем.
Автор (и я) использовали это для решения проблемы подключения к wlan0устройству, которое не поддерживается ядром Linux. Но это работает также и с проводным соединением. В arpконфигурации просто измените wlan0на eth0.
Гостевой IP-адрес должен быть установлен вами, так как DHCPне работает.
И вы уже можете пинговать свой хост.