wlp2s0
NetworkManagerを使用して測定するデバイス(たとえば)に現在接続されている接続をどのように設定しますか?
測定/測定されていない状態がまだ推測されるように設定を解除するにはどうすればよいですか?
注:一部のホットスポットは測定され(例:マイ携帯電話)、一部は測定されません(たとえば、自宅)。したがって、デバイスにこの機能を設定することは私が望むものではありません。
答え1
これが最善の答えではないことを心から願っています。単純な場合は複雑に見え、バイナリSSIDが許可されている場合はさらにそうです。とにかく、ここにあります:
デバイスの現在の接続を取得します
nmcli -t -f GENERAL.CONNECTION --mode tabular device show $DEVICE | head -n1
-t
末尾にスペースが追加されるので必要です。そうでなければ(!?)
現在の計量状態を表示
nmcli -f connection.metered connection show $CONNECTION
$CONNECTION
前のコマンドから返された文字列はどこにありますか?
測定状態の変更
有効な状態はyes
、no
およびですunknown
。unknown
デフォルトで、DHCPオプションなどに基づいて推測します。ANDROID_METERED
(引用)。
例:$ 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
注なしActiveConnection
)。その後、接続を変更するために使用できます。
nmcli connection modify /org/freedesktop/NetworkManager/Settings/<NUMBER> connection.metered <VALUE>
答え2
@TomHale-sの答えに基づいて修正されました。ポジティブ接続状態:
CONNECTION_UUID=$(nmcli -t -m multiline -f UUID connection show --active | head -n1 | cut -c 6- )
METERED=$(nmcli -t -m multiline -f connection.metered connection show "$CONNECTION_UUID" | cut -c 20-)
# possible values are "yes", "no", "unknown":
echo "$METERED"