Para configurar o Netplan de modo que ele ajuste automaticamente as configurações dependendo da rede à qual você está conectado, você precisará criar diferentes perfis de configuração de rede e usar scripts que detectem a rede ativa e apliquem a configuração apropriada. Aqui está um exemplo básico de como você pode fazer isso:
Passo 1: Crie Perfis de Configuração no Netplan
- Crie diferentes arquivos de configuração do Netplan:
/etc/netplan/config_home.yaml
/etc/netplan/config_office.yaml
/etc/netplan/config_default.yaml
- Exemplo de conteúdo de
/etc/netplan/config_home.yaml
:network: version: 2 ethernets: eth0: dhcp4: yes nameservers: addresses: - 8.8.8.8 - 8.8.4.4
- Exemplo de conteúdo de
/etc/netplan/config_office.yaml
:network: version: 2 ethernets: eth0: dhcp4: yes nameservers: addresses: - 1.1.1.1 - 1.0.0.1
- Exemplo de conteúdo de
/etc/netplan/config_default.yaml
:yaml network: version: 2 ethernets: eth0: dhcp4: yes
Passo 2: Crie um Script para Detectar a Rede
- Crie um script em
/usr/local/bin/change_netplan_config.sh
:#!/bin/bash HOME_NETWORK="192.168.1." OFFICE_NETWORK="10.0.0." CURRENT_IP=$(ip route get 8.8.8.8 | awk '{print $7}') if [[ $CURRENT_IP == $HOME_NETWORK* ]]; then CONFIG_FILE="/etc/netplan/config_home.yaml" elif [[ $CURRENT_IP == $OFFICE_NETWORK* ]]; then CONFIG_FILE="/etc/netplan/config_office.yaml" else CONFIG_FILE="/etc/netplan/config_default.yaml" fi cp $CONFIG_FILE /etc/netplan/01-netcfg.yaml netplan apply
- Dê permissão de execução ao script:
bash sudo chmod +x /usr/local/bin/change_netplan_config.sh
Passo 3: Automatize a Execução do Script
- Crie uma unidade de serviço do systemd para executar o script na inicialização e sempre que a conexão de rede mudar:
- Crie o arquivo de serviço em
/etc/systemd/system/change_netplan.service
:
[Unit] Description=Change Netplan Configuration Based on Network After=network-online.target Wants=network-online.target [Service] Type=oneshot ExecStart=/usr/local/bin/change_netplan_config.sh [Install] WantedBy=multi-user.target
- Crie o arquivo de serviço em
- Ative o serviço:
sudo systemctl enable change_netplan.service sudo systemctl start change_netplan.service
- Crie uma unidade de timer do systemd para verificar a rede periodicamente:
- Crie o arquivo de timer em
/etc/systemd/system/change_netplan.timer
:
[Unit] Description=Run change_netplan_config.sh every minute [Timer] OnBootSec=1min OnUnitActiveSec=1min Persistent=true [Install] WantedBy=timers.target
- Crie o arquivo de timer em
- Ative o timer:
bash sudo systemctl enable change_netplan.timer sudo systemctl start change_netplan.timer
Com esses passos, o Netplan ajustará automaticamente as configurações de rede com base na rede à qual você está conectado. O script change_netplan_config.sh
detecta a rede atual e copia o arquivo de configuração correspondente para o Netplan, aplicando as alterações em seguida.
Comments are closed