Blog/content/posts/2022/wireguard/get-stats.md

93 lines
3.0 KiB
Markdown
Raw Normal View History

2022-11-19 13:54:51 +03:00
---
title: "🕸️ Получение статистики соединений WireGuard"
date: 2022-11-19T13:29:41+03:00
draft: false
tags: [tips, wireguard]
---
## Просмотр статистики
Статистику клиентов WireGuard можно получить используя параметр `show` утилиты `wg`.
Например:
```sh
wg show all
```
Команда вернёт следующий результат.
```text
interface: wg0
public key: <public_key>
private key: (hidden)
listening port: 443
peer: <public_key>
preshared key: (hidden)
endpoint: <user_ip>:<user_port>
allowed ips: 10.253.1.2/32
latest handshake: 5 seconds ago
transfer: 25.47 MiB received, 282.28 MiB sent
peer: <public_key>
preshared key: (hidden)
endpoint: <user_ip>:<user_port>
allowed ips: 10.253.1.1/32
latest handshake: 47 seconds ago
transfer: 314.81 MiB received, 776.23 MiB sent
peer: <public_key>
preshared key: (hidden)
allowed ips: 10.253.1.3/32
```
Если на машине несколько интерфейсов WireGuard,
можно вывести статистику по конкретному интерфейсу:
```sh
wg show wg0
```
Для наблюдения за статистикой в реальном времени
можно использовать команду `watch`.
```sh
watch wg show all
```
Or:
`wg-json` tool from
[wireguard-tools](https://git.zx2c4.com/wireguard-tools/tree/contrib/json/wg-json).
## Сбор статистики
Для сбора (дампа) статистики у необходимо добавить аргумент `dump`
и в терминале отобразится информация в виде таблицы:
```sh
wg show all dump
```
```text
wg0 <private_key> <public_key> <listen_port> <fwmark>
wg0 <public_key> <preshared_key> <endpoint> <allowed_ips> <latest_handshake_timestamp> <transfer_rx> <transfer_tx> <persistent-keepalive>
wg0 <public_key> <preshared_key> <endpoint> <allowed_ips> <latest_handshake_timestamp> <transfer_rx> <transfer_tx> <persistent-keepalive>
wg0 <public_key> <preshared_key> <endpoint> <allowed_ips> <latest_handshake_timestamp> <transfer_rx> <transfer_tx> <persistent-keepalive>
```
\* [wg.8.en.html#show](https://manpages.debian.org/unstable/wireguard-tools/wg.8.en.html#show)
on Debian man pages.
## wg-json
В официальный состав инструментов [wireguard-tools](https://git.zx2c4.com/wireguard-tools)
входит утилита **[wg-json](https://git.zx2c4.com/wireguard-tools/tree/contrib/json/wg-json)**.
[Она](https://git.zx2c4.com/wireguard-tools/tree/contrib/json/wg-json)
представляет из себя Bash скрипт, который преобразовывает вывод команды
`wg show all dump` в JSON и возвращает его в терминал.
Утилита не принимает никаких аргументов. Запускать как есть.