Ответы:
Должен быть журнал состояния, на который вы можете посмотреть, чтобы показать вам, например, мой:
cat /etc/openvpn/openvpn-status.log
РЕДАКТИРОВАТЬ:
В качестве альтернативы добавьте флаг --management IP port [pw-file]
или добавьте ту же директиву к вашему server.conf
, например:
management localhost 7505
Это позволит вам подключиться к этому порту и предложить список команд для запуска:
telnet localhost 7505
help
/etc/openvpn/openvpn-status.log
у меня не работало на Debian, оно никогда не менялось, а /var/run/openvpn/server.status
работало отлично.
Чтобы завершить @sekrett ответ:
killall -USR2 openvpn ; tail -f /var/log/syslog
Он будет продолжать работать, это не «обычное» уничтожение, а просто запрос на печать статистики.
Отображаемая статистика очень удобочитаема. Образец вывода:
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
Я сам получил такую же потребность, и самым простым решением, которое я обнаружил, было использование упомянутого telnet для подключения к интерфейсу управления (вам нужно будет добавить: localhost 6666 управления , в файле конфигурации сервера).
Чтобы получить точное количество клиентов вы можете сделать:
Тогда вы получите много логов:
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
В моем случае, поскольку у меня очень много клиентов, использование файла журнала определенно не очень практично.
Вы также можете отправить сигнал usr2 процессу openvpn, чтобы он записал статистическую информацию в системный журнал. Это безопасно, вам не нужно перезагружаться, если вы ранее не включали интерфейс управления.
killall -USR2 openvpn
. Тогда смотрите журналы. Это может быть /var/log/syslog
или в /var/log/messages
зависимости от дистрибутива.
kill
Команда может отправлять разные сигналы, USR2 не убьет, это всего лишь сигнал. Вы можете увидеть список здесь: linux.org/threads/kill-signals-and-commands-revised.11625 или запустив kill -l
.
Я управляю нашими серверами OpenVPN, и то, как я вижу активные соединения, выглядит так:
добавить в /etc/openvpn/server.conf
management 127.0.0.1 5555
перезапустите сервер openvpn
systemctl restart openvpn@server.service
добавьте пакет OpenVPN Monitor Python - он будет работать через веб-сервер Gunicorn и отображать активные соединения,
mkdir /opt/openvpn-monitor
создать виртуальную среду (не требуется, но рекомендуется использовать пакеты py)
cd /opt/openvpn-monitor
virtualenv venv
source venv/bin/activate
установить необходимые пакеты
pip install openvpn-monitor gunicorn
добавить файл конфигурации монитора
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
запустить веб-сервер, который будет показывать активные соединения,
gunicorn openvpn-monitor -b 0.0.0.0:80 --name openvpn-monitor --daemon
Остановить монитор
pkill gunicorn
чтобы увидеть активные подключения, перейдите на общедоступный IP-адрес вашего VPN-сервера
http://<ip of openvpn server>
убедитесь, что настроен правильный брандмауэр для порта 80, белый список только доверенных входящих IP-адресов
Просто используйте sacli со следующей командой. Это будет список подключенных клиентов VPN.
/usr/local/openvpn_as/scripts/sacli VPNSummary
{
"n_clients": 15
}
Чтобы увидеть все IP-адреса, используйте эту опцию. ./sacli VPNStatus