如何在介面、路由和進程之間建立聯繫

如何在介面、路由和進程之間建立聯繫

我非常高興地使用 openvpn,我在 debian jessie 機器上定義了 50 多個 vpn。
我有一個關於將某些路線映射到某些進程的能力的問題。
我想知道哪個 tun 介面對應到哪個 openvpn 進程。
此時,我唯一的解決方案是掃描系統日誌,搜尋一些字串/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/*")}'

相關內容