flip:wireguard:configuration
Содержание
Конфигурация WireGuard
Можно добавлять новых клиентов, создавая новые секции [Peer] на сервере и генерируя для них ключи.
Конфигурация сервера
/etc/wireguard/wg0.conf
[Interface] # Имя сетевого интерфейса (можно изменить) Name = wg0 # IP-адрес сервера в VPN-сети и маска подсети Address = 10.0.0.1/24 # Порт, на котором WireGuard будет принимать подключения (обычно 51820) ListenPort = 51820 # Приватный ключ сервера (генерируется командой `wg genkey`) PrivateKey = <SERVER_PRIVATE_KEY> # Опционально: включить NAT для клиентов (если сервер раздаёт интернет) PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE # Опционально: сохранять конфигурацию при перезапуске интерфейса SaveConfig = true [Peer] # Настройки клиента 1 # Публичный ключ клиента (генерируется на клиенте) PublicKey = <CLIENT1_PUBLIC_KEY> # Разрешить подключение только с этого IP (опционально) AllowedIPs = 10.0.0.2/32 # Опционально: клиент может подключаться из любого места (Endpoint не фиксируется) # (если нужно фиксировать IP клиента, укажите его здесь) # Endpoint = 1.2.3.4:12345
Пояснения:
- [Interface] — настройки серверного интерфейса.
- Address — IP-адрес сервера в VPN (клиенты будут подключаться к нему).
- ListenPort — порт, который слушает WireGuard.
- PrivateKey — секретный ключ сервера (никогда не передаётся клиентам!).
- PostUp/PostDown — правила iptables для проброса интернета клиентам (если нужно).
- SaveConfig — сохранять изменения при перезапуске (wg-quick down wg0).
- [Peer] — настройки клиента.
- PublicKey — публичный ключ клиента (должен совпадать с его конфигом).
- AllowedIPs — какие IP разрешены для этого клиента (10.0.0.2/32 — только один IP).
Конфигурация клиента
/etc/wireguard/wg0-client.conf
[Interface] # Имя интерфейса (можно изменить) Name = wg0-client # Приватный ключ клиента (генерируется на клиенте) PrivateKey = <CLIENT_PRIVATE_KEY> # IP клиента в VPN-сети (должен быть уникальным) Address = 10.0.0.2/24 # Опционально: DNS-сервер (если сервер его раздаёт) DNS = 8.8.8.8, 1.1.1.1 [Peer] # Настройки сервера # Публичный ключ сервера (берётся из серверного конфига) PublicKey = <SERVER_PUBLIC_KEY> # IP и порт сервера (его публичный IP или домен) Endpoint = server.example.com:51820 # Какие IP-адреса маршрутизировать через VPN # (0.0.0.0/0 — весь трафик, 10.0.0.0/24 — только локальная сеть VPN) AllowedIPs = 10.0.0.0/24, 192.168.1.0/24 # Опционально: включать постоянное соединение (переподключаться, если связь пропала) PersistentKeepalive = 25
Пояснения:
- [Interface] — настройки клиента.
- PrivateKey — секретный ключ клиента (никому не передавать!).
- Address — IP клиента в VPN (должен быть уникальным).
- DNS — DNS-серверы, если сервер их раздаёт.
- [Peer] — настройки сервера.
- PublicKey — публичный ключ сервера (из его конфига).
- Endpoint — публичный IP или домен сервера + порт.
- AllowedIPs:
- 10.0.0.0/24 — трафик к другим VPN-клиентам.
- 192.168.1.0/24 — доступ к локальной сети сервера.
- 0.0.0.0/0 — весь интернет через VPN (анонимизация).
- PersistentKeepalive — если клиент за NAT, помогает поддерживать соединение.
Генерация ключей
На сервере:
wg genkey | tee server_private.key | wg pubkey > server_public.key
- server_private.key — вставляем в PrivateKey сервера.
- server_public.key — вставляем в PublicKey клиента.
На клиенте:
wg genkey | tee client_private.key | wg pubkey > client_public.key
- client_private.key — вставляем в PrivateKey клиента.
- client_public.key — вставляем в PublicKey сервера.
Запуск и управление
Сервер:
sudo wg-quick up wg0 # Запустить VPN sudo wg-quick down wg0 # Остановить VPN sudo wg show # Показать статус подключений
Клиент:
sudo wg-quick up wg0-client sudo wg-quick down wg0-client
Проверка соединения
На сервере:
ping 10.0.0.2 # Проверить связь с клиентом
На клиенте:
ping 10.0.0.1 # Проверить связь с сервером
flip/wireguard/configuration.txt · Последнее изменение: 2025/03/30 10:27 — flip