2017-04-05 80 views

回答

2

随着nmcli实用程序,必要的步骤是:

  1. 验证网络管理器是version 1.0.6+

    $ nmcli -v nmcli tool, version 1.9.0

  2. 检查GENERAL.METERED的界面上:

    $ nmcli -t -f GENERAL.METERED dev show eth1 GENERAL.METERED:unknown

  3. values are: unknown, yes, no, yes (guessed), no (guessed)

  4. 强制值是这样完成的:

    $ nmcli dev modify wlan1 connection.METERED yes Connection successfully reapplied to device 'wlan1' $ nmcli -t -f GENERAL.METERED dev show wlan1 GENERAL.METERED:yes

而且,为了获得由设备分组列表:

$ nmcli -t -f GENERAL.DEVICE,GENERAL.METERED dev show 

    GENERAL.DEVICE:wlan1 
    GENERAL.METERED:yes 

    GENERAL.DEVICE:eth1 
    GENERAL.METERED:unknown 

    GENERAL.DEVICE:lo 
    GENERAL.METERED:unknown 

试图削减这只需要默认路由的信息将仍然需要a call to another command作为NetworkManager不试图区分处于连接状态的多个设备:

$ nmcli -t -f GENERAL.DEVICE,GENERAL.METERED dev show `ip route list 0/0 | sed -r 's/.*dev (\S*).*/\1/g'` 
+0

非常好!有没有办法只显示第一个默认路由的网络信息?对于许多VPN和其他虚拟网络,'nmcli -t -f GENERAL.METERED dev show'的输出(没有设备)是我所有可能值的混合体。 – phihag

+0

我已经添加了一种方法来查看设备名称,但我认为您可能需要询问'ip route'并理想'ip monitor'来可靠地跟踪默认路由或相关服务器的接口,然后执行/重做nmcli查询。 – lossleader

+0

谢谢!我会在几个小时内奖励赏金。 – phihag

相关问题