Como iniciar um túnel WireGuard como serviço do systemd
O modelo wg-quick@ levanta um perfil nomeado e instala rotas, DNS e ganchos. Verifique a unidade, mantenha um único gestor no comando e teste o desmonte.
Tem um perfil WireGuard em /etc/wireguard/wg0.conf e quer que ele esteja ativo sem digitar wg-quick up à mão depois de cada reinício. O modelo systemd do pacote faz exatamente isso: [email protected] executa o wg-quick para o perfil chamado wg0. Também instala endereços, rotas, DNS e quaisquer ganchos declarados pelo perfil, o que é mais do que apenas carregar uma chave no kernel. Verifique se o modelo existe no seu sistema antes de presumir que existe.
O resto deste guia segue a ordem em que você realmente faria.
Encontre a unidade e o perfil que ela lê
Liste os arquivos de unidade com systemctl list-unit-files 'wg-quick*'. Nas distribuições que o empacotam, verá [email protected], com o nome da instância retirado do perfil. A instância é resolvida em /etc/wireguard/<name>.conf, então wg-quick@wg0 lê apenas wg0.conf e nada mais. Se a lista estiver vazia, o pacote de ferramentas não está instalado e nenhuma quantidade de ativação ajudará.
Mantenha o perfil no modo 600 e com propriedade de root. Ele contém uma chave privada, e a unidade funcionará de bom grado com permissões piores se você deixar.
Levante-o e leia o journal
Inicie a instância com systemctl start wg-quick@wg0, depois verifique systemctl status wg-quick@wg0 e journalctl -u wg-quick@wg0 -b. Uma unidade que inicia e sai imediatamente costuma ter um erro de perfil, e o journal indica a linha. Confirme com wg show que a interface existe e que o último handshake é recente. O manual do wg-quick lista o que o script faz além da própria interface.
Uma interface configurada sem handshake é um problema de caminho ou de chave, não de serviço.
Mantenha um único gestor no comando
Se o NetworkManager ou outro cliente já possui o túnel, iniciar a unidade systemd cria um segundo dono para a mesma interface, rotas e DNS. Os sintomas são confusos: o túnel sobe, depois as rotas desaparecem, ou o DNS volta atrás após alguns segundos. Escolha um gestor e desative o outro para esse perfil. O journal geralmente mostra a tomada de controle como mudanças de rota ou de resolvedor logo depois que a unidade relata sucesso.
Dois gestores não compartilham a propriedade. Eles se sobrescrevem.
Teste parada, reinício e inicialização
Execute systemctl stop wg-quick@wg0 e confirme que a interface sumiu e que as rotas foram removidas. Depois inicie novamente e verifique se as rotas voltam, porque bugs de desmonte aparecem como rotas remanescentes e não como inicializações falhas. Por fim ative na inicialização com systemctl enable --now wg-quick@wg0 e reinicie uma vez.
Na inicialização o nome do endpoint precisa ser resolvido antes de a unidade rodar. Se o DNS ainda não estiver ativo, a unidade falha e continua falhando até você iniciá-la à mão.
Anote o dono
Anote qual perfil a unidade lê, qual gestor possui a interface e de onde veio o arquivo. Quando alguém mais tarde importar o mesmo túnel num cliente de desktop, essa nota é a diferença entre uma migração e duas implantações disputando um endereço. Anote também o nome da interface, porque dois perfis com nomes parecidos são a fonte habitual de confusão.
Um túnel com dois donos funciona até o primeiro reinício, e então vira um mistério. Por isso a nota pertence ao repositório e não a uma thread de chat.