Какво е WireGuard?

WireGuard е модерен, високопроизводителен VPN протокол, проектиран за простота и скорост. За разлика от по-старите протоколи като OpenVPN или IPsec, WireGuard използва най-съвременната криптография (Curve25519 за обмен на ключове, ChaCha20 за криптиране и Poly1305 за удостоверяване) и работи с минимален код — приблизително 4000 реда в сравнение със стотици хиляди в наследени решения. Този лаконичен дизайн го прави по-лесен за одит, по-бърз при установяване на връзки и по-надежден при промени в мрежата, като превключване между Wi-Fi и мобилни данни.

WireGuard работи чрез създаване на криптирани точка-до-точка тунели между сървър и един или повече клиенти. Всяка страна притежава частен ключ и знае публичния ключ на своите партньори. След конфигурирането, трафикът протича през тунела безпроблемно, като протоколът автоматично обработва handshake-ове, ротация на ключове и keepalive пакети.

Описание на инструмента

Този инструмент генерира готови за използване WireGuard конфигурационни файлове за сървърната и клиентската страна. Той автоматично създава криптографски валидни X25519 двойки ключове, изгражда правилно форматирани .conf файлове и ви позволява да управлявате множество клиенти от един интерфейс. Можете да изтеглите всеки конфигурационен файл директно или да сканирате QR код за бързо мобилно настройване.

Примери

Изход на сървърната конфигурация:

[Interface]
PrivateKey = aGVsbG93b3JsZC4uLi4uLi4uLi4uLi4uLi4uLi4=
Address = 10.0.0.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
SaveConfig = true

[Peer]
PublicKey = Y2xpZW50cHVibGlja2V5Li4uLi4uLi4uLi4uLi4=
AllowedIPs = 10.0.0.2/32

Изход на клиентската конфигурация:

[Interface]
PrivateKey = Y2xpZW50cHJpdmF0ZWtleS4uLi4uLi4uLi4uLi4=
Address = 10.0.0.2/32
DNS = 1.1.1.1, 1.0.0.1

[Peer]
PublicKey = c2VydmVycHVibGlja2V5Li4uLi4uLi4uLi4uLi4=
Endpoint = vpn.example.com:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

Функции

  • Генерира криптографски валидни X25519 двойки ключове директно в браузъра, използвайки Curve25519
  • Произвежда изтегляеми .conf файлове за сървъра и всички клиенти
  • Показва QR кодове за клиентски конфигурации, което позволява моментално настройване на мобилни устройства
  • Поддържа множество клиенти с автоматично присвояване на IP адреси
  • Конфигурируеми MTU, PostUp/PostDown hooks, DNS и PersistentKeepalive за всеки клиент

Обяснение на опциите

  • Име на сървъра — етикет, използван в коментара на конфигурационния файл и в името на изтегления файл
  • Порт на сървъра — UDP портът, на който WireGuard слуша (по подразбиране: 51820)
  • IP адрес на сървъра — адресът на VPN подмрежата за сървърния интерфейс (например 10.0.0.1/24)
  • Endpoint на сървъра — публичното име на хост или IP адрес и порт, към които се свързват клиентите
  • MTU — максимален размер на единица предаване; оставете празно, за да използвате системната подразбиране (обикновено 1420)
  • PostUp / PostDown — shell команди, изпълнени при включване или изключване на интерфейса (обикновено се използват за iptables NAT правила)
  • Allowed IPs — IP диапазони, които клиентът маршрутизира през тунела; 0.0.0.0/0, ::/0 маршрутизира целия трафик
  • DNS — DNS сървъри, които клиентът използва при свързване
  • PersistentKeepalive — интервал в секунди за keepalive пакети, полезен за клиенти зад NAT (по подразбиране: 25)

Случаи на употреба

  • Настройване на самостоятелно хостван VPN сървър на облачен екземпляр за криптиране на целия трафик от лаптопи и телефони
  • Свързване на отдалечени офис мрежи чрез защитен сайт-към-сайт WireGuard тунел
  • Генериране на клиентски конфигурации с QR кодове за бързо включване на членове на екипа или мобилни устройства