Вместо этого он управляется через команды в терминале (консоли).
Можно сказать, что эти команды и есть его "клавиши".
Давайте разделим их на три основные группы:
- Для повседневного использования (`wg-quick`) — то, что вам нужно в 99% случаев.
- Для просмотра состояния и отладки (`wg`) — чтобы посмотреть, что происходит "под капотом".
- Для настройки (генерация ключей) — то, что нужно один раз при создании нового подключения.
1. Основные “Клавиши” для Управления Туннелем (wg-quick)
wg-quick — это удобная “обертка”, которая не только включает/выключает туннель, но и автоматически настраивает сетевые маршруты и DNS. Имя вашего туннеля обычно соответствует имени конфигурационного файла (например, для файла wg0.conf имя туннеля будет wg0).
| Действие | Команда (нужны права sudo) | Что делает |
|---|---|---|
| Включить туннель | sudo wg-quick up wg0 | Поднимает соединение, настраивает сеть. |
| Выключить туннель | sudo wg-quick down wg0 | Разрывает соединение, возвращает настройки сети. |
| Перезапустить туннель | sudo wg-quick down wg0 && sudo wg-quick up wg0 | Быстрый способ переподключиться. |
| Включить автозапуск | sudo systemctl enable wg-quick@wg0 | Туннель будет автоматически включаться при старте системы. |
| Выключить автозапуск | sudo systemctl disable wg-quick@wg0 | Отменяет автоматическое включение. |
Вместо `wg0` подставьте имя вашего интерфейса.
2. “Клавиши” для Просмотра Статуса и Отладки (wg)
wg — это утилита для прямого взаимодействия с ядром WireGuard. Её главная задача — показать текущее состояние.
| Действие | Команда | Что показывает |
|---|---|---|
| Показать статус | sudo wg show | Самая важная команда! Показывает все активные интерфейсы. |
| Показать конкретный туннель | sudo wg show wg0 | Показывает информацию только по интерфейсу wg0. |
Что означает вывод команды `wg show`:
interface: wg0
public key: AAAAAAAAA...= (Ваш публичный ключ)
private key: (hidden)
listening port: 51820
peer: BBBBBBBBB...= (Публичный ключ сервера/другого клиента)
preshared key: (hidden)
endpoint: 123.45.67.89:51820 (IP-адрес и порт, куда вы подключены)
allowed ips: 0.0.0.0/0, ::/0 (Какой трафик заворачивается в туннель)
latest handshake: 1 minute, 25 seconds ago (Когда был последний обмен ключами)
transfer: 1.25 GiB received, 150.21 MiB sent (Сколько данных прошло через туннель)
- `latest handshake` — ключевой показатель. Если здесь " (none) " или очень старое время, значит, соединение не работает.
- `transfer` — показывает, идет ли трафик.
3. “Клавиши” для Первоначальной Настройки
Эти команды нужны только при создании нового файла конфигурации для себя или для нового пользователя (пира).
| Действие | Команда | Что делает |
|---|---|---|
| Создать пару ключей | `wg genkey | tee privatekey |
| Создать общий ключ (Preshared Key) | wg genpsk | Создает дополнительный ключ для повышения безопасности (не всегда используется). |
Итог в виде шпаргалки:
| Цель | Команда |
|---|---|
| Подключиться | sudo wg-quick up wg0 |
| Отключиться | sudo wg-quick down wg0 |
| Проверить, работает ли | sudo wg show |
| Сделать, чтобы включалось само | sudo systemctl enable wg-quick@wg0 |
Для пользователей Windows, macOS или мобильных устройств все эти команды заменены кнопками в приложении: "Activate" / "Deactivate" ("Включить" / "Выключить"). Но знание консольных команд бесценно для понимания работы WireGuard и для управления им на серверах.
Смена тоннеля Wireguard
Предположим, что ваш текущий туннель называется `wg0` (как в предыдущих командах), а новый файл `.conf` называется, например, `new_vpn.conf`.
Вот шаги:
Шаг 1: Остановить текущий туннель (wg0)
Это очень важно, чтобы избежать конфликтов с портами или маршрутами.
bash Скопировать
Закрыть блок
sudo systemctl stop wg-quick@wg0
Убедитесь, что он остановлен:
bash Скопировать
Закрыть блок
sudo systemctl status wg-quick@wg0
Вы должны увидеть `Active: inactive (dead)`.
Шаг 2: Скопировать новый файл конфигурации
Вам нужно переместить или скопировать скачанный `.conf` файл в директорию `/etc/wireguard/`.
Предположим, ваш новый файл скачан в `~/Downloads/new_vpn.conf`.
Определите имя нового туннеля: Если вы хотите, чтобы новый туннель использовал то же имя `wg0`, чтобы было проще, то вы должны переименовать ваш новый файл в `wg0.conf` и заменить старый. Рекомендуется создать резервную копию старого `wg0.conf` перед заменой!
Вариант А: Замена существующего туннеля `wg0` на новый (если новый .conf предназначен для `wg0`)
- Создайте резервную копию старого файла (обязательно!):bash Скопировать
Закрыть блок
sudo mv /etc/wireguard/wg0.conf /etc/wireguard/wg0.conf.bak
- Переместите новый файл и назовите его `wg0.conf`:bash Скопировать
Закрыть блок
sudo mv ~/Downloads/new_vpn.conf /etc/wireguard/wg0.conf
- Установите правильные права доступа (очень важно для безопасности!):bash Скопировать
Закрыть блок
sudo chmod 600 /etc/wireguard/wg0.conf
Это делает файл доступным только для чтения пользователем root.
Вариант Б: Добавление нового туннеля с новым именем (например, `wg1` или `myvpn`)
- Переместите новый файл с новым именем (например, `myvpn.conf`):bash Скопировать
Закрыть блок
sudo mv ~/Downloads/new_vpn.conf /etc/wireguard/myvpn.conf
- Установите правильные права доступа:bash Скопировать
Закрыть блок
sudo chmod 600 /etc/wireguard/myvpn.conf
(Если вы выбрали этот вариант, то `wg0` будет остановлен, но его конфигурационный файл останется на месте, и вы сможете снова поднять его, если захотите).
Шаг 3: Запустить новый туннель
Теперь запустим новый туннель, используя имя файла, который вы поместили в `/etc/wireguard/`.
Если вы выбрали Вариант А (заменили `wg0.conf`):
bash Скопировать
Закрыть блок
sudo systemctl start wg-quick@wg0
Если вы выбрали Вариант Б (создали новый файл `myvpn.conf`):
bash Скопировать
Закрыть блок
sudo systemctl start wg-quick@myvpn
Замените `myvpn` на то имя, которое вы дали файлу (без расширения `.conf`).
Шаг 4: Проверить статус нового туннеля
Как и раньше, проверьте, что туннель поднялся:
Если это `wg0`:
bash Скопировать
Закрыть блок
sudo systemctl status wg-quick@wg0
ip a show wg0
sudo wg show wg0
Если это `myvpn`:
bash Скопировать
Закрыть блок
sudo systemctl status wg-quick@myvpn
ip a show myvpn
sudo wg show myvpn
Шаг 5: Проверить внешний IP-адрес
Самый важный шаг – убедиться, что трафик идет через VPN:
bash Скопировать
Закрыть блок
curl ifconfig.me
Вы должны увидеть IP-адрес вашего нового WireGuard-сервера.
Шаг 6 (Опционально): Автозапуск при загрузке
Если вы хотите, чтобы новый туннель запускался автоматически при каждой загрузке системы:
Если это `wg0`:
bash Скопировать
Закрыть блок
sudo systemctl enable wg-quick@wg0
Если это `myvpn`:
bash Скопировать
Закрыть блок
sudo systemctl enable wg-quick@myvpn
Важные заметки:
- DNS: Убедитесь, что в вашем новом `.conf` файле есть строка `DNS = <IP-адрес DNS-сервера>`, чтобы избежать проблем с разрешением имен после подключения к VPN. Например: `DNS = 8.8.8.8, 8.8.4.4`.
- AllowedIPs: Проверьте секцию `[Peer]` в новом `.conf` файле. Если вы хотите, чтобы весь трафик шел через VPN, то там должна быть строка `AllowedIPs = 0.0.0.0/0, ::/0`.
- Private Key: Убедитесь, что `PrivateKey` в новом файле соответствует приватному ключу, который клиент должен использовать для этого туннеля.
- Если что-то не работает, проверьте логи: `sudo journalctl -u wg-quick@<имя_туннеля> -f`
Следуйте этим шагам, и у вас должен быть запущен новый WireGuard-туннель!
Основные команды
Эти команды нужно выполнять с правами суперпользователя (`sudo`). Они работают как на "голом" сервере, так и при установке из стандартных репозиториев.
🟢 Включить (поднять) туннель wg0
Эта команда читает конфигурационный файл `/etc/wireguard/wg0.conf`, создает сетевой интерфейс `wg0`, настраивает ключи, IP-адреса и маршруты.
bash Скопировать
Закрыть блок
sudo wg-quick up wg0
🔴 Отключить (опустить) туннель wg0
Эта команда безопасно отключает интерфейс, удаляет связанные с ним маршруты и освобождает ресурсы.
bash Скопировать
Закрыть блок
sudo wg-quick down wg0
Дополнительные полезные команды
🔄 Перезапустить туннель
Быстрый способ применить изменения в конфигурационном файле `wg0.conf`. Это эквивалентно последовательному выполнению `down` и `up`.
bash Скопировать
Закрыть блок
sudo wg-quick down wg0 && sudo wg-quick up wg0
Или, если вы хотите увидеть статус между операциями:
bash Скопировать
Закрыть блок
sudo wg-quick down wg0; sudo wg-quick up wg0
🛠️ Проверить статус туннеля
Эта команда показывает текущее состояние интерфейса `wg0`, его публичный ключ, порт, а также информацию о подключенных пирах (клиентах), включая их IP, публичные ключи и, самое важное, время последнего "рукопожатия" (latest handshake).
bash Скопировать
Закрыть блок
sudo wg show wg0
Или просто `sudo wg` для отображения всех активных WireGuard-интерфейсов.
⚙️ Автозапуск при загрузке системы (с помощью systemd)
Если вы хотите, чтобы ваш туннель `wg0` автоматически поднимался при старте сервера, используйте `systemctl`.
Включить автозапуск:
bash Скопировать
Закрыть блок
sudo systemctl enable wg-quick@wg0
Обратите внимание на синтаксис: `wg-quick@` + имя вашего интерфейса.
Отключить автозапуск:
bash Скопировать
Закрыть блок
sudo systemctl disable wg-quick@wg0
Управление службой (если она включена через `systemctl`):
- Запустить: `sudo systemctl start wg-quick@wg0`
- Остановить: `sudo systemctl stop wg-quick@wg0`
- Перезапустить: `sudo systemctl restart wg-quick@wg0`
- Проверить статус службы: `sudo systemctl status wg-quick@wg0`
Если WireGuard запущен в Docker
Если ваш WireGuard работает в Docker-контейнере, команды будут другими. Вам нужно управлять самим контейнером.
Предположим, ваш контейнер называется `my-wireguard`.
-
Остановить туннель (остановить контейнер):
bash Скопировать
Закрыть блок
sudo docker stop my-wireguard
-
Запустить туннель (запустить контейнер):
bash Скопировать
Закрыть блок
sudo docker start my-wireguard
-
Перезапустить туннель (перезапустить контейнер):
bash Скопировать
Закрыть блок
sudo docker restart my-wireguard