По крайней мере один раз, после Добавить -ing предварительно созданного .vbox
в VirtualBox, я обнаружил эту ошибку, потому что ... в Настройки> Сеть - Дополнительно
параметр Подключен кабель
, по-видимому, не был оставлен отмеченным после того, как был Добавить -ed. Почему? Кто знает. Я бы сказал, что в большинстве случаев это будет из-за правил udev и т.п.
Я очень надеюсь, что это не лучший ответ: он кажется запутанным в простом случае, и тем более, если учесть двоичный SSID. В любом случае, вот:
Получить текущее соединение устройства
nmcli -t -f GENERAL.CONNECTION --mode tabular device show $DEVICE | head -n1
-t
требуется, так как в противном случае в конце добавляется пробел (!?).
Показать текущее состояние счетчика
nmcli -f connection.metered connection show $CONNECTION
Где $CONNECTION
— это строка, возвращенная предыдущей командой.
Изменить состояние счетчика
Допустимые состояния: да
, нет
и неизвестно
.неизвестно
— это значение по умолчанию, которое будет делать предположения на основе таких вещей, как опция DHCP ANDROID_METERED
(ссылка) .
Пример: установите $CONNECTION для измерения:
nmcli connection modify $CONNECTION connection.metered yes
Разрешение двоичных SSID
Чтобы сделать это «правильно» (разрешить 32 произвольных октета в SSID), вам нужно использовать устройство. GENERAL.CON-PATH
:
nmcli -t -f GENERAL.CON-PATH --mode tabular device show DEVICE | tail -n1
Это вернет строку вроде: /org/freedesktop/NetworkManager/ActiveConnection/39
Затем используйте этот путь, чтобы получить соединение с GENERAL.CON-PATH
. NB: это имеет другое значение (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>
Адаптация ответа @TomHale -, чтобы просто получить активное состояние соединения:
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"