wg dump
This commit is contained in:
92
content/posts/2022/wireguard/get-stats.md
Normal file
92
content/posts/2022/wireguard/get-stats.md
Normal file
@@ -0,0 +1,92 @@
|
||||
---
|
||||
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 и возвращает его в терминал.
|
||||
|
||||
Утилита не принимает никаких аргументов. Запускать как есть.
|
||||
30
content/posts/2022/wireguard/ui-env-variables.md
Normal file
30
content/posts/2022/wireguard/ui-env-variables.md
Normal file
@@ -0,0 +1,30 @@
|
||||
---
|
||||
title: "🔑 WireGuard-UI и переменные среды"
|
||||
date: 2022-11-15T18:55:14+03:00
|
||||
draft: false
|
||||
tags: [wireguard, privacy, tips]
|
||||
---
|
||||
|
||||
[WireGuard-UI](https://github.com/ngoduykhanh/wireguard-ui) -
|
||||
Web–интерфейс для управления WireGuard сервером.
|
||||
|
||||
На странице проекта на GitHub в разделе
|
||||
[Environment Variables](https://github.com/ngoduykhanh/wireguard-ui#environment-variables)
|
||||
указаны полезные параметры для настройки, в частности в моём случае после
|
||||
тестирования интерфейса, появилась необходимость изменить пароль от UI.
|
||||
|
||||
За это отвечают параметры `WGUI_USERNAME` и `WGUI_PASSWORD`.
|
||||
|
||||
Но как оказалось экспортирование их в Shell–скрипте, добавление перед
|
||||
именем исполняемого файла, а также добавления в `.bashrc` не приводило к результату.
|
||||
|
||||
В ходе разбора этого непотребства оказалось, что переменные среды работают
|
||||
только для новых инстансов, то есть необходимо удалить директорию `./db/`,
|
||||
либо как поступил я, ручками исправить файл `./db/server/users.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"username": "admin",
|
||||
"password": "admin"
|
||||
}
|
||||
```
|
||||
107
content/posts/2022/wireguard/unknown-device-type.md
Normal file
107
content/posts/2022/wireguard/unknown-device-type.md
Normal file
@@ -0,0 +1,107 @@
|
||||
---
|
||||
title: "🛡️ Когда в ядре нет модуля Wireguard или Unknown Device Type"
|
||||
date: 2022-10-01T14:42:25+03:00
|
||||
draft: false
|
||||
tags: [wireguard, linux, tips, privacy, porteus]
|
||||
---
|
||||
|
||||
## WireGuard в Porteus
|
||||
|
||||
Поддержка WireGuard в ядре Linux появилась в версии 5.6, однако
|
||||
в [Porteus](http://www.porteus.org/) 5.0 ядро собрано как-то не так,
|
||||
либо я не осилил, но WireGuard Tools вываливает ошибки.
|
||||
|
||||
```sh
|
||||
uname -r
|
||||
|
||||
5.18.8-porteus
|
||||
```
|
||||
|
||||
Версия ядра 5.18.8, WireGuard должен быть из коробки.
|
||||
`wg show` ошибок не возвращает,
|
||||
`find /lib/modules/$(uname -r) -type f -name '*.ko' | grep -i wireguard`
|
||||
показывает, что модуля нет.
|
||||
Увы и ах.
|
||||
|
||||
Началось всё с того, что **wireguard-tools** я собрал из
|
||||
[исходников](https://git.zx2c4.com/wireguard-tools/about/)
|
||||
и понадеевшись на удачу попробовал добавить интерфейс.
|
||||
|
||||
```sh
|
||||
ip link add dev wg0 type wireguard
|
||||
|
||||
Error: Unknown device type.
|
||||
```
|
||||
|
||||
На этом лирика кончилась, переходим к решению.
|
||||
|
||||
## wireguard-go
|
||||
|
||||
[wireguard-go](https://git.zx2c4.com/wireguard-go/about/) - это официальная реализация
|
||||
WireGuard на языке программирования Go, который как Java работает везде и вся,
|
||||
но не требует виртуальной машины и компилируется в машинный код.
|
||||
|
||||
Запустив его, получил предупеждение, что в моём ядре уже есть поддержка WireGuard
|
||||
и нужды в wireguard-go нет, ну-ну...
|
||||
|
||||
```sh
|
||||
./wireguard-go wg0
|
||||
|
||||
┌──────────────────────────────────────────────────────┐
|
||||
│ │
|
||||
│ Running wireguard-go is not required because this │
|
||||
│ kernel has first class support for WireGuard. For │
|
||||
│ information on installing the kernel module, │
|
||||
│ please visit: │
|
||||
│ https://www.wireguard.com/install/ │
|
||||
│ │
|
||||
└──────────────────────────────────────────────────────┘
|
||||
|
||||
wg show
|
||||
|
||||
interface: wg0
|
||||
listening port: 45654
|
||||
```
|
||||
|
||||
Как видно, интерфейс появился и всё заработало.
|
||||
|
||||
А теперь к настройке. Настройка выполняется командой `wg`.
|
||||
|
||||
```sh
|
||||
wg setconf
|
||||
|
||||
Usage: wg setconf <interface> <configuration filename>
|
||||
```
|
||||
|
||||
Но если подсунуть конфиг, который генерирую многие сервисы, он не заработает.
|
||||
Получим ошибку `Configuration parsing error`.
|
||||
|
||||
А это всё потому, что файл конфигурации предназначен для утилиты `wg-quick`,
|
||||
которая является **Bash** обёрткой над `wg`.
|
||||
**lists.zx2c4.com**: [What has changed in the configuration file?](https://lists.zx2c4.com/pipermail/wireguard/2017-May/001362.html)
|
||||
|
||||
Чтобы заработал `wg-quick`, нужно скопировать `wireguard-go` в директорию,
|
||||
которая присутствует в переменной `$PATH`, например `/usr/local/bin/`,
|
||||
в противном случае будем получать ошибку из начала поста.
|
||||
|
||||
```text
|
||||
wg-quick up /path/to/Config.conf
|
||||
|
||||
[#] ip link add Config type wireguard
|
||||
Error: Unknown device type.
|
||||
Unable to access interface: Protocol not supported
|
||||
[#] ip link delete dev Config
|
||||
Cannot find device "Config"
|
||||
```
|
||||
|
||||
В Porteus ещё дополнительно нужно будет доустановить пакет `openresolv`.
|
||||
|
||||
ENJOY!
|
||||
|
||||
## Пакеты для Porteus
|
||||
|
||||
[Топик](https://forum.porteus.org/viewtopic.php?f=49&t=10392) на форуме Porteus.org
|
||||
|
||||
Скачать:
|
||||
[wireguard-go](https://data.iiiypuk.me/porteus/x86_64/Porteus-v5.0/modules/wireguard-go-0.0.20220316-1-x86_64.xzm) - 1.9 MiB
|
||||
[wireguard-tools](https://data.iiiypuk.me/porteus/x86_64/Porteus-v5.0/modules/wireguard-tools-1.0.20210914-1-x86_64.xzm) - 44 Kib
|
||||
Reference in New Issue
Block a user