我正在 Centos Stream 8 上查看网络管理器的 D-Bus API,整个org.freedesktop.NetworkManager.Device.Statistics
界面的所有属性都显示 0,包括RxBytes
和TxBytes
。这适用于所有网络接口,包括用于登录计算机和环回的活动以太网端口。
是否有其他对象类型实际上具有此信息?该接口是否已弃用?我是否需要运行一种方法来开始在某处录制?我需要以某种方式订阅更改吗?这与 nm-settings-ifcfg-rh 有关吗?
Netstat 报告这些统计数据没有问题。 Ubuntu 22.04 会报告它们,但仅限于环回。
编辑:我以为我使用的是 Ubuntu 设备,但实际上它是 Centos 设备。
答案1
这些传输统计信息基本上轮询内核 API,它有一些(很小?)开销,并且默认情况下被禁用。
其实和自己从netlink获取信息是一样的。
无论如何,要启用此轮询,请设置
busctl set-property org.freedesktop.NetworkManager /org/freedesktop/NetworkManager/Devices/2 org.freedesktop.NetworkManager.Device.Statistics RefreshRateMs u 1000
其中 D-Bus 路径是您从 获得的路径nmcli -g GENERAL.DBUS-PATH device show eth0
。
我需要以某种方式订阅更改吗?
D-Bus 上有这些属性,每RefreshRateMs
毫秒更新一次。您可以轮询此属性,或监听信号。后者意味着您“订阅” PropertiesChanged
D-Bus 信号