Tuščias naujausio rankos paspaudimo laukas paprastai reiškia, kad sąsaja nuo paleidimo nebaigė jokio rankos paspaudimo, o tai apie konfigūraciją pasako mažiau, nei atrodo. WireGuard tyli tol, kol paketui reikia išeiti per sąsają, todėl neveiklus peer, neturintis ko siųsti, praneša būtent tai. Nustatykite, ar kas nors iš tikrųjų buvo pasiūlyta, prieš tikrindami raktus.

Bandymas yra leistinas paketas link paskirties vietos, kurią peer turėtų pernešti. Visa kita tame būsenos ekrane apibūdina ketinimą, o ne veiklą.

Neveikli sąsaja neturi ko pranešti

WireGuard rankos paspaudimus atlieka tingiai: pirmasis paketas, kuriam reikia tunelio, pradeda mainus, o sąsaja iki tol tyli. Peer, kuris buvo sukonfigūruotas ir niekada nenaudotas, rodo tuščią rankos paspaudimą, nulį gautų baitų ir didėjantį tarpą nuo paskutinio. Tokia būsena sveika neveikliam klientui ir nerimą kelia tik tuo atveju, jei tikėjotės, kad srautas jau tekėjo. Patikrinkite ir perdavimo skaitiklius, nes jie atskiria nieko-neišsiųsta nuo bandyta-ir-nepavyko.

Jei skaitikliai abiejose pusėse yra nulis, problema yra aukščiau tunelio. Niekas nepasiekė sąsajos, kad ką nors sužadintų.

Sužadinkite srautą, kurį peer leidžiama pernešti

Pasirinkite adresą peer leidžiamų prefiksų viduje, vietiniame kompiuteryje, ir patvirtinkite, kad maršrutizavimo lentelė jį siųstų per sąsają. Paskirties vieta už tų prefiksų sukuria įprastą maršrutizuotą užklausą visiškai be WireGuard dalyvavimo. Naudokite greitai atsakančią paslaugą, pavyzdžiui, ping ar trumpą TCP ryšį, kad bandymas turėtų matomą pradžią ir pabaigą. Tada dar kartą perskaitykite rankos paspaudimo eilutę, o ne žiūrėkite į ekraną ir laukite.

ip route get 10.60.9.5
ping -c 3 -W 2 10.60.9.5
wg show wg0 latest-handshakes
wg show wg0 transfer

Maršruto užklausa svarbesnė už ping. Jei ji nurodo fizinę sąsają, paketas niekada nepateko į tunelį, o tuščias rankos paspaudimas yra maršrutizavimo atsakymas, ne kriptografinis. Sutaisykite maršrutą prieš derindami peer.

Palyginkite raktų porą ir galinį tašką

Kai srautas tikrai pasiūlomas, kita patikra yra tapatybė. Vietinis privatusis raktas turi atitikti viešąjį raktą, kurį leidžia kita pusė, sukonfigūruotas nuotolinis viešasis raktas turi identifikuoti numatytą peer, o bet koks iš anksto bendrinamas raktas turi sutapti abiejuose galuose. Vieno simbolio skirtumas base64 rakte sukuria peer, kuris atrodo sukonfigūruotas ir niekada nebaigia mainų. Lyginkite su tiekimo įrašu, o ne generuokite raktus iš naujo, nes naujas raktas panaikina kiekvieną peer, kuris pasitikėjo senuoju.

Galinis taškas reikalauja tokios pačios patikros: pagrindinio kompiuterio vardas, adresas, UDP prievadas ir šeima, naudojama jam pasiekti. Pasenęs adresas ar neteisingas prievadas duoda tylą, o ne pranešimą.

Stebėkite išorinį UDP kelią

Rankos paspaudimas keliauja kaip UDP link galinio taško, todėl išorinis kelias turi jį pernešti. Toliau pateiktos komandos tikrina, ar yra klausytojas, ar vietinė stekas išsiuntė datagramą ir kuris galinis taškas sukonfigūruotas. Vykdykite fiksavimą sužadindami srautą, o ne prieš tai.

ss -lunp | grep 51820
sudo tcpdump -ni eth0 udp port 51820
wg show wg0 endpoints
conntrack -L -p udp | grep 51820

Fiksavimas, rodantis inicijavimą be atsakymo, nurodo už kompiuterio ribų, nes tolimasis galas arba neklauso, arba filtruojamas, arba neteisingai adresuotas. Fiksavimas, kuris nieko nerodo, reiškia, kad paketas niekada neišėjo, o tai grąžina prie maršruto ir bet kurio naudojamo socket žymės. Kai administruojate abu galus, koreliuokite bandymą pagal laiko žymą su siauru fiksavimu serveryje, o ne bendru. TCP prievado testas čia nieko neįrodo, nes protokolas yra tik UDP.

Kai tik pasirodys rankos paspaudimas, išbandykite programą per tunelį, nes baigti mainai įrodo tapatybę ir pasiekiamumą, o ne naudingą pralaidumą ar teisingą DNS. Išsaugokite būsenos išvestį prieš ir po pakeitimo, ir skirtumas taps jūsų įrodymu.

Susiję straipsniai