Повеќето расипани 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

Ако списокот со peers е празен, interface е создаден без неговата конфигурација да биде применета. Ако има адреси и рути, но бројачите остануваат на нула, датотеката се вчитала и ракувањето паѓа, што е проблем со клуч или крајна точка, а не со редоследот на секциите. Споредете ги двата прегледа пред уредување, зашто јазот меѓу нив обично е вистинскиот дефект.

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