Networkmanager

NetworkManager:將設備的目前連接設置為計量

  • October 7, 2019

使用 NetworkManager,如何將我的設備(例如wlp2s0)上目前連接的連接設置為按流量計費?

我如何取消設置它以使對計量/未計量狀態的猜測仍然會發生?

注意:有些熱點會被計量(例如我的手機)而有些不會(例如家庭),所以在設備上設置它不是我想要的。

我真的希望這不是最好的答案:在簡單的情況下似乎很複雜,如果允許二進制 SSID 則更是如此。無論如何,這裡是:

獲取設備的目前連接

nmcli -t -f GENERAL.CONNECTION --mode tabular device show $DEVICE | head -n1

-t是必需的,因為末尾附加了一個空格,否則(!?)。

顯示目前計量狀態

nmcli -f connection.metered connection show $CONNECTION

$CONNECTION上一條命令返回的字元串在哪裡。

更改計量狀態

有效狀態為yesnounknownunknown是預設值,它將根據 DHCP option ANDROID_METERED (reference)之類的內容進行猜測。

範例:將 $CONNECTION 設置為計量:

nmcli connection modify $CONNECTION connection.metered yes

允許二進制 SSID

要做到這一點“正確”(允許 SSID 中有 32 個任意八位字節),您需要使用設備GENERAL.CON-PATH

nmcli -t -f GENERAL.CON-PATH --mode tabular device show DEVICE | tail -n1

這將返回一個字元串,如:/org/freedesktop/NetworkManager/ActiveConnection/39

然後使用此路徑獲取連接。**注意:**這有不同的值(設備的== 連接的)GENERAL.CON-PATH``CON-PATH``GENERAL.DBUS-PATH

nmcli -t -f GENERAL.CON-PATH -m tabular connection show apath /org/freedesktop/NetworkManager/ActiveConnection/39

這將返回一個字元串,如:(/org/freedesktop/NetworkManager/Settings/5注意 no ActiveConnection)。然後可以使用它來修改連接:

nmcli connection modify /org/freedesktop/NetworkManager/Settings/<NUMBER> connection.metered <VALUE>

引用自:https://unix.stackexchange.com/questions/364927