Port 1194 sa už používa: komu patrí tento socket OpenVPN?
Chyba, že adresa sa už používa, patrí lokálnemu spojeniu. Porovnajte transport, adresu a menný priestor, než zmeníte porty alebo zastavíte nesprávny proces.
Spustite rovnaký profil servera dvakrát a druhý proces skončí s chybou, že adresa sa už používa pre port 1194. V obvyklom prípade konflikt vytvorilo diagnostické spustenie a pôvodná inštancia stále bez problémov obsluhuje klientov. Tento príbeh vysvetľuje veľkú časť týchto hlásení a oplatí sa ho rozpoznať skôr, než čokoľvek reštartujete. Je to aj najlacnejší variant riešenia.
Chyba opisuje lokálne spojenie a nič za ním. Nie je dôkazom, že poskytovateľ port blokuje, že klient poslal nesprávne heslo alebo že reťazec certifikátov je poškodený.
Prečítajte si presnú chybu spojenia
Dve chyby z tejto rodiny znamenajú rôzne veci a ich zámena vás pošle na nesprávnu vrstvu. „Adresa sa už používa“ hovorí, že iný socket drží požadovaný koncový bod. „Adresa nie je dostupná“ hovorí, že požadovaná adresa na tomto hostiteľovi ešte neexistuje, čo je problém pripravenosti, nie duplikát.
systemctl status openvpn-server@lab --no-pager
journalctl -u openvpn-server@lab -n 20 --no-pager
Skopírujte text chyby, než čokoľvek zmeníte, vrátane adresy a portu, ktoré uvádza. Služba, ktorá čaká na objavenie rozhrania, bude druhú chybu opakovane zapisovať a potom sa úspešne spojí, keď adresa existuje; služba, ktorá zapisuje prvú chybu, nikdy neuspeje, kým sa duplikát nevyrieši. Zapísať si, ktorú z nich ste videli, nič nestojí a ušetrí zbytočné hľadanie rozhrania.
Zmapujte socket, nie port
Číslo portu je neúplný inventár. Koncový bod je transport, adresná rodina, lokálna adresa a port, to všetko v jednom sieťovom mennom priestore. UDP poslucháč a TCP poslucháč na rovnakom čísle sú rôzne sockety a dva procesy na rovnakom čísle v rôznych menných priestoroch sa nikdy nestretnú.
ss -lunp | grep -F ':1194'
ss -ltnp | grep -F ':1194'
ss -lunp 'sport = :1194'
Najprv spustite transport, ktorý profil skutočne používa. Potom sa pozrite na stĺpec lokálnej adresy, nie len na číslo: naviazanie na zástupnú adresu pokrýva všetky lokálne adresy, takže druhý proces žiadajúci jednu konkrétnu adresu sa s ním môže zraziť, aj keď sa vytlačené reťazce líšia. Možnosti opätovného použitia socketu a pravidlá platformy rozhodujú o presnom výsledku, a preto by to malo byť pozorovanie, nie pravidlo, ktoré aplikujete na každé nasadenie.
Zistite, ktorý proces ho vlastní
Číselné koncové body plus informácie o procese identifikujú vlastníka, keď vám to oprávnenia dovolia, a vlastník je to, čo potrebujete, nie názov programu. Dva procesy OpenVPN môžu spúšťať rôzne profily a ten, ktorý drží poslucháča, môže byť ten, ktorý by ste čakali najmenej.
sudo ss -lunp 'sport = :1194'
sudo fuser -v -n udp 1194
Porovnajte, čo nájdete, so správcom služieb, behovým prostredím kontajnerov alebo terminálovým procesom zostávajúcim z predchádzajúceho testu. Neprítomnosť podrobností o procese nie je dôkazom, že socket nemá vlastníka; zvyčajne znamená, že dopyt prebehol bez dostatočného oprávnenia. Rovnako tak výpis iba TCP neodstraňuje konflikt UDP, preto skontrolujte transport uvedený v chybe. Samotný názov procesu nikdy nepovie, ktorý profil bol načítaný, a práve profil rozhoduje o koncovom bode.
Jeden vlastník alebo dve navrhnuté inštancie
Ak nasadenie zamýšľa jeden server, udržujte jedného vlastníka životného cyklu a čítajte žurnál tejto inštancie alebo nakonfigurovaný log namiesto spúšťania druhej kópie na jej pozorovanie. Keď je riadené spustenie v popredí skutočne nevyhnutné, zámerne zastavte spravovanú inštanciu a predtým zohľadnite klientov, ktorým slúži.
Ak sú zamýšľané dve inštancie, dajte im odlišných poslucháčov a odlišné všetko ostatné: fondy adries, virtuálne rozhrania, smerovaciu politiku a vlastníctvo konfigurácie. Iný port sám oddeľuje iba socket a oba servery sa budú stále hádať o rovnaký fond a rovnaké trasy.
Tri skratky stoja za zmienku, pretože sa objavujú v každej diskusii o tejto chybe. Nezabíjajte ľubovoľný PID, ktorý vyzerá ako vinník. Nezapínajte zdieľanie socketu, aby ste správu umlčali. Neprepínajte profil servera na klientsku nespojenú konfiguráciu, pretože tým chyba spojenia zmizne; server prestane byť dostupný spôsobom, ktorý sa diagnostikuje ťažšie ako pôvodný konflikt.
Zmena portu je legitímna odpoveď len vtedy, keď je nový poslucháč súčasťou schváleného návrhu, ktorý zahŕňa pravidlo presmerovania a klientsky koncový bod. Ak neboli aktualizované, presunuli ste konflikt na miesto, kde ho nikto nenájde.
Overte spojenie skôr než čokoľvek iné
Po obmedzenej oprave overte, že zamýšľaná inštancia je aktívna, že jej poslucháč sa objavuje na očakávanom transporte a že klient sa môže pripojiť. Úspešné spojenie dokončuje len fázu lokálneho socketu; nič nepotvrdzuje o autentifikácii ani o prevádzke po zdvihnutí tunela.
ss -lunp 'sport = :1194'
systemctl is-active openvpn-server@lab
journalctl -u openvpn-server@lab -f
Ak socket existuje a klient stále zlyháva, zostávajúci problém je nižšie po prúde a chyba spojenia je teraz minulosťou. Práve toto oddelenie je zmyslom toho najprv prečítať presnú správu: jedna chyba, jedna vrstva, jeden vlastník. Čítajte to tak a ďalší príznak začne zo známeho stavu, nie z dohadu.