Үй кутусу туннелди ачат жана булут серверине эч кандай кыйынчылыксыз жетет. Булут сервери үй кутусу акыркы жолу бир нерсе жөнөткөндөн кийин бир-эки мүнөт ичинде үй колдонмосуна жете алат, анан токтойт. 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 жөндөөсүн ушундай эле тар шарттарда сүрөттөйт.

Тектеш макалалар