AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 819466
Accepted
EnzoR
EnzoR
Asked: 2016-12-09 01:05:39 +0800 CST2016-12-09 01:05:39 +0800 CST 2016-12-09 01:05:39 +0800 CST

KVM下如何实现类似Virtualbox的桥接?

  • 772

我需要将一些虚拟机从 Virtualbox 测试系统移动到 KVM 生产主机。主机是相同硬件和软件系统的两个副本(重要的是 64 位 Ubuntu Server v16.04)。

这一切都不是太复杂,但网络部分。

对于 virtualbox 的来宾,我有一个 virtio 以太网适配器桥接到其中一个主机绑定设备。从主机连接到的网络和主机本身都可以轻松访问来宾。这样,来宾就像“网络上的另一台服务器”。在操作过程中,除了 virbr0 桥,我什么都看不到。

AFAIU,这个简单的设置无法在 KVM 下复制。如果我使用桥接,那么我无法从客人与主人交流。建议的解决方案是为来宾添加第二个接口以用于此类用途。

这是我唯一的选择吗?

然后,如果有任何技术细节可用,我想知道Virtualbox如何做KVM不能做的事情。

kvm-virtualization virtualbox bridge
  • 4 4 个回答
  • 3219 Views

4 个回答

  • Voted
  1. dyasny
    2016-12-09T07:21:18+08:002016-12-09T07:21:18+08:00

    您所描述的是一个绝对标准的 KVM 桥接配置,几乎记录在您想要查看的任何地方。这个想法是在网桥下的主机上建立绑定(网桥保存主机的 IP 配置,而不是绑定),VM 将能够像您在 vbox 中使用的一样使用网桥。

    一旦主机上有可用的网桥,virt-manager 将允许您选择要连接的共享网络设备(例如新网桥),或者您可以简单地更新 domxml 让访客使用网桥而不是默认的NAT网络

    • 2
  2. Best Answer
    EnzoR
    2016-12-10T23:28:52+08:002016-12-10T23:28:52+08:00

    这并不像预期的那么容易。@dyasny 的一般提示是正确的:确实是可行的。这里的主要目标是:

    1. 请勿使用 3rd 方工具(如virsh、virtinst或libvirt)来学习和理解。

    2. 以普通管理非特权用户的身份运行虚拟机而不是 root。

    这就是我的做法。

    1. /etc/network/interfaces通过注释掉主以太网的行来禁用主主机接口。

    2. 在同一文件中创建一个包含该接口的网桥。原始接口将丢失将去桥接的 IP。配置文件如下所示:

    
        auto eth0 # no iface and IP stuff
        auto br0
        iface br0 inet static
            bridge_ports    eth0
            bridge_stp      off
            bridge_maxwait  0
            bridge_fd       0
            address 192.168.255.253/24
            gateway 192.168.255.254
    
    1. 为 QEMU 创建一个 ACL 以允许到网桥的流量进入/etc/quemu/bridge.conf,所有权root:kvm结束权限0640。目录/etc/quemu/必须是root:kvmand 0770:
    
    sudo mkdir -v /etc/qemu
    # 'br0' is the same name as used in the previous step
    echo allow br0 | sudo tee -a /etc/quemu/bridge.conf > /dev/null
    sudo chown -R -vc root:kvm /etc/qemu
    sudo chmod -vc 0770 /etc/qemu
    sudo chmod -vc 0640 /etc/qemu/*
    
    1. 修复桥接助手脚本。如果仅对root.
    
    sudo chmod -vc u+s /usr/lib/qemu/qemu-bridge-helper
    
    1. 将您的非特权用户添加到 group kvm。您需要注销并登录(或打开一个新会话)才能使其生效。
    
    sudo usermod -a -G kvm `id -un`
    
    1. 重启网络。
    
    sudo service networking restart
    
    1. 现在,当您通过命令行启动 VM 时,您可以为网络设备使用如下参数列表:
    
    ... \
    -netdev bridge,id=net0,br=br0
    

    其中net0是枚举的网络设备(在这种情况下是第一个),并且br0是前面定义的网桥接口的名称。因此,例如,一个完整的命令行示例可以是这个:

    
    kvm -cpu host -machine q35 -boot order=dc -vga virtio -vnc 127.255.255.1:0 -name qemutest,process=qemutest -uuid 901f83ce-b999-459b-b1b6-a9ba94cac382 -smp cpus=4 -m size=8192 -cdrom /home/user/image.iso -drive file=/home/user/Desktop/QEMU/qemutest/qemutest-D0.qcow2,if=virtio -device virtio-net-pci,mac=02:19:3e:39:a5:de,netdev=net0 -netdev bridge,id=net0,br=br0
    
    • 1
  3. Jianyu
    2018-07-14T09:15:41+08:002018-07-14T09:15:41+08:00

    我也花了几天的时间来回答,仍然没有完全理解所以无法解释技术细节,但似乎virtualbox(主机桥)的方式与macvtap相比没有良好的性能。

    一个证据:

    http://www.math.cmu.edu/~gautam/sj/blog/20140303-kvm-macvtap.html

    • 0
  4. Vincenzo
    2016-12-09T01:29:42+08:002016-12-09T01:29:42+08:00

    您可以使用 iptables 将内部访客 IP 与您的公共 IP 连接,然后使用内部 IP 从 KVM 主机连接到访客

    • -1

相关问题

  • Xen 与 KVM 的性能对比

  • 什么是bridge_fd?

  • 如何在 kvm-linux 中登录除 ssh、vnc 之外的控制台

  • Linux 内核虚拟机

  • Vista 上的 VNC

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve