步骤如下:

1. 创建 tap 设备:

sudo ip tuntap add dev tap0 mode tap

2. enable tap0接口:

sudo ip link set tap0 up

3. 添加路由:

sudo ip route add 192.168.0.10/32 dev tap0

或者用旧的命令:

sudo route add -host 192.168.1.10 tap0

46b91d163d2a2c0075ac9df42b29011e.png

01aacf9fe5ea8c7d973e5a7ef473cea1.png

12ed0ff442611343ffc4b87423936cc3.png

这样,任何目标地址为

192.168.1.10

的包都会被 route到tap0.

4. 使用 ARP proxy:

sysctl net.ipv4.conf.tap0.proxy_arp=1

sysctl net.ipv4.conf.wlp3s0.proxy_arp=1

或者:

echo 1 》 /proc/sys/net/ipv4/conf/tap0/proxy_arp

echo 1 》 /proc/sys/net/ipv4/conf/wlp3s0/proxy_arp

5. Enable IP forwarding

sysctl net.ipv4.ip_forward=1

或者:

echo 1 》 /proc/sys/net/ipv4/ip_forward

6.启动虚拟机:

。/qemu-2.8.0/arm-softmmu/qemu-system-arm -M vexpress-a9 -m 1024 -smp 4 -kernel 。/linux-4.9.13/arch/arm/boot/zImage

-sd rootfs.img -append “root=/dev/mmcblk0 rw rootfs=ext4 rootdelay=3 physmap.enabled=0 console=ttyAMA0 console=tty0”

-dtb 。/linux-4.9.13/arch/arm/boot/dts/vexpress-v2p-ca9.dtb -netdev tap,id=mytest,ifname=tap0,scripts=no,downscript=no

-device virtio-net-device,netdev=mytest -nographic

然后,设置虚拟机IP地址:

ip addr add 192.168.0.10 dev eth0

添加路由:

ip route add default via 192.168.0.101 dev eth0

设置和主机一样的nameserver:

cat 》》 /etc/resolv.conf

nameserver 192.168.0.1

Ctrl-D

#ping www.baidu.com

23ea04cffd5e0c0a52dbea78dc1101ce.png

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐