VPN na svém portu nic neodpovídá a dvě možné příčiny vyžadují opačné opravy: buď socket neotevřel žádný proces, nebo socket existuje a něco mezi stroji packety zastavuje. Jediný příkaz rozhodne první polovinu této otázky, a proto patří před jakékoli pravidlo firewallu. Pořadí níže odstraňuje v každém kroku jedno vysvětlení místo toho, aby přidávalo další domněnku. Právě hádání mezi těmito dvěma mění desetiminutovou diagnostiku v celý večer.

Předpokládejte, že se na server přihlásíte a že klient je skutečný profil, nikoli skener. Oba předpoklady jsou důležité, protože obecná sonda nedokáže odpovědět na otázku specifickou pro protokol.

Existuje socket vůbec

Začněte tím, co služba říká o sobě: zda nastartovala a, užitečněji, jaká byla její první chyba při startu. Selhání parsování, chybějící klíč nebo chyba bindování zabrání tomu, aby naslouchač vůbec vznikl, a proces může skončit tak tiše, že se stavový řádek čte nejednoznačně. Unit, který hlásí active, není sám o sobě důkaz, protože hlavní proces může být živý, zatímco komponenta, která měla port bindovat, už to vzdala.

systemctl status openvpn-server@server --no-pager
journalctl -u openvpn-server@server -n 30 --no-pager
ss -lunp

Výpis socketů je fakt, na kterém stojí zbytek diagnostiky. Čtěte sloupec místní adresy, ne jen port, protože právě v tomto sloupci se objevují bindy na loopback a bindy na špatné rozhraní. Naslouchač, který existuje na 127.0.0.1, běží bezchybně a přesto je pro váš notebook neviditelný.

Na jaké adrese a v jaké rodině socket odpovídá

Dvě chyby vypadají z pohledu klienta stejně a vysvětlují většinu hlášení "nedostupné". Server bindovaný na loopback adresu nikdy nepřijme provoz z jiného stroje a server bindovaný pouze na adresu IPv4 nikdy neodpoví klientovi, který vytáčí adresu IPv6 stejného hostitele. Porovnejte adresu v tabulce socketů s adresou, kterou klient skutečně vytáčí, znak po znaku, než cokoli předpokládáte o politice.

Omezení výpisu na jeden port udrží čitelnost, když hostitel provozuje několik služeb. Filtr sport bere port spolu s transportem, který testujete:

ss -lun 'sport = :51820'
ss -ltnp 'sport = :1194'

Sloupec protokolu mění celou odpověď

Tabulka socketů se indexuje podle protokolu i portu a jsou to dva nezávislé záznamy. Služba odpovídající na TCP na 1194 vám nic neřekne o tom, zda něco naslouchá na UDP 1194, a klient vždy použije jen jeden z nich. Ověřte, který transport volí konfigurace serveru a který posílá profil klienta, a pak hledejte přesně ten řádek.

UDP má druhý záhyb: neautentizovaná sonda není chyba, na kterou služba musí odpovídat. Sken, který hlásí port jako tichý, změřil diskrétnost služby, nikoli její dostupnost, proto testujte skutečným klientem a profilem.

Jeden pokus, tři místa, kam se podívat

Z povoleného klienta udělejte přesně jeden pokus a zapište čas na sekundu. Pak pro to okno přečtěte tři zdroje: síťové pravidlo nebo konzoli poskytovatele, počítadla nebo log firewallu hostitele a vlastní log služby. Jednorázové provedení dělá tři výpovědi srovnatelnými a stojí méně než opakování pokusu, jehož čas nikdo nezaznamenal.

Dva výsledky ukazují opačnými směry. Pokud na hostitele nedorazil žádný packet, cesta ho zahazuje a naslouchač je irelevantní. Pokud packet dorazil na socket a služba ho odmítla, cesta je v pořádku a odpověď leží v protokolu, kryptografii nebo přihlašovacích údajích. Otevření portu pro službu, která už spojení přijala, dělá další diagnostiku těžší, ne snazší.

Pojmenujte fázi, než změníte pravidlo

Vyjednávání, které začne, a autentizace, která selže, je jedna porucha, a tunel, který se naváže, zatímco forwarding stojí, je úplně jiná. Pojmenovat fázi nejdřív udrží opravu úzkou: problém s přihlašovacími údaji nevyřeší pravidlo firewallu a problém s datovou cestou nevyřeší restart.

Použijte nejužší diagnostiku, která odpovídá na otázku. Dočasné pozorování packetů na jednom portu pod kontrolou administrátora je rozumný nástroj; vypnutí celého firewallu ne, protože výsledek už nelze ničemu připsat. Dokumentace ss pokrývá filtry použité výše a je levnějším prvním krokem než jakýkoli odchyt. Zapište, kterou ze dvou větví jste prokázali, a příští výskyt začne od známé odpovědi.

Související články