Odpowiedzi:
Powinien istnieć dziennik stanu, na który można spojrzeć, na przykład mój:
cat /etc/openvpn/openvpn-status.log
EDYTOWAĆ:
Alternatywnie, dodanie flagi --management IP port [pw-file]
lub dodanie tej samej dyrektywy do server.conf
, na przykład:
management localhost 7505
Pozwoliłoby to na telnet do tego portu i zaoferowanie listy poleceń do uruchomienia:
telnet localhost 7505
help
/etc/openvpn/openvpn-status.log
nie działało dla mnie w Debianie, nigdy się nie zmieniło, zamiast tego /var/run/openvpn/server.status
działało idealnie.
Aby wypełnić odpowiedź @sekrett :
killall -USR2 openvpn ; tail -f /var/log/syslog
Będzie działał, nie jest to „zwykłe” zabójstwo, tylko prośba o wydrukowanie niektórych statystyk.
Wyświetlane statystyki są bardzo czytelne. Przykładowe dane wyjściowe:
Oct 14 07:34:14 vpn2 openvpn[20959]: Updated,Fri Oct 14 07:34:14 2016
Oct 14 07:34:14 vpn2 openvpn[20959]: Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
Oct 14 07:26:26 vpn2 openvpn[20959]:
10.8.0.132,hostname1,213.219.XXX.XXX:63765,Fri Oct 14 07:25:01 2016
Oct 14 07:26:26 vpn2 openvpn[20959]:
10.8.0.242,hostname2,213.219.XXX.XXX:62416,Sun Sep 25 03:49:19 2016
Sam dostałem tę samą potrzebę i najprostszym rozwiązaniem, jakie znalazłem, było użycie wspomnianego telnetu do połączenia z interfejsem zarządzania (musisz dodać: zarządzanie localhost 6666 , w pliku konfiguracyjnym serwera).
Aby uzyskać dokładną liczbę klientów, możesz:
Otrzymasz wiele dzienników:
10.9.10.11,test-docker,52.58.48.98:56859,Wed May 4 09:37:34 2016
10.9.7.45,test-docker,52.58.156.80:38774,Wed May 4 09:36:59 2016
10.9.1.103,test-docker,52.58.161.230:52201,Wed May 4 09:35:47 2016
GLOBAL STATS
Max bcast/mcast queue length,0
END
>CLIENT:ESTABLISHED,19845
>CLIENT:ENV,n_clients=19361
>CLIENT:ENV,time_unix=1462357164
W moim przypadku, ponieważ mam bardzo dużą liczbę klientów, korzystanie z pliku dziennika jest zdecydowanie mało praktyczne.
Możesz również wysłać sygnał usr2 do procesu openvpn, aby zapisał informacje statystyczne do syslog. Jest to bezpieczne, nie trzeba restartować, jeśli wcześniej nie włączano interfejsu zarządzania.
killall -USR2 openvpn
. Następnie obserwuj dzienniki. Może być /var/log/syslog
lub /var/log/messages
zależy od dystrybucji.
kill
polecenie może wysyłać różne sygnały, USR2 nie zabije, to tylko sygnał. Możesz zobaczyć listę tutaj: linux.org/threads/kill-signals-and-commands-revised.11625 lub przez uruchomienie kill -l
.
Zarządzam serwerami OpenVPN naszej firmy i tak widzę aktywne połączenia,
dodaj do /etc/openvpn/server.conf
management 127.0.0.1 5555
zrestartuj serwer openvpn
systemctl restart openvpn@server.service
dodaj pakiet Python Monitor OpenVPN - będzie on działał przez serwer WWW Gunicorn i pokazywał aktywne połączenia,
mkdir /opt/openvpn-monitor
stworzyć wirtualną env (niewymagane, ale dobra praktyka z pakietami py)
cd /opt/openvpn-monitor
virtualenv venv
source venv/bin/activate
zainstaluj wymagane pakiety
pip install openvpn-monitor gunicorn
dodaj plik konfiguracyjny Monitora
vi /opt/openvpn-monitor/openvpn-monitor.conf
[openvpn-monitor]
site=your-openvpn-site
#logo=logo.jpg
#latitude=40.72
#longitude=-74
maps=True
geoip_data=/var/lib/GeoIP/GeoLite2-City.mmdb
datetime_format=%d/%m/%Y %H:%M:%S
[VPN1]
host=localhost
port=
name=Your VPN Server Name
show_disconnect=False
uruchom serwer WWW, który pokaże aktywne połączenia,
gunicorn openvpn-monitor -b 0.0.0.0:80 --name openvpn-monitor --daemon
Aby zatrzymać monitor
pkill gunicorn
aby zobaczyć aktywne połączenia, przejdź do publicznego adresu IP swojego serwera VPN
http://<ip of openvpn server>
upewnij się, że skonfigurowałeś właściwą zaporę dla portu 80, biała lista tylko zaufanych przychodzących adresów IP
Wystarczy użyć sacli z następującą komendą. Spowoduje to wyświetlenie listy podłączonych klientów VPN.
/usr/local/openvpn_as/scripts/sacli VPNSummary
{
"n_clients": 15
}
Aby zobaczyć wszystkie adresy IP, użyj tej opcji. ./sacli VPNStatus