Telefon pokazuje tunel kao povezan, klijent prijavljuje privatnu adresu, a prva stranica i dalje visi na pola učitavanja. Ta kombinacija šalje većinu ljudi u postavke šifriranja i temperature procesora, gdje zapravo ništa nije pokvareno. Tunel se podigao, dakle pregovaranje je završeno; nije uspio korak poslije toga, kada server pokušava predati pakete klijenta internetu. Prođite istim putem kojim idu ti paketi i nesklad je obično vidljiv u jednom redu NAT tabele.

Pođite od onoga do čega klijent može i ne može doći

Sa povezanog klijenta učitajte stranicu koja živi na javnom internetu i zabilježite da li pada odmah ili se zaglavi na pola. Zatim otvorite resurs na vlastitoj privatnoj adresi VPN servera i uporedite oba rezultata.

Adresa tunela koja odgovara na ping dok javni sajtovi ističu po vremenu znak je problema s prosljeđivanjem ili prevođenjem, a ne slomljenog rukovanja. Klijentov vlastiti panel stanja ne može ih razlikovati, jer zna samo da je kontrolni kanal podignut. Provjerite na serveru interfejs tunela pomoću ip -br addr show tun0 i potvrdite da dodijeljena adresa klijenta pada unutar pula koji ste konfigurisali. Ako se pul i adresa klijenta razlikuju, prvo to popravite, jer se svako pravilo ispod podudara s pulom.

Zatim pitajte server kroz koji bi interfejs došao do javne adrese. ip route get 203.0.113.9 ispisuje odabrani uređaj i izvor u svom prvom redu. Zapišite ime tog uređaja, jer je to vrijednost koju NAT pravilo mora sadržavati.

Pročitajte pravilo koje odlučuje izlaze li paketi

MASQUERADE prepisuje paket samo kada paket izađe kroz interfejs naveden u pravilu. Pravilo vezano za žičani uređaj ne čini ništa za saobraćaj koji izlazi preko Wi-Fi veze, a paket zadržava svoju privatnu izvornu adresu sve do uzvodnog rutera. Taj ruter nema povratnu rutu do vašeg pula tunela, pa odbacuje odgovor, a klijent vidi vezu koja se otvori i zatim umre. Simptom raste s tim koliko stranice stigne prije nego što zatreba prvi odgovor.

Izlistajte živuću tabelu i čitajte kolonu izlaznog interfejsa umjesto da samo tražite riječ MASQUERADE. Ispis u obliku dodavanja lakše je uporediti od formatiranog popisa:

ip -br addr show tun0
ip route get 203.0.113.9
sudo iptables -t nat -S POSTROUTING

Na Raspberry Pi-ju koji je nekad koristio Ethernet a sada koristi Wi-Fi, zastarjelo ime je gotovo uvijek cijela priča. Instalater je zabilježio koji je uređaj bio prisutan pri postavljanju, a sačuvani skup pravila ga ponavlja pri svakom podizanju. Uporedite uređaj iz pretrage rute s onim u pravilu prije nego što bilo šta drugo promijenite. Ako se poklapaju, interfejs nije vaš problem i treba da pređete na brojače u posljednjem dijelu. Ako se razlikuju, popravka je izmjena jedne riječi u datoteci trajnosti.

Popravite sačuvani skup pravila, ne samo onaj koji radi

Izmjena samo živeće tabele traje do sljedećeg restarta, što je tačno dovoljno dugo da vas uvjeri da je problem riješen. Pravila koja se vraćaju pri podizanju žive u datoteci koju paket za trajnost firewall-a ponovo učitava. Na Pi slikama zasnovanim na Debianu ta datoteka je obično /etc/iptables/rules.v4.

Napravite kopiju prije nego što je dodirnete, zatim zamijenite izlazni interfejs u redu MASQUERADE uređajem koji ste zabilježili, na primjer -o wlan0 umjesto -o eth0. Ostavite raspon izvora kako jeste, osim ako se vaš pul klijenata promijenio. Ponovo učitajte i potvrdite da pravilo sada navodi ispravan uređaj:

sudo cp /etc/iptables/rules.v4 /root/rules.v4.bak
sudo iptables-restore < /etc/iptables/rules.v4
sudo iptables -t nat -L POSTROUTING -v -n

Dvije susjedne postavke lako se zaborave. sysctl net.ipv4.ip_forward mora prijavljivati 1, a uzvodni ruter ne smije sam filtrirati privatne izvorne adrese.

Dokažite da pravilo reaguje, pa izolujte šta je još sporo

Brojači su jedini iskren dokaz da je pravilo pogodilo. Pokrenite opširni ispis, započnite preuzimanje na klijentu i pokrenite ga ponovo. Kolone paketa i bajtova pored vašeg pravila trebaju rasti, a pravilo koje ostaje na nuli još uvijek ne pogađa. Ako se brojači pomjeraju ali stranice i dalje padaju, uporedite raspon izvora sa stvarnim pulom pomoću grep -n "^server " /etc/openvpn/server.conf. Ako se pomjeraju i stranice se učitavaju ali je propusnost loša, prevođenje je gotovo a preostali problem je negdje drugo.

Uporedite dva prijenosa sa istog klijenta, jedan ka hostu na lokalnoj mreži i jedan kroz tunel ka tom istom hostu. Sporo u oba slučaja ukazuje na Pi-jev uzvodni link ili Wi-Fi vezu, a ne na VPN. Sporo samo kroz tunel ukazuje na MTU i ponovna slanja, koja možete pregledati pomoću ip -s link show tun0 prije nego što promijenite bilo koju kripto postavku.

Da poništite eksperiment, vratite kopiju i ponovo je učitajte, zatim potvrdite da su originalno pravilo i njegovi brojači vraćeni. Zapišite izlazni uređaj i naredbu za ponovno učitavanje u bilješke servera, jer sljedeća promjena uzvodnog linka ponovo otkriva isti nesklad. Pravilo koje navodi pogrešan uređaj ostaje nevidljivo dok saobraćaj ne zatreba.

Povezani članci