联网不适用于qemu guest(Malta Mips)

mar*_*rry 5 linux networking qemu

我正在尝试在QEMU malta mips上配置网络,该mips使用tap/tun设备和网桥接口在vmware主机(ubuntu)上运行.我的qemu guest无法从DHCP服务器检索IP地址.如果我手动给它,它只能连接到它的主机.使用tcpdump我开始知道传出流量工作正常,但传入不起作用.

任何人都可以建议我如何解决这类问题?谢谢

小智 5

如果您使用 NAT 模式,那么您的主机将充当来宾 VM 的路由器。这意味着您必须在主机上启用路由。

假设您启动 qemu 并将其链接到 tap0 接口并且您的传出 Internet 接口是 eth0,那么您应该:

  1. 创建 tap0 虚拟接口:

    tunctl -t tap0
    ifconfig tap0 192.168.0.1 netmask 255.255.255.0 up
    
    Run Code Online (Sandbox Code Playgroud)
  2. 激活路由

    # activate ip forwarding
    echo 1 > /proc/sys/net/ipv4/ip_forward
    
    # Create forwarding rules, where
    # tap0 - virtual interface
    # eth0 - net connected interface
    
    iptables -A FORWARD -i tap0 -o eth0 -j ACCEPT
    iptables -A FORWARD -i eth0 -o tap0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    
    Run Code Online (Sandbox Code Playgroud)
  3. 用这样的东西启动你的虚拟机:

    qemu [..] -net nic,model=e1000,vlan=0 -net tap,ifname=tap0,vlan=0,script=no
    
    Run Code Online (Sandbox Code Playgroud)
  4. 在您的 VM 中,使用 ip 192.168.0.2/24 和默认网关 192.168.0.1 配置一个接口


Vis*_*esn 0

在 NAT 模式下你无法实现这一点。您需要将虚拟机配置为桥接模式,希望您知道配置步骤;如果没有看到这里的链接;