Партнерот што го додадовте со wg set одговара на ping цело попладне и исчезнува по рестартирањето. Ништо не се расипа: јадрото никогаш не го складирало тој партнер никаде освен во живиот интерфејс, и сѐ што го пресоздава интерфејсот при подигање го изградило од датотека што не сте ја допреле. Поправката не е уште еден wg set. Треба да откриете кој компонент го поседува интерфејсот, да ја уредите состојбата на тој компонент и потоа да докажете дека партнерот го преживува точно тој настан од животниот циклус што го отстранил.

Репродуцирајте го еднаш, намерно

Не поправајте проблем со рестартирање пред да можете да го видите како се случува. Ако има конзолен или надворешен пристап, запишете ја листата партнери, рестартирајте преку услугата што го поседува интерфејсот и споредете. Ако партнерот е сѐ уште таму, вашата промена веќе стигнала до постојаната состојба и дебагирате погрешен настан.

Запишете три факти додека го правите тоа: името на интерфејсот, единицата или профилот што го започнал, и дали бројачот на ракување на преживеаниот партнер е ресетиран. Ресетиран бројач значи интерфејсот е уништен и повторно создаден; непроменет бројач со отсутен партнер значи дека нешто ја уредило конфигурацијата под вашите нозе.

Кој го поседува интерфејсот?

Самиот WireGuard нема демон и нема конфигурациска датотека. Нешто над него при подигање го повикува wg, и тоа нешто е изворот на вистината. Вообичаени кандидати се [email protected], профил за врска на NetworkManager, мрежна единица специфична за дистрибуцијата или управувачки панел што ја пишува сопствената база на податоци.

Прашајте го системот, а не документацијата на вашата дистрибуција. systemctl status wg-quick@wg0 и nmcli connection show обично го решаваат ова со по една команда. Ако двете полагаат право на интерфејсот, ја најдовте грешката пред да уредите нешто: два сопственици ја препишуваат истата направа при секое подигање, и победува тој што ќе се изврши последен.

systemctl status wg-quick@wg0 --no-pager
grep -R "Address\|SaveConfig\|PostUp" /etc/wireguard/wg0.conf
nmcli -g NAME,TYPE connection show
wg show wg0 peers

Состојбата при работа и состојбата при подигање не се иста датотека

wg set управува со живата направа преку netlink. Не ја запишува /etc/wireguard/wg0.conf, профилот на NetworkManager или базата на панелот. Успешен wg show потоа докажува дека јадрото го прифатило партнерот, а не дека нешто ќе го врати.

Има и втора стапица во спротивниот правец. Опцијата SaveConfig на wg-quick ја запишува тековната состојба на интерфејсот назад во конфигурациската датотека кога интерфејсот се спушта. Кога е вклучена, измената направена во датотеката додека интерфејсот е подигнат може да биде пребришана од следното исклучување, и ќе се колнете дека таа линија била таму. Ако партнерот постојано се враќа, читајте ја датотеката по запирање, а не пред тоа.

NetworkManager се однесува повторно поинаку: тој го поседува профилот и го применува при активирање, па рачно уреден .conf покрај активна врска на NetworkManager е само декорација. Изберете еден сопственик за интерфејсот и дозволете другиот менаџер да го остави на мир.

Направете измената да стигне на двете места

Прво уредете ја постојаната состојба, потоа дозволете сопственикот да ја примени, а на крајот проверете ја живата состојба. Тој редослед значи дека неуспех на кој било чекор укажува на една работа наместо на три.

# 1. persistent state (wg-quick owner)
sudo vi /etc/wireguard/wg0.conf

# 2. apply through the owner, not by hand
sudo systemctl restart wg-quick@wg0

# 3. verify runtime matches the file
sudo wg show wg0
sudo wg showconf wg0

wg showconf ја печати живата конфигурација во истата синтакса што ја користи датотеката, што ги прави двете директно споредливи. Третирајте го тој излез како тајна: содржи приватни клучеви, затоа не го лепете во тикет или чет-канал. Споредете ги јавните клучеви на партнерите и дозволените IP, и проверете дека партнерот што намерно сте го отстраниле не се вратил.

Докажете дека го преживува настанот од животниот циклус

Рестартирајте преку сопственикот втор пат, па потврдете три одделни работи: партнерот се појавува во wg show, бројачот на ракување расте по сообраќај, и апликацијата што зависи од тунелот навистина одговара. Партнер наведен со застарено ракување е проблем со рутирање или клуч, не проблем со постојаност, и таа разлика заштедува бесмислена измена на конфигурацијата.

На крајот проверете што вратило рестартирањето. Рестартирање што оживува партнер што намерно сте го отстраниле е истата грешка со спротивен знак, и обично значи дека стара копија од конфигурацијата сѐ уште се вчитува од некаде. Запишете го сопственикот, патеката на датотеката, јавниот клуч на партнерот и командите за проверка до конфигурацијата, за да не го открие следниот човек повторно со рестартирање на продукциски хост.

Поврзани статии