Algo como isso deve funcionar:
/etc/NetworkManager/dispatcher.d
#!/bin/bash
ip=10.0.1.13
port=3142
nc -w 1 $ip $port
proxy_file="/etc/apt/apt.conf.d/02local_proxy"
if [ $? -eq 0 ]; then
echo "Acquire::http { Proxy \"http://$ip:$port\"; };" > $proxy_file
echo 'Acquire::https { Proxy "false"; };' >> $proxy_file
else
rm -f $proxy_file
fi
Corrigir permissões
sudo chmod +x /etc/NetworkManager/dispatcher.d/99SetAptProxy
Notas:
- O comando "nc" testa que pode conectar-se à porta 3142 no endereço IP especificado.
- Esse script é executado toda vez que as interfaces de rede são alteradas pelo gerenciador de rede.
- Sinta-se à vontade para alterar a maneira que você detecta para o proxy, isso funciona para mim, mas é uma vulnerabilidade de segurança se você instalar pacotes em uma rede estrangeira, por exemplo.