Quina instància d’OpenVPN utilitza realment el teu perfil de PiVPN?
L’auxiliar de PiVPN escriu fitxers i surt. Segueix la unitat de systemd, la cadena de configuració carregada i el registre correcte abans de reconstruir el túnel.
PiVPN escriu una configuració de servidor i un perfil de client, i després surt; mai no es converteix en el procés que transporta el teu tràfic. Per tant, un handshake fallit, un client que marca un punt final equivocat o un servei que torna malament després d’un reinici no es poden explicar des dels menús de l’instal·lador. Aquests símptomes pertanyen al dimoni OpenVPN que s’executa ara, a la configuració que aquest dimoni ha carregat realment i al registre al qual s’ha apuntat. Quatre ordres de només lectura solen resoldre-ho, i cap d’elles no canvia els teus certificats ni les claus.
L’auxiliar i el dimoni són objectes diferents
La confusió és fàcil d’explicar: un directori conté el fitxer que ha generat l’auxiliar, el fitxer que llegeix el dimoni i, de vegades, una còpia antiga de tots dos. Un auxiliar és un script d’aprovisionament. Instal·la paquets, escriu fitxers d’unitat i imprimeix un perfil de client, i llavors la seva feina s’acaba. El que queda és una entrada del gestor de serveis i una línia d’ordres.
En un amfitrió systemd, comença per la unitat activa en lloc del llistat del directori. El nom depèn de l’empaquetat: les imatges de Debian i Raspberry Pi OS solen exposar una instància de plantilla com ara openvpn-server@server, mentre que les instal·lacions més antigues fan servir openvpn@server. Pregunta al gestor quina s’executa en lloc d’endevinar-ho pel nom d’un fitxer.
systemctl list-units --type=service --all | grep -i openvpn
systemctl cat openvpn-server@server
Llegeix ExecStart= en aquesta sortida. Anomena l’executable i les opcions que el gestor llança realment, incloent-hi qualsevol --config camí; un fitxer de configuració que és a prop i al qual no fa referència cap ordre no forma part del túnel en funcionament.
Segueix la cadena de configuració que el dimoni ha resolt
OpenVPN no escaneja cap directori a la recerca de paràmetres. Llegeix el fitxer passat amb --config, segueix qualsevol config directriu que hi hagi a dins i després aplica les opcions de la línia d’ordres. El manual 2.6 descriu aquest ordre, i això importa quan dos fitxers no coincideixen quant al port, el dispositiu o el xifratge.
Aboca primer la invocació efectiva i després mira les directrius que decideixen la identitat i l’abast. Totes dues ordres són de només lectura i segures en un servidor viu, tot i que la segona imprimeix camins que potser no vols en un tiquet públic.
systemctl show -p ExecStart --value openvpn-server@server
grep -E '^(config|dev|proto|port|local|log|log-append|status|ca|cert|key|tls-auth|tls-crypt)' /etc/openvpn/server/server.conf
Un fitxer .ovpn en un directori personal és un artefacte de client. El dimoni del servidor no el llegeix mai, així que editar aquest fitxer per arreglar una fallada de handshake al costat del servidor no aconsegueix res.
Les inclusions són l’altra trampa. Una línia config incorpora un segon fitxer les opcions del qual es processen en aquell punt, de manera que una directriu posterior d’un sol valor pot prevaler sobre el que sembla que diu el fitxer principal. Si el fitxer visible sembla correcte i el dimoni encara es comporta diferent, llegeix el fitxer inclòs abans de canviar res.
Lliga el registre amb el procés, no amb l’error que recordes
Dues destinacions de registre són habituals, i només una és el journal. Amb log-append definit, el dimoni escriu en aquell fitxer i el journal conserva poca cosa més enllà de les línies d’inici. Sense això, journalctl és la font dels esdeveniments.
journalctl -u openvpn-server@server -n 80 --no-pager
Relaciona un intent de connexió amb una finestra temporal. Anota el punt final del client i després llegeix els esdeveniments del servidor dels mateixos segons. Un handshake TLS que no arriba mai a l’intercanvi de certificats assenyala un problema d’abast o una discrepància de protocol, mentre que un rebuig d’autenticació arriba quan els paràmetres del túnel ja s’han acordat.
Una entrada antiga del registre no demostra res sobre un perfil que has baixat fa cinc minuts. Torna a generar el fitxer de client, connecta una vegada i llegeix només les línies que han aparegut durant aquest intent.
Anota la primera fallada concreta en lloc de l’última genèrica. Un error de bind, un intercanvi extern sense resposta, un rebuig de certificat i un rebuig de compte t’envien cadascun a una capa diferent, i un temps d’espera al final sovint amaga l’esdeveniment útil de més amunt.
Reconstruir el túnel no és un pas de diagnòstic
El drecera temptadora és aixecar un segon túnel més simple: clau estàtica, sense certificats, sense autenticació addicional. Sovint connectarà, i només demostra que dos amfitrions poden passar UDP o TCP entre ells. No diu res sobre per què falla el desplegament autenticat amb certificats, i substitueix en silenci el model de seguretat que se’t va demanar mantenir.
El mateix s’aplica a desactivar tls-auth o tls-crypt, rebaixar verify-x509-name, o eliminar un segon factor per obtenir un estat verd. Un túnel que connecta perquè s’ha tret la verificació és un sistema diferent, no un d’arreglat.
Fes un canvi limitat a la capa que el registre ha nomenat, reinicia la mateixa unitat i repeteix l’únic intent de connexió. Això manté la comparació honesta i deixa un canvi que pots revertir.
Què cal lliurar a la persona següent
Anota quatre fets mentre encara els tens: la versió d’OpenVPN de openvpn --version, la unitat que està activa, la cadena de configuració amb les seves inclusions i la finestra de registre que cobreix un intent. Aquests quatre converteixen una queixa vaga en un cas reproduïble.
Redacta abans de compartir. Les claus privades, auth-user-pass i altres fitxers, el material de clau estàtica i els paquets de client complets no pertanyen a un tiquet; els noms d’opció i la forma de la cadena solen ser suficients per a una segona mirada.
Si la cadena és intacta i el registre encara apunta a la xarxa, el pas següent és el camí entre client i servidor en lloc d’una altra instal·lació. Aquesta és l’única part de la història que l’auxiliar mai no ha posseït.