Dav*_* S. 4 networking wifi kvm ubuntu
因为我的无线网络适配器不支持桥接,所以让来宾 VM 连接到开放的互联网并在与主机相同的网络中拥有 IP 地址真的很困难。我用的是Ubuntu 10.10,KVM版本不支持vde,所以更难。我该如何解决?
@stribika 的想法很棒,但我更愿意让我的 VM 连接到与我的主机相同的网络。例如,我的主机网络是 192.168.1.0,我希望我的 VM 网络是相同的。
您应该能够使用用户模式网络堆栈。像这样启动 qemu:
qemu-system-x86_64 \
-smp 1 -m 1024 \
-net user,net=10.0.0.0/8,host=10.0.0.1,hostfwd=tcp:127.0.0.1:2222-10.0.0.2:22 \
-net nic \
-cdrom systemrescuecd-x86-2.0.1.iso -boot d
Run Code Online (Sandbox Code Playgroud)
重要选项:
-net nic: 给guest显示一张虚拟网卡-net user: 使主机上的 qemu 进程像任何其他进程一样通过真实网络进行通信net=10.0.0.0/8: 虚拟网络上的子网host=10.0.0.1:虚拟网络上的主机IP地址hostfwd=tcp:127.0.0.1:2222-10.0.0.2:22: 主机上的 qemu 进程在 2222 端口监听来自 localhost 的 TCP 连接,并将它们转发到虚拟网络到 10.0.0.2:22(这样你就可以 ssh 到你的新虚拟机)在来宾运行中
ifconfig eth0 10.0.0.2 up
ip route add default via 10.0.0.1 dev eth0
Run Code Online (Sandbox Code Playgroud)
测试从主机到访客的 SSH
ssh 127.0.0.1 -p 2222
Run Code Online (Sandbox Code Playgroud)
从客人到主人
ssh 10.0.0.1
Run Code Online (Sandbox Code Playgroud)
测试客人的互联网可达性
wget google.com
Run Code Online (Sandbox Code Playgroud)
主机进程的工作方式类似于 NAT 路由器。只有 TCP 和 UDP 流量将起作用。特别是 ping 只能在来宾和主机之间运行,您无法 ping google.com(我常用的网络测试方法)。这种方法的优点是您甚至不需要 root 权限。