ubuntu下qemu虚拟机实现和主机以及互联网通信,图文详细教程 |
您所在的位置:网站首页 › ubuntu共享网络连接 › ubuntu下qemu虚拟机实现和主机以及互联网通信,图文详细教程 |
1 查看tun模块信息
modinfo tun
执行该命令后如果你看到是下图的信息,恭喜你可以直接直接到第2节。 你也可能看到的是这样的信息: 那么就要安装tun模块,请参考:ubutun 安装tun模块 查看tun模块是否开启 lsmod |grep tun如果lsmod命令没有看到,执行如下命令加载即可,否则需要安装tun模块。 sudo modprobe tun 2 安装网桥管理包 sudo apt install -y bridge-utils # 虚拟网桥工具 sudo apt install -y uml-utilities # UML(User-mode linux)工具 3 qemu虚拟机网桥方式网络通信(建议) 1)创建网桥 sudo brctl addbr virbr0如果创建失败请用root账户或者自己手动创建。 sudo echo 'allow virbr0' >> /etc/qemu/bridge.conf 2)打开网桥stp sudo brctl stp virbr0 on 3)添加tap虚拟网卡 sudo ip tuntap add name virbr0-nic mode tap 4)启动网卡 sudo ip link set dev virbr0-nic up 5)虚拟网卡添加到网桥 sudo brctl addif virbr0 virbr0-nic 6)开机启动网桥 sudo systemctl enable libvirtd sudo dhclient virbr0 7)网桥自动获取IP sudo dhclient virbr0 8)查看网桥状态 brctl showbrctl 其他命令: brctl addbr virbr0 #创建一个网桥br0 brctl delbr virbr0 #删除网桥br0 brctl addif virbr0 eth0 #把eth0 加入到网桥 brctl addif virbr0 tap0 #把tap0 加入到网桥 brctl delif virbr0 eth0 #把eth0 从网桥中删除 9)启动虚拟机启动虚拟机时添加如下参数。(qemu使用请参考:qemu 使用) -net nic,macaddr=,model=ftgmac100 \ -net bridge,id=net0,helper=/usr/lib/qemu-bridge-helper,br=virbr0ps:这里 可以直接copy网桥的mac,然后修改后几位,model、以及后面的“-net bridge ...”参数可以不要,但是一般建议带此参数。另外如果在启动多个虚拟机时,需要设置不同mac,否则所有虚拟机使用同一个IP地址。 启动虚拟机后,一般就可以上网了,如果qemu启动的虚拟机不能上网或者想知道qemu启动的虚拟机的IP地址,可以在虚拟机中运行“udhcpc”命令,该命令会自动设置好ip、dns等,完成后可以用ifconfig命令查看ip。 启动虚拟机后,也可以用ifconfig命令配置eth0的ip。(执行后用ifconfig查看的实际ip并非配置的IP不要慌(udhcpc命令后可查看实际IP),用实际ip即可,如果想指定可在此运行ifconfig指定,但是可能会造成不上外网的情况) ifconfig eth0 192.168.122.76最后虚拟机后ping 一下外网,如图所示,恭喜你虚拟机可以和主机以及互联网通信啦。 网桥创建和添加tap0到网桥参考第3节即可。 1)配置文件配置tap启动IP修改qemu-ifup文件配置,配置启动ip。(如果修改不了请给权限或者root用户下) sudo vi /etc/qemu-ifup或者 gedit /etc/qemu-ifup如果是新建qemu-ifup文件则直接添加如下内容,否则添加文件末尾。(也可以修改文件代码设置ip的位置,具体自行修改) switch=virbr0 /sbin/ifconfig $1 192.168.122.100 up brctl addif ${switch} $1 2)tap方式启动虚拟机启动虚拟机时添加如下参数: -net nic,model=rtl8139 -net tap,ifname=tap0,script=/etc/qemu-ifup启动虚拟机后在主机下可以看到tap0 查看qemu虚拟机ip和上网和第三节一样,这里不做赘述。 注 :这里tap0的网段和virbr0的网段配置在同网段,virbr0和主机的网卡不在同一网段。如果发现主机不能上网的情况可以ifconfig + 网卡 down然后在up,如果依然不能上网,手动删除网卡,在重启主机,或者重启网络。然后在添加虚拟网卡。 如果有手动启动tap0,也可在启动虚拟机添加如下参数: -net nic,model=rtl8139 -net tap0 方法二 :纯tap0上网 1)添加路由ip sudo ip route add 192.168.0.10/32 dev tap0或者 sudo ip route add 192.168.126.10/32 dev tap0如果想删除执行 sudo ip route del 192.168.0.10/32 dev tap0 2)查看路由 route -n或者 sudo echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp sudo echo 1 > /proc/sys/net/ipv4/conf/wlp3s0/proxy_arp 5)使能IP转发 sudo sysctl net.ipv4.ip_forward=1或者 echo 1 > /proc/sys/net/ipv4/ip_forward 6)启动qemu虚拟机 -net nic,model=rtl8139 -net tap,ifname=tap0,script=/etc/qemu-ifupPS:前面的操作都是在主机也就是在ubuntu系统下操作的,后面的操作是在qemu虚拟机下操作。 7)设置qemu虚拟机ip虚拟机地址一定要和主机下设置tap0的地址一样,否则连不上网。 ip addr add 192.168.126.10 dev eth0 一般到这里就可以ssh访问虚拟机,可能虚拟机ping不同主机以及不能上外网,请继续下面操作。 8) 设置qemu虚拟机route地址这个地址设置和虚拟机同网段。 ip route add default via 192.168.126.200 dev eth0 9)设置nameserver这个的IP地址要和虚拟机IP相同。 echo “nameserver 192.168.126.10” >> /etc/resolv.conf 10)qemu虚拟机上网至此虚拟机系统可以和主机通讯以及访问互联网了。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |