Pokrenite isti serverski profil dvaput i drugi proces izlazi s greškom da je adresa u upotrebi za port 1194. U uobičajenom slučaju konflikt je stvorilo dijagnostičko pokretanje, a originalna instanca još uvijek sasvim dobro opslužuje klijente. Ta priča objašnjava veliki dio ovih izvještaja i vrijedi je prepoznati prije nego što se bilo šta ponovo pokrene. To je ujedno i najjeftinija verzija rješenja.

Greška opisuje lokalno povezivanje i ništa izvan njega. Nije dokaz da provajder blokira port, da je klijent poslao pogrešnu lozinku ili da je lanac certifikata pokvaren.

Pročitajte tačnu grešku povezivanja

Dvije greške iz ove porodice znače različite stvari, a njihovo miješanje vodi vas na pogrešan sloj. „Adresa je već u upotrebi“ kaže da drugi socket drži krajnju tačku koju ste tražili. „Adresa nije dostupna“ kaže da tražena adresa još ne postoji na ovom hostu, što je problem spremnosti, a ne duplikat.

systemctl status openvpn-server@lab --no-pager
journalctl -u openvpn-server@lab -n 20 --no-pager

Kopirajte tekst greške prije nego što bilo šta promijenite, uključujući adresu i port koje navodi. Usluga koja čeka da se pojavi interfejs bilježit će drugu grešku iznova i zatim se uspješno povezati kada adresa postoji; usluga koja bilježi prvu grešku nikada neće uspjeti dok se duplikat ne riješi. Bilježenje toga koju ste grešku vidjeli ništa ne košta i štedi uzaludnu potragu za interfejsom.

Popišite socket, ne port

Broj porta je nepotpun popis. Krajnja tačka je transport, adresna porodica, lokalna adresa i port, sve unutar jednog mrežnog imenskog prostora. UDP slušalac i TCP slušalac na istom broju su različiti socketi, a dva procesa na istom broju u različitim imenskim prostorima nikada se ne sretnu.

ss -lunp | grep -F ':1194'
ss -ltnp | grep -F ':1194'
ss -lunp 'sport = :1194'

Prvo pokrenite transport koji profil zaista koristi. Zatim pogledajte kolonu lokalne adrese, a ne samo broj: wildcard povezivanje pokriva svaku lokalnu adresu, pa drugi proces koji traži jednu određenu adresu može se sudariti s njim iako se ispisani nizovi razlikuju. Opcije ponovnog korištenja socketa i pravila platforme određuju tačan ishod, zato ovo treba biti zapažanje, a ne pravilo koje primjenjujete na svako postavljanje.

Pronađite koji proces ga posjeduje

Numeričke krajnje tačke plus informacije o procesu identificiraju vlasnika kada vam privilegije to dopuštaju, a vlasnik je ono što vam treba, ne ime programa. Dva OpenVPN procesa mogu raditi različite profile, a onaj koji drži slušalac može biti onaj koga najmanje sumnjate.

sudo ss -lunp 'sport = :1194'
sudo fuser -v -n udp 1194

Uporedite ono što nađete s upraviteljem usluga, kontejnerskim runtimeom ili terminalskim procesom zaostalim od ranijeg testa. Odsustvo detalja o procesu nije dokaz da socket nema vlasnika; obično znači da je upit izvršen bez dovoljno dozvola. Isto tako, popis samo TCP ne uklanja UDP konflikt, zato provjerite transport naveden u grešci. Samo ime procesa nikada ne kaže koji je profil učitan, a profil je taj koji određuje krajnju tačku.

Jedan vlasnik ili dvije projektovane instance

Ako postavljanje predviđa jedan server, zadržite jednog vlasnika životnog ciklusa i čitajte dnevnik te instance ili konfigurirani log umjesto da pokrećete drugu kopiju da je posmatrate. Kada je kontrolisano pokretanje u prvom planu zaista neophodno, namjerno zaustavite upravljanu instancu i prije toga uzmite u obzir klijente koje opslužuje.

Ako su predviđene dvije instance, dajte im različite slušaoce i različito sve ostalo: adresne pulove, virtuelne interfejse, politiku rutiranja i vlasništvo nad konfiguracijom. Samo drugačiji port razdvaja ništa osim socketa, a dva servera će se i dalje boriti za isti pul i iste rute.

Tri prečice vrijedi imenovati jer se pojavljuju u svakoj raspravi o ovoj grešci. Ne ubijajte proizvoljni PID koji izgleda kao krivac. Ne uključujte dijeljenje socketa da ućutkate poruku. Ne prebacujte serverski profil na klijentsku nepovezanu konfiguraciju jer to čini da greška povezivanja nestane; server postaje nedostupan na način koji je teže dijagnosticirati od originalnog konflikta.

Promjena porta je legitiman odgovor samo kada je novi slušalac dio odobrenog dizajna, koji uključuje pravilo prosljeđivanja i klijentsku krajnju tačku. Ako oni nisu ažurirani, premjestili ste konflikt na mjesto gdje ga niko ne može naći.

Provjerite povezivanje prije svega ostalog

Nakon ograničene ispravke potvrdite da je predviđena instanca aktivna, da se njen slušalac pojavljuje na transportu koji očekujete i da se klijent može povezati. Uspješno povezivanje dovršava samo fazu lokalnog socketa; ono ništa ne potvrđuje o autentifikaciji ni o saobraćaju nakon što tunel bude podignut.

ss -lunp 'sport = :1194'
systemctl is-active openvpn-server@lab
journalctl -u openvpn-server@lab -f

Ako je socket prisutan, a klijent i dalje ne uspijeva, preostali problem je nizvodno i greška povezivanja je sada historija. To razdvajanje i jeste cijela poanta toga da prvo pročitate tačnu poruku: jedna greška, jedan sloj, jedan vlasnik. Čitajte tako i sljedeći simptom počinje iz poznatog stanja, a ne iz nagađanja.

Povezani članci