So stellen Sie eine Verbindung zwischen Schnittstellen, Route und Prozess her

So stellen Sie eine Verbindung zwischen Schnittstellen, Route und Prozess her

Ich verwende OpenVPN sehr gerne. Ich habe mehr als 50 VPNs auf einer Debian-Jessie-Maschine definiert.
Ich habe eine Frage bezüglich der Möglichkeit, eine Route einem Prozess zuzuordnen.
Ich möchte wissen, welche Tun-Schnittstelle welchem ​​OpenVPN-Prozess zugeordnet ist.
Derzeit besteht meine einzige Lösung darin, das Syslog nach einer Zeichenfolge wie zu durchsuchen /ovpn-([^\[]*).*(tun\d+)/. Dort kann ich beim Booten fast alles abrufen, aber es ist nicht sauber und die Informationen verschwinden, wenn das Protokoll bereinigt wird.
Gibt es also eine Möglichkeit, das Tun-Gerät dem OpenVPN-Prozess zuzuordnen?
Ich kann es nicht finden in/proc/{openvpn process}/*

Antwort1

Wenn die VPNs eine Verbindung zu dedizierten Sites herstellen, warum (a) identifizieren Sie die Schnittstelle dann nicht anhand ihrer IP-Adresse (Sie sollten nicht wissen, welchen internen IP-Bereich jede Site verwendet) oder (b) konfigurieren Sie für jedes OpenVPN eine bestimmte Nummer, z. B. tun100auf tun150? Weitere Einzelheiten finden Sie im devArgument in der Konfiguration .man openvpn

Antwort2

angesichts dieses BeitragsWie findet man die Verbindung zwischen der TAP-Schnittstelle und ihrem Dateideskriptor?

Ich habe mich für eine Lösung entschieden mitps ax |awk '/[o]penvpn/{print $7" "$1;system("grep iff /proc/"$1"/fdinfo/*")}'

verwandte Informationen