A interface está ativa mas o wg-quick falhou: o que fazer agora
Uma unidade falhada pode deixar um túnel meio configurado. Leia o primeiro passo que falha, decida se limpa ou repara, e depois prove-o com um pedido.
A unidade está vermelha, a interface existe e o túnel funciona na maior parte, que é a combinação mais confusa possível. A configuração é uma sequência: primeiro cria-se a interface, depois vêm endereços, rotas, definições do resolvedor e quaisquer comandos de hook. Uma falha no quarto passo deixa os três primeiros no lugar, portanto o nome da interface é prova de que o arranque começou, não de que terminou. Um dado adicional teria poupado a confusão: o passo que falhou.
O estado parcial é a falha normal
Esse comportamento é de esperar em vez de ser tratado como corrupção. A interface é a parte mais barata da configuração e a mais fácil de deixar para trás, e é também a parte que faz a máquina parecer meio a funcionar.
O que ainda não existe é tudo o que veio depois do passo que falhou. Se a falha foi na fase do resolvedor, os endereços e as rotas existem e o DNS não. Se foi uma rota, o túnel tem um endereço e nenhum caminho através dele.
A consequência é uma máquina que responde a alguns testes e falha noutros, e é por isso que as pessoas concluem que o serviço pisca quando nunca arrancou com sucesso. Um serviço que nunca terminou não pode piscar. Só pode falhar repetidamente pelo mesmo motivo.
Encontre o primeiro passo que falha
Leia o diário da unidade em vez de apenas o estado atual, e leia-o desde o início da execução falhada. A última linha diz-lhe o código de saída; o primeiro erro diz o que reparar.
Estes comandos imprimem o estado da unidade, o diário de arranque dessa unidade e o estado vivo do túnel:
systemctl status wg-quick@wg0
journalctl -u wg-quick@wg0 -b --no-pager | tail -40
wg show
ip -4 addr show dev wg0Um erro do resolvedor, uma rota que já existe, um hook que saiu com um código diferente de zero e uma falha de análise da configuração aparecem todos nessa janela, e cada um nomeia o seu próprio componente. Adivinhar apenas a partir do estado da interface ignora toda essa informação.
Três condições que decidem a reparação
Decida se está a limpar, a reparar no local ou a retirar a unidade do caminho de arranque, e decida isso antes de escrever seja o que for.
Se a interface está avariada mas a configuração está correta, limpe e comece de novo. Se a configuração está errada, corrija-a e limpe mesmo assim primeiro, porque arrancar um segundo gestor sobre um estado parcial produz dois donos para uma interface. Se a falha for um componente do sistema em falta, como um assistente de resolvedor que a máquina não tem, instale ou remova a dependência deliberadamente em vez de editar a unidade até ela deixar de se queixar.
Esses três casos cobrem a maior parte do que parece uma unidade vermelha misteriosa. A pergunta que distingue é se a mesma falha ocorreria numa máquina com estado limpo, e a resposta costuma vir da primeira linha de erro.
Limpe antes de tentar de novo
Uma nova tentativa sobre um estado existente pode falhar por um motivo novo e esconder o original. Baixe a interface com a mesma ferramenta que a criou e depois confirme que não ficou nada.
Não apague interfaces que não têm relação nem reponha a pilha de rede do anfitrião. Ambas são ações grandes para reparar um objeto pequeno, e transformam um único túnel falhado numa máquina cujas outras ligações precisam de ser restabelecidas. O âmbito correto é uma interface e a unidade que a possui. Qualquer coisa mais ampla exige um motivo escrito antes de acontecer.
Prove o túnel, não a unidade
Uma unidade verde significa que a sequência de arranque terminou com zero. Não significa que um pacote chegou ao outro lado, nem que o resolvedor foi definido como pretendia.
Envie um pedido pelo túnel e leia o estado que o produziu:
systemctl is-active wg-quick@wg0
wg show wg0 latest-handshakes
ping -c 3 10.63.0.1
resolvectl query internal.example.netUm aperto de mão sem resposta continua a dizer-lhe que o túnel se formou e que o lado remoto está silencioso, o que é um problema diferente de uma unidade que nunca arrancou. Guarde o estado da unidade, o aperto de mão e o resultado do pedido num único registo, porque falham de forma independente e só a combinação descreve o sistema.