NetworkManager: Defina a conexão atual do dispositivo como medida

3

Com o NetworkManager, como defino a conexão atualmente conectada no meu dispositivo (digamos wlp2s0 ) como medida?

Como faço para desfazer isso de tal forma que a adivinhação do estado medido / não medido ainda ocorrerá?

Nota: alguns hotspots serão medidos (por exemplo, meu telefone) e outros não (por exemplo, em casa), portanto, configurá-lo no dispositivo não é o que eu estou procurando.

    
por Tom Hale 14.05.2017 / 07:29

1 resposta

5

Eu realmente espero que esta não seja a melhor resposta: parece complicada no caso simples, e ainda mais se permitir um SSID binário. De qualquer forma, aqui vai:

Obtenha a conexão atual do dispositivo

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

-t é necessário, pois há um espaço anexado no final, caso contrário (!?).

Mostrar status atual de medição

nmcli -f connection.metered connection show $CONNECTION

Onde $CONNECTION é a string retornada pelo comando anterior.

Alterar status de medição

Os status válidos são yes , no e unknown . unknown é o padrão, que fará a adivinhação com base em itens como a opção DHCP ANDROID_METERED (reference) .

Exemplo: defina $ CONNECTION para ser medido:

nmcli connection modify $CONNECTION connection.metered yes

Permitindo SSIDs binários

Para fazer isso "certo" (permitindo 32 octetos arbitrários no SSID), você precisará usar o GENERAL.CON-PATH :

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

Isso retornará uma string como: /org/freedesktop/NetworkManager/ActiveConnection/39

Em seguida, use este caminho para obter o GENERAL.CON-PATH da conexão . NB: isso tem um valor diferente ( CON-PATH da conexão de% co =% do dispositivo)

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

Isso retornará uma string como: GENERAL.DBUS-PATH (note no /org/freedesktop/NetworkManager/Settings/5 ). Isso pode ser usado para modificar a conexão:

nmcli connection modify /org/freedesktop/NetworkManager/Settings/<NUMBER> connection.metered <VALUE>
    
por 14.05.2017 / 09:06