Я очень успешно использую openvpn, у меня определено более 50 vpn на машине Debian Jessie.
У меня есть вопрос относительно возможности сопоставить некоторые маршруты с некоторыми процессами.
Я хотел бы знать, какой интерфейс tun сопоставлен с каким процессом openvpn.
На данный момент мое единственное решение — сканировать syslog в поисках какой-то строки, например /ovpn-([^\[]*).*(tun\d+)/
, где я могу в основном извлечь все во время загрузки, но он не чистый, и информация исчезает по мере очистки журнала.
Так есть ли способ сопоставить устройство tun с процессом openvpn?
Я не могу найти в/proc/{openvpn process}/*
решение1
Если VPN подключаются к выделенным сайтам, почему бы (a) не идентифицировать интерфейс по его IP-адресу (вам не следует знать, какой внутренний диапазон IP-адресов использует каждый сайт), или (b) не настроить для каждого OpenVPN определенный номер, например, tun100
? tun150
Подробности см. в аргументе dev
в конфигурации .man openvpn
решение2
учитывая этот постКак найти связь между интерфейсом tap и его файловым дескриптором?
Я выбрал решение сps ax |awk '/[o]penvpn/{print $7" "$1;system("grep iff /proc/"$1"/fdinfo/*")}'