Хостинг

WireGuard основное управление

WireGuard основное управление

Вместо этого он управляется через команды в терминале (консоли).

 Можно сказать, что эти команды и есть его "клавиши".


 Давайте разделим их на три основные группы:


- Для повседневного использования (`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 genkeytee 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