Үй қорабы туннельді ашады және бұлттық серверге еш қиындықсыз жетеді. Бұлттық сервер үй қорабы соңғы рет бірдеңе жібергеннен кейін бір-екі минут бойы үй қолданбасына жете алады, содан кейін тоқтайды. WireGuard журналында ештеңе көрінбейді, қол алысу қатесі туралы хабарланбайды, ал туннельді қайта іске қосу оны аз уақытқа түзетеді. Бұл үлгі — сынған туннель емес, мерзімі бітетін карта, және төмендегі нұсқаулық бірдеңені өзгертуден бұрын мұны растайды.

Үлгінің бос тұру кезіндегі мерзім бітуі екенін растаңыз

Айыратын ерекшелік — уақыт. Егер кері байланыс үй теңдесі трафик жібергеннен кейін бірден жұмыс істеп, тыныш аралықтан кейін сәтсіз болса, жол дұрыс, ал ортадағы күй дұрыс емес. Егер ол ешқашан жұмыс істемесе, тіпті трафиктен кейін бірден де, бұл қате диагноз.

sudo wg show wg0 latest-handshakes
sudo wg show wg0 endpoints
sudo wg show wg0 transfer

Алғашқы екеуін үй теңдесі бірдеңе жібергеннен кейін бірден іске қосыңыз, бес минут күтіп, қайта іске қосыңыз. Кесте бойынша жаңарып отыратын, жаңа соңғы нүктесіз қол алысу уақыт белгісі туннельдің тірі екенін айтады. Өзгерген нәрсе — сырттан сұралмаған пакеттердің келу қабілеті, бұл туннельдің емес, жолдың қасиеті.

Содан кейін кері әрекет жасап, тасымалдау санауыштарын бақылаңыз. Егер бұлт жағы байттарды жіберіп, үй жағы ешқайсысын алмаса, пакет бұлттан шығып, жолда күйді сақтайтын құрылғыда өлді. Бұл — сіз іздеп жүрген қолтаңба. Егер екі санауыш та қозғалса, туннель пакетті жеткізді, ал күдікті — қолданба.

keepalive-ті роутердің артындағы теңдеске қойыңыз

Тұрақты keepalive-тер кесте бойынша кішкентай аутентификацияланған пакет жіберу арқылы NAT картасын және кез келген брандмауэр күйін тірі ұстайды. Параметр роутердің артындағы машинаға, оның қашықтағы теңдес үшін жазбасына тиесілі, өйткені дәл сол жақ өзінің шығыс пакетімен күйді жасайды.

[Peer]
PublicKey = <cloud peer public key>
AllowedIPs = 10.71.0.1/32
PersistentKeepalive = 25

Оны бар теңдес бөліміне біріктіріңіз. Бірдей ашық кілтпен екінші блок қосу — опцияларды қосудың жарамды жолы емес, және wg-quick оларды сіз үшін біріктірмейді. Құжатталған 25 секунд — кәдімгі UDP мерзімдерінің астында тұру үшін таңдалған мысал, ерекше мағынасы бар мән емес.

Сол директиваны бұлт жағына қою бұл мәселеге көмектеспейді. Сол теңдестің пакеттері қазірдің өзінде ашық мекенжайдан келеді, сондықтан маңызды бағытта сақтайтын карта жоқ. Ол трафикті қосады және ештеңені өзгертпейді.

Аралықты болжаудың орнына таймерлерді оқыңыз

keepalive-тер жұмыс істейді, өйткені олар күй мерзімі біткеннен жиірек келеді. Бұл мерзімді сізге шынымен қажет санға айналдырады, ал Linux-та оны аударма жасайтын құрылғыдан оқуға болады:

sysctl net.netfilter.nf_conntrack_udp_timeout
sysctl net.netfilter.nf_conntrack_udp_timeout_stream
sudo conntrack -L -p udp --dport 51820

Бірінші мән — тек бір бағытта көрілген UDP ағынының мерзімі, ал екіншісі жауаптар байқалғаннан кейін қолданылады. Екеуі де әдетте қысқа, ал үнсіз қалған карта сіздің ағыныңызға қатысты нұсқаны ұстанады.

Бұл санды аралығыңызбен салыстырыңыз. 30 секундтық мерзім астында 25 секундтық keepalive жұмыс істейді; сол keepalive 15 секундтық мерзім астында жұмыс істемейді. Қанша қайталасаңыз да, бұл арифметика өзгермейді. Кейбір тұтынушылық роутерлер мен ұялы операторлар Linux әдепкісінен әлдеқайда қысқа мәндерді пайдаланады, сондықтан бір желіде жұмыс істейтін конфигурация екіншісінде сәтсіз болады.

ObservationWhat it meansReasonable response
Works after traffic, dies when idleMapping or firewall state expiringLower the keepalive interval
Never works, even immediatelyNo return route, listener or firewallStop tuning keepalive
Works for hours, then dies onceCarrier-side translation or address changeCheck the endpoint and logs together

Тыңдаушыны және брандмауэрді бөлек тексеріңіз

Тірі карта қажет және жеткіліксіз. Үй қорабындағы қолданба дұрыс мекенжайда тыңдауы керек, ал хост брандмауэрі пакетті шифрдан шығарғаннан кейін рұқсат етуі керек.

sudo ss -lntup | grep 8080
sudo wg show wg0 allowed-ips
curl -sS -m 5 http://10.71.0.2:8080/health

Егер сокет тек физикалық интерфейс мекенжайына байланған болса, туннель мекенжайына емес, туннельге келетін пакеттер брандмауэрге сұрақ қойылмай тұрып тасталады. Бұл ақау бұлт жағынан карта мәселесіне дәл ұқсайды және кез келген keepalive түзетуіне төтеп береді.

Рұқсат етілген тізімді тексеру қарсы бағытта да сондай маңызды. Бұлт теңдесі жауап бермекші болса, үй туннелінің мекенжайын дереккөз ретінде рұқсат етуі керек, ал үй теңдесі бұлт мекенжайын меже ретінде рұқсат етуі керек. keepalive пакеттері — аутентификацияланған трафик және олар бірдей ережелерді қолданады, сондықтан жұмыс істеп тұрғандай көрінетін keepalive жұмыс істемейтін қолданбамен қатар өмір сүре алады.

Өзгерісті енгізіп, оның шектерін біліңіз

Параметрді қолданыңыз, егер бұл сіздің жаңарту әдісіңіз болса, интерфейсті қайта іске қосыңыз, содан кейін лезде тестінің орнына бос тұру тестін қайталаңыз. Бұрын оқыған мерзімнен ұзағырақ күтіңіз, кері сұрау жасаңыз және санауыштардың екі ұшта да қозғалғанын растаңыз.

Аралықты және өлшенген мерзімді жанына жазып қойыңыз. Роутер микробағдарламасының болашақтағы өзгерісі немесе ұялы байланысқа көшу мерзімді өзгертуі мүмкін. Жазба — біреуге мәнді көшірудің орнына қайта шығаруға мүмкіндік беретін нәрсе. Бір жолдағы екі сан кейінірек бүкіл тергеуді үнемдейді.

Тұрақты keepalive-тер күйді қорғайды. Олар порт ашпайды, рұқсат етілген тізімге жазба қоспайды және тыңдаушының пайда болуына әкелмейді. Кері байланыс мүлдем жұмыс істемегенде, кінә сол үшеуінің бірінде, және WireGuard жылдам бастауы keepalive параметрін дәл сол тар шарттармен сипаттайды.

Қатысты мақалалар