Интерфејс је подигнут, али wg-quick није успео: шта даље
Неуспела јединица може да остави полуконфигурисан тунел. Прочитајте први корак који не успева, одлучите да ли да чистите или поправљате, и то докажите захтевом.
Јединица је црвена, интерфејс постоји, а тунел углавном ради, што је најзбуњујућа могућа комбинација. Подешавање је низ: прво се ствара интерфејс, затим долазе адресе, руте, подешавања разрешивача и све hook команде. Неуспех на четвртом кораку оставља прва три на месту, па је име интерфејса доказ да је покретање почело, а не да је завршено. Једна додатна чињеница би сачувала од забуне: корак који је неуспео.
Делимично стање је уобичајен неуспех
Такво понашање треба очекивати, а не третирати као оштећење. Интерфејс је најјефтинији део подешавања и најлакше га је оставити за собом, а управо он чини да машина изгледа полуфункционално.
Оно што још не постоји је све што је дошло после неуспелог корака. Ако је неуспех био у фази разрешивача, адресе и руте постоје, а DNS не. Ако је то била рута, тунел има адресу и никакав пут кроз њу.
Последица је машина која одговара на неке тестове и не успева на другима, па људи закључују да услуга трепери, иако никада није успешно покренута. Услуга која никада није завршена не може да трепери. Може само изнова да не успева из истог разлога.
Пронађите први корак који је неуспео
Читајте журнал јединице, а не само тренутни статус, и читајте га од почетка неуспелог покретања. Последњи ред вам каже излазни код; прва грешка каже шта поправити.
Ове команде исписују стање јединице, журнал подизања за ту јединицу и живо стање тунела:
systemctl status wg-quick@wg0
journalctl -u wg-quick@wg0 -b --no-pager | tail -40
wg show
ip -4 addr show dev wg0Грешка разрешивача, рута која већ постоји, hook који је изашао са кодом различитим од нуле и неуспех рашчлањивања конфигурације појављују се сви у том прозору, и сваки именује своју компоненту. Нагађање само из стања интерфејса игнорише све те информације.
Три услова која одлучују поправку
Одлучите да ли чистите, поправљате на лицу места или уклањате јединицу из путање подизања, и одлучите то пре него што било шта откуцате.
Ако је интерфејс покварен, а конфигурација исправна, очистите и почните изнова. Ако је конфигурација погрешна, исправите је и ипак прво очистите, јер покретање другог управљача над делимичним стањем ствара два власника за један интерфејс. Ако је неуспех системска компонента која недостаје, попут помоћника разрешивача који машина нема, намерно инсталирајте или уклоните зависност, уместо да уређујете јединицу док не престане да се жали.
Та три случаја покривају већину онога што изгледа као мистериозна црвена јединица. Разликујуће питање је да ли би исти неуспех настао на машини са чистим стањем, а одговор обично долази из првог реда грешке.
Очистите пре него што покушате поново
Нови покушај над постојећим стањем може да не успе из новог разлога и сакрије првобитни. Спустите интерфејс истим алатом који га је створио, па потврдите да ништа није остало.
Не бришите неповезане интерфејсе и не ресетујте мрежни стек домаћина. Оба су велики потези за поправку малог објекта и претварају један неуспели тунел у машину чије друге везе треба поново успоставити. Исправан обим је један интерфејс и јединица која га поседује. Све шире захтева разлог записан пре него што се догоди.
Докажите тунел, а не јединицу
Зелена јединица значи да је низ покретања изашао са нулом. То не значи да је пакет стигао на другу страну, нити да је разрешивач подешен онако како сте намеравали.
Пошаљите захтев кроз тунел и прочитајте стање које га је створило:
systemctl is-active wg-quick@wg0
wg show wg0 latest-handshakes
ping -c 3 10.63.0.1
resolvectl query internal.example.netРуковање без одговора вам ипак каже да се тунел образовао и да далека страна ћути, што је другачији проблем од јединице која никада није покренута. Држите стање јединице, руковање и резултат захтева у једном запису, јер они не успевају независно и само комбинација описује систем.