V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
billows
V2EX  ›  程序员

QEMU、virtualbox 这些虚拟化软件,有支持监控带宽的吗?

  •  
  •   billows · 2018-02-27 13:43:25 +08:00 · 3688 次点击
    这是一个创建于 2479 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我这几天看文档,都只看到可以 dump 包来分析,但是这种方式一来有点多余,而来还得进行额外的分析。有没有可以直接获取虚拟机系统对外发送的数据带宽,或者总流量的方法呢?

    求教。

    18 条回复    2018-02-28 14:10:33 +08:00
    CEBBCAT
        1
    CEBBCAT  
       2018-02-27 13:51:55 +08:00 via Android
    Windows ?系统自带的,在性能监视器里面
    billows
        2
    billows  
    OP
       2018-02-27 13:54:20 +08:00
    @CEBBCAT 不是哦,是希望在宿主机中获取虚拟机内的带宽情况,最终能统计总流量。
    CEBBCAT
        3
    CEBBCAT  
       2018-02-27 13:56:54 +08:00   ❤️ 1
    @billows #2 虚拟机有自己的网卡的吧? 统计那块虚拟网卡就好了
    billows
        4
    billows  
    OP
       2018-02-27 14:05:14 +08:00
    @CEBBCAT 有些模式没有呀
    CEBBCAT
        5
    CEBBCAT  
       2018-02-27 14:10:11 +08:00
    @billows #4 不用虚拟机好长时间了, 只记得个桥接和路由, 建议楼主给出更多信息
    billows
        6
    billows  
    OP
       2018-02-27 14:13:55 +08:00
    @CEBBCAT V2EX 乍不支持主题追加描述了啊。。

    我想达到的目的是,尽可能在不动宿主机的情况下,安装一个虚拟机。要求虚拟机能访问外网,宿主机能 ssh 到这个虚拟机,并能访问虚拟机的 80,443 等端口即可。

    基本上 NAT 网络方式+端口绑定映射就能达到要求。 桥接复杂了一些,而且桥接需要宿主机的路由能分配 IP 给虚拟机,所以有些地方就不能用桥接。

    最后是希望,在满足要求的情况下,不管用什么网络方式,最终能统计这台虚拟机所使用的流量。
    CEBBCAT
        7
    CEBBCAT  
       2018-02-27 14:22:18 +08:00
    @billows #6 帖子刚发出来一段时间不能追加

    架设 本机 <-> 本机 代理? 除此以外我是真的没点子了, 我很菜
    billwsy
        8
    billwsy  
       2018-02-27 14:31:50 +08:00
    虚拟机的 iptables 加一条规则统计?
    gamexg
        9
    gamexg  
       2018-02-27 14:36:43 +08:00
    跑个虚拟路由器,然后虚拟机通过虚拟路由器上网,路由器统计网络信息。
    billows
        10
    billows  
    OP
       2018-02-27 14:41:03 +08:00
    @CEBBCAT 恩。 也谢谢出注意。


    @billwsy 不能进入虚拟机啊。 虚拟机是对我来说是透明的,我只负责安装。




    @gamexg 这个虚拟路由器 QEMU 或者 virtualbox 有提供吗?我对虚拟网络这块不是很熟,不知道加了虚拟路由器后,情况会不会变的很复杂。
    gamexg
        11
    gamexg  
       2018-02-27 14:48:28 +08:00
    就是软路由,
    创建一个内部网络(记得 virtualbox 有这个功能),虚拟机连接到这个网络。
    然后虚拟软路由两个网卡一个连接到内部网络,一个桥接主机网卡。
    liuweisj
        12
    liuweisj  
       2018-02-27 15:23:06 +08:00
    最简单的方法是给每个虚拟机建不通的 network 每个 network 在宿主机上都会有对应的一个 interface,统计这个 interface 流量就好了
    NoahNye
        13
    NoahNye  
       2018-02-27 15:26:48 +08:00 via iPhone
    爱快或者海蜘蛛,有 web 页面,超直观简单
    billows
        14
    billows  
    OP
       2018-02-27 15:38:17 +08:00
    @liuweisj 能详细介绍下吗?或者提供链接参考也行。


    @gamexg 似乎有点复杂。 这种情况下虚拟机能连外网吗
    billwsy
        15
    billwsy  
       2018-02-27 23:56:12 +08:00 via iPhone
    主机通过 NAT 给虚拟机提供网络的话主机的 iptables 加监控规则试试?
    adadada
        16
    adadada  
       2018-02-28 08:03:40 +08:00 via iPhone
    /sys/devices/virtual/net/ 下 vm 使用的 tap 或者 tun 设备的 statistics 信息有用吗?
    billows
        17
    billows  
    OP
       2018-02-28 09:34:45 +08:00
    @billwsy 我的理解这种方式不行,NAT 方式的 VLAN,虚拟机流量出口是不需要走 iptables 的吧。


    @adadada 这种方式是不是前提得虚拟机的 VLAN 是 user ( QEMU )模式?这样这个虚拟机所有的流量都是走这个 tap 出去的?
    billows
        18
    billows  
    OP
       2018-02-28 14:10:33 +08:00
    @adadada    我看了,我这里是 vnet0,实际记录的 tx_bytes 会比虚拟机内部 ifconfig 打印出来的要很多很多。virt-top 工具可以监控,倒是基本正确,我打算去看下 virt-top 是通过什么方式监控的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5541 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 02:10 · PVG 10:10 · LAX 18:10 · JFK 21:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.