WireGuard-Handshake funktionéiert, awer keen Internet: verfolleg de Paket
Den Handshake beweise just Schlësselen an Erreechbarkeet. Verfolleg ee Paket vun AllowedIPs duerch d’Weiderleeden, NAT an de Retourwee, fir ze gesinn wou et stoe bleift.
Den Tunnel ass op, wg show mellt een rezenten Handshake, du kanns d’Tunneladress vum Server pingen, an et äntwert näischt drop. Den éischten Instinkt ass d’Schlësselen nei ze generéieren oder d’Konfiguratioun nach eng Kéier ze deelen. Dat verännert just deen Deel vum Wee, deen schonn noweislech funktionéiert.
Een ofgeschlossenen Handshake seet, datt déi zwou Säiten iwwer d’Schlësselen eens sinn, datt UDP den Endpunkt erreecht an datt d’Krypto-Routing de Paket akzeptéiert. Et seet näischt do driwwer, ob de Paket duerno de Server ka verloossen.
Verfolleg also ee Paket amplaz ze roden. Et gëtt véier Plazen, wou et stierwe kann, an all een hannerléisst eng aner Spuer.
Wat den Handshake wierklech beweise
WireGuard ass en UDP-Protokoll, deen eng Sëtzung mat engem Noise-Handshake opbaut an duerno d’Pakete fir ee Peer verschlësselt. Wann wg show een Handshake vun e puer Sekonnen an een eropgeheien Transferzähler weist, sinn den Endpunkt, d’Schlësselen an den ëffentleche Schlëssel vum Peer all richteg.
Wat et net beweise kann: datt däi Client iwwerhaapt Internetverkéier an den Interface schéckt, datt de Server bereet ass en weiderzeleeden, oder datt eng Äntwert de Wee zréck fënnt. Dat sinn Entscheedungen vum Kernel-Routing a vun der Firewall, an se gi baussen dem Tunnel geholl.
Dofir ass de Ping op d’Tunneladress vum Server sou en täuschenden Test. Dee Paket ass un de Server selwer adresséiert, also en ende lokal. Et brauch ni Weiderleeden, ni Iwwersetzung an ni een Retourwee vum Internet.
AllowedIPs ass eng Routing-Entscheedung
Um Client mécht AllowedIPs zwou Aufgaben. Et ass d’Kryptoschlëssel-Routingtabell, déi decidéiert, wéi eng Ziladressen an den Tunnel vun dësem Peer ginn, an et ass d’Lëscht vun den Quelladressen, déi de Peer vun dir akzeptéiert. Wann d’Konfiguratioun vum Client just 10.8.0.0/24 opzielt, kommen ëffentlech Ziler ni an den Interface an deng normal Standardroute féiert se baussen dem Tunnel. Dann funktionéiert den Tunnel perfekt an et mécht näischt vun deem, wat s du wollts.
Kuck wat de Client wierklech installéiert huet, amplaz wat d’Konfiguratiounsdatei seet:
wg show wg0 allowed-ipsip route get 1.1.1.1
Déi zweet Kommando ass déi entscheedend. Wann d’Äntwert däi physeschen Interface an de gewéinlechen Gateway nennt, gëtt de Paket net getunnelt an keng Ännerung um Server wäert dat reparéieren. Füüg 0.0.0.0/0 fir IPv4 a ::/0 fir IPv6 getrennt bäi; eng Regel, déi alles fir eng Famill fänkt, léisst déi aner op hirem urspréngleche Wee, an dat ass eng heefeg Ursaach fir een funktionéierenden IPv4-Tunnel an eng festgehale IPv6-Sich.
Wou de Paket um Gateway stierft
Wann d’Route richteg ass an de Paket nach ëmmer néierens hinkënnt, kënnt en um Server un a bleift do stoen. Véier Kontrolle decke meescht Gateways of.
Weiderleeden. sysctl net.ipv4.ip_forward mat enger 0 als Äntwert ass déi klassichesch Ursaach, a vill Distributiounen hunn nach ëmmer 0 als Standard. Et muss 1 sinn, a permanent an enger sysctl-Datei gesat ginn, net mat enger Kommando, déi beim Neistart verschwënnt. D’Weiderleede vun IPv6 ass en eenzelen Ëmschalter.
D’Filterpolitik. Eng FORWARD-Ketten mat enger Standard-Drop-Politik wäert den Tunnelverkéier verwerfen, awer de Verkéier zum Host selwer erlaben, wat genau zum Symptom passt. Liest de liewege Reegelsaz, net eng gespäichert Datei: nft list ruleset oder iptables -S.
Iwwersetzung oder Routing. Cliente mat private Tunneladressen brauchen entweder Quell-NAT um Ausgangsinterface vum Server oder ee geroutete Prefix, deen dat iewescht Netzwierk zréckzegi schéckt. D’Wiel tëscht deenen zwee follegt dem Adressplang. MASQUERADE bäizefügen an engem Netzwierk, dat däi Prefix schonn zréckroutet, ass harmlos awer sënnlos, an et ewechloossen do wou keng Route existéiert, léisst d’Äntwerten un eng onroubar privat Rei adresséiert.
De Retourwee. Bei gerouteten Designs brauch den ieweschten Router eng Route, déi op däi Server weist. D’Netzwierk vum Provider kann dat och blockéieren: verschidde Clouden aktivéieren eng Quell- an Zilkontroll op der Instanz, déi Pakete stëll verwerft, deenen hir Quell net d’Adress vun der Instanz selwer ass, bis déi Kontroll desaktivéiert gëtt.
DNS fält anescht aus wéi Routing
E Paket op eng bekannt Adress an eng Numm-Sich sinn zwee verschidde Feeler, an d’Feelmeldungen féieren an entgéintgesate Richtungen an d’Ier. Wann ping 1.1.1.1 funktionéiert an e Browser näischt ka lueden, ass d’Route gutt an d’Numm-Opléisung net. Wann de Ping selwer fält, ass DNS irrelevant an s du bass zréck am virege Kapitel.
wg-quick kann ee Resolver aus der Linn DNS = an der Konfiguratioun setzen, an systemd-resolved huet säin eegent Verhalen pro Verbindung. Eng VPN, déi de Resolver mat enger Adress iwwerschreift, déi nëmmen am Tunnel erreechbar ass, wäert all Sich an deem Abléck fale loossen, wou den Tunnel fält, wat ausgesäit wéi wann den Tunnel den Internet géif brooch maachen.
| Symptom | Layer to inspect |
|---|---|
| Tunnel address pings, nothing else does | Client route, then gateway forwarding |
| Public IP pings, hostnames fail | Resolver selection and reachability |
| Handshake completes, no reply ever | FORWARD policy or missing NAT on the server |
| Small requests work, large transfers stall | MTU and TCP MSS clamping |
Eng Rei, déi Beweiser bréngt
Maach d’Kontroll um Client fir d’éischt, well et eng Kommando ass an se d’Halschecht vun de Méiglechkeeten eliminéiert. Confirméier duerno, ob de Server iwwerhaapt als Internet-Ausgang geduecht war; en Gateway, dee fir private Zougang gebaut gouf, ass net futti, wann ëffentlech Ziler feelen.
Um Server, kuck den Interface, während s de vum Client e Ping schécks: tcpdump -ni wg0 icmp sollt d’Ufro weisen, an tcpdump -ni eth0 icmp sollt weisen, datt se erausgeet, iwwersat oder net. Wann se op der éischter erschéngt an ni op der zweeter, ass de Stopp lokal um Server. Wann se erausgeet an keng Äntwert zréckkënnt, ass de Problem weider uewen, an dat ass en anert Gespréich.
Zum Schluss maach, datt d’Korrektur en Neistart iwwersteet. Weiderleeden gehéiert an eng sysctl-Datei, Firewallregele gehéieren an den Déngscht, deen se lued, a Clientrouten gehéieren an d’Konfiguratioun, déi den Interface eropbréngt, an net an eng Shell, déi s de vergiiss. Verbann dech nei, widderhuel déi selwecht zwee Tester a confirméier, datt d’Zähler sech beweegen.