Већина покварених WireGuard конфигурација не греши у вредности; оне стављају исправну вредност на погрешну страну. Приватни кључ припада овој машини, peer носи јавни кључ друге машине, а адреса стоји у interface блоку иако описује где тунел живи. Читајте датотеку као два смера која се сусрећу, затим проверите шта је помоћна скрипта додала одозго. Сам протокол има мање поља од датотеке, а додатна вреди знати одвојено.

Interface кључеви описују ову машину

interface блок држи сопствени идентитет овог краја. PrivateKey је тај идентитет и никада не напушта хост; од њега се изводи одговарајући јавни кључ и управо га наводе други peers. ListenPort је место где ова страна прима руковања, зато два клијента иза једне адресе требају различите портове.

Address је адреса тунела на коју одговара овај хост, записана са дужином префикса јер ће бити и извор који ће користити. Погрешан префикс овде мења која одредишта хост сматра директно повезаним, и то даје дефекте који изгледају као рутирање, а не као конфигурација.

Све остало у [Interface] блоку са стварним клијентом обично додаје wg-quick: DNS, MTU, Table, и линије кука. То нису протоколна поља, а гола wg поставка их потпуно игнорише.

Сваки peer унос описује једну другу страну

Блок [Peer] је далека страна. PublicKey је изведени кључ те стране, никада њихов приватни кључ, а PresharedKey је опционална додатна тајна коју обе стране морају држати идентично. Endpoint је камо слати, а PersistentKeepalive тражи од овог хоста да по интервалу пошаље пакет када ништа друго не излази.

Две грешке објашњавају највећи део забуне овде. Копирање сопственог приватног кључа у peer блок чини да два краја деле један идентитет, а руковање пада на начин који се лоше логира. Endpoint остављање напољу на клијенту обично је намерно, јер сервер адресу учи из долазног руковања; остављање напољу на серверу који мора да започне није. Запамтите и да keepalive држи NAT мапирање отвореним и не побољшава пропусност нити смањује кашњење, па тридесет секунди додатних пакета не купује ништа када саобраћај већ тече.

AllowedIPs је рутирање, а не листа дозвола

AllowedIPs је криптокључно рутирање WireGuard-а. Напоље, одлучује који peer прима пакет на основу одредишта. Унутра, одлучује да ли се пакет који долази од тог peer-а прихвата на основу извора. Исто поље обавља оба посла, зато то није листа контроле приступа и није листа дозвољених сајтова.

Узак AllowedIPs на серверу за клијента значи да ће сервер прихватити само пакете који тврде те изворе и слати само та одредишта том клијенту. Проширите једну страну без проширења друге, и добијате тунел који се подиже и ништа не пропушта.

Шта wg-quick додаје око протокола

wg-quick чита исту датотеку и изводи мрежне кораке које протокол оставља оперативном систему. Додељује адресу interface-а, додаје руте изведене из AllowedIPs, записује подешавања резолвера и извршава команде кука по реду.

Тај слој објашњава класичну асиметрију. Датотека са 0.0.0.0/0 и линијом DNS даје клијенту подразумевану руту и резолвер, и не чини баш ништа са серверовим правилима прослеђивања или NAT-а. Та припадају сопственој конфигурацији сервера, и ниједна клијентска датотека не може да их пружи.

Држите једног власника датотеке. Ручно уређивање док је SaveConfig укључен значи да ваша измена нестаје следећи пут када interface падне, а interface вам неће рећи да се то догодило.

Проверите примењено стање, не датотеку

Датотека је намера. Примењено стање је оно што држи језгро, и она се разилазе сваки пут када је помоћник, drop-in или кука нешто уредио после активирања.

Читајте живо стање и адресирање заједно, затим упоредите обоје са оним што сте написали:

sudo wg show
ip -4 addr show dev wg0
ip -4 route show dev wg0
grep -v "^#" /etc/wireguard/wg0.conf

Ако је листа peer-ова празна, interface је створен без примене његове конфигурације. Ако адресе и руте постоје, али бројачи остају на нули, датотека се учитала и руковање пада, што је проблем кључа или крајње тачке, а не редоследа секција. Упоредите два приказа пре уређивања, јер је јаз између њих обично стварни дефект.

Повезани чланци