WireGuard теңдесі қолжетімсіз, ал екіншісі жұмыс істейді: тексеру тізімі
Жұмыс істеп тұрған теңдес тек өз кілтін, соңғы нүктесін және бағыттарын дәлелдейді. Кез келген ережені кеңейтпес бұрын сәтсіз теңдестің AllowedIPs параметрін, хабтың қайта бағыттауын және ішкі бастауды салыстырыңыз.
WireGuard-тың бір теңдесі трафикті өткізеді, екіншісі қол алысуды аяқтайды, бірақ туннельдің артындағы ешнәрсеге ешқашан жетпейді. Жұмыс істеп тұрған теңдес сізге интерфейс, UDP порты және сервер кілті, бәлкім, тәртіпте екенін айтады. Ол екінші теңдестің AllowedIPs параметрі, оның ішкі бастау адресі немесе олардың арасындағы қайта бағыттау ережелері туралы ештеңе айтпайды. Тізімді ретімен өтіп, шарты орындалмайтын бірінші қадамда тоқтаңыз.
1-қадам: Пакет өтуі тиіс жолды жазып алыңыз
Бір хабтағы екі клиент бір-біріне автоматты түрде жетпейді. Хаб және сәуле құрылымында сервер пакетті wg0-де қабылдайды және оны қайтадан wg0-ден басқа теңдеске жіберуі керек, бұл IP қайта бағыттауды және қайта бағыттау ережесін талап етеді. Тікелей теңдес-теңдес құрылымында әр тарапқа екіншісінің соңғы нүктесі және екіншісінің туннель адресі AllowedIPs ішінде қажет. Кез келген конфигурацияны оқымас бұрын қай құрылымды жөндеп жатқаныңызды шешіңіз.
Күтілетін жол қайда қарау керектігін де айтады. Егер пакет хабтан өтуі керек болса, сәтсіз секіріс — жіберушінің AllowedIPs параметрі, хабтың қайта бағыттауы немесе қабылдаушының AllowedIPs параметрі. Егер ол тікелей жүруі керек болса, хаб маңызды емес және екі теңдестің де соңғы нүкте өрістері маңызды.
2-қадам: AllowedIPs параметрін екі жақта салыстырыңыз, тек бір жақта емес
WireGuard AllowedIPs параметрін маршруттау кестесі ретінде де, рұқсат тізімі ретінде де пайдаланады. Жіберу кезінде туннельді таңдау үшін межелі адрес теңдестің AllowedIPs ішінен ізделеді; қабылдау кезінде ішкі бастау адресі жіберуші теңдестің AllowedIPs ішіне кіруі керек, әйтпесе пакет тасталады. Кез келген жақта диапазон жетпесе, бірдей белгі пайда болады: тасымал жұмыс істейді, жүк жоғалады.
Файлды емес, тірі күйді оқыңыз, өйткені қайта жүктеу үнсіз сәтсіз болуы мүмкін: sudo wg show wg0 allowed-ips. Серверде сәтсіз теңдестің жазбасы оның туннель адресін қамтуы керек, мысалы 10.90.0.3/32. Клиентте сервер теңдесінің жазбасы сіз тексеретін межені қамтуы керек, ол хабтың туннель адресі ме, әлде қашықтағы қосалқы желі ме. Қабаттасатын диапазондар іздеуді екіұшты етеді және сіз ойламаған теңдесті таңдауы мүмкін, сондықтан оларды бөлек ұстаңыз.
3-қадам: Ішкі бастау адресін тексеріңіз
10.90.0.3 адресін wg0 арқылы маршруттайтын, бірақ пакеттерді өзінің Wi-Fi адресінен жіберетін клиентті қабылдаушы қабылдамайды, өйткені бастау теңдестің AllowedIPs параметріне сай емес. Ядро шын мәнінде нені таңдайтынын ip route get 10.90.0.3 from 10.90.0.2 арқылы, ал туннель интерфейсіне берілген адресті ip -brief addr show wg0 арқылы растаңыз.
Қабылдаушы Linux хостта кері жол сүзгісі екінші қақпа болып табылады. Қайту маршрутына ие интерфейсте қатаң rp_filter қайту жолы келген интерфейске сай келмейтін туннель трафигін тастауы мүмкін. Оны өшіру алдында әсер етуші мәнді тексеріңіз; көптеген топологияларда дұрыс түзету — бағыт, ал босаңсытылған сүзгі емес.
4-қадам: Хабтың қайта бағыттауын және қайту жолын қарап шығыңыз
Егер хаб теңдестер арасында қайта бағыттауы керек болса, ядроға net.ipv4.ip_forward=1 қажет, ал брандмауэр қайта бағытталған ағынды қабылдауы керек: wg0-ге кіру, wg0-ден шығу, жіберушінің туннель адресінен қабылдаушынікіне. Жиі кездесетін ақау — UDP 51820 қабылдайтын кіру ережесі бар, бірақ қайта бағыттау ережесі жоқ], сондықтан қол алысу сәтті болады да, жүк өледі. Әсер етуші ережелерді sudo nft list ruleset немесе брандмауэр менеджеріңіздің баламасымен тізімдеңіз.
Содан кейін жауапты тексеріңіз. Межелі хосттың жіберушіге қайту бағыты болуы керек, не хаб арқылы, не өз шлюзі арқылы. Егер хаб туннель қосалқы желісін де NAT етсе, аударманың қайта бағытталған ағынға қолданылатынын және жауап күй мерзімі бітпей тұрып хабқа жететінін растаңыз. Кілт мәселесіне ұқсайтын бір бағытты ақау көбінесе осы қайту бағыты болып шығады.
Соңында қол алысуды деректерден ажыратыңыз. Қол алысуды аяқтайтын, бірақ үлкен жіберілімдерде тұрып қалатын теңдестің әдетте дәл сол жолда MTU немесе MSS мәселесі болады, AllowedIPs мәселесі емес. Алдымен шағын ping-мен, содан кейін толық өлшемді ping-мен тексеріп, екі теңдесті салыстырыңыз.
5-қадам: Бір нәрсені өзгертіп, жұмыс істеп тұрған теңдесті бүлінбеген күйде қалдырыңыз
Сәтсіз жолда бір ғана өзгеріс жасап, екі теңдесті қайта тексеріңіз. Әр теңдестің AllowedIPs параметрін 0.0.0.0/0-мен ауыстыру — бұрыннан жұмыс істеп тұрған теңдесті бұзудың ең жылдам жолы, өйткені бұл сол интерфейстегі барлық трафиктің маршруттау шешімін өзгертеді. Сол бір жазбаны өңдеп, қайта жүктеп, тірі күйді қайта оқыңыз.
Қай жолдың сәтті болғанын, қайсысының сәтсіз болғанын және әрқайсысының нақты команда шығысын жазып алыңыз. Бұл салыстыру VPN бұзылды деген жалпы есептен құндырақ, және келесі адам ең алдымен соны сұрайды.