Содержание статьи

Шлюз по умолчанию определяет, какой маршрут будет использоваться для передачи всего интернет-трафика клиента через VPN-соединение. В OpenVPN это настраивается на уровне сервера и клиента с помощью директив push «redirect-gateway» и параметров маршрутизации в конфигурационных файлах. Без корректной настройки клиент может использовать локальный интернет, что снижает безопасность и мешает централизованному контролю трафика.
Для назначения шлюза по умолчанию важно учитывать структуру сети: подсети локального офиса, диапазоны IP, а также маршруты, которые не должны проходить через VPN. Обычно рекомендуется исключать внутренние ресурсы из перенаправления трафика через VPN, используя директиву route-nopull на клиенте и route на сервере. Это предотвращает конфликты и потерю соединений с локальными сервисами.
Перед внесением изменений стоит проверить текущие маршруты с помощью команды ip route (Linux) или route print (Windows) для точного понимания, какой трафик направляется через какой интерфейс. После внесения настроек необходимо протестировать подключение к внешним ресурсам и убедиться, что весь интернет-трафик проходит через VPN, а локальные маршруты сохраняются.
Проверка текущих маршрутов и шлюза на клиенте OpenVPN
Для точной настройки шлюза по умолчанию необходимо сначала определить, какие маршруты активны на клиентской машине после подключения к VPN. Это позволяет выявить, проходит ли весь трафик через OpenVPN или часть данных использует локальный интернет.
На Linux и macOS используется команда:
ip route show
- маршрут по умолчанию (default) и интерфейс, через который он проходит;
- подсети VPN-соединения с указанием шлюза OpenVPN;
- локальные маршруты, которые должны оставаться вне VPN.
На Windows проверка выполняется через:
route print
- Default Gateway – текущий шлюз по умолчанию;
- Persistent Routes – сохранённые маршруты, влияющие на VPN;
- Active Routes – активные маршруты, через которые проходит трафик.
Если шлюз по умолчанию не указывает на VPN-интерфейс, необходимо использовать директиву redirect-gateway def1 в конфигурации клиента или сервера. После изменения маршрутов повторная проверка гарантирует, что весь интернет-трафик перенаправлен через VPN, а локальные сети остаются доступными по отдельным маршрутам.
Изменение конфигурации сервера для назначения шлюза по умолчанию
Для того чтобы клиенты автоматически использовали VPN как основной шлюз, необходимо настроить сервер OpenVPN. Основная директива – push «redirect-gateway def1», которая добавляется в конфигурационный файл сервера (обычно server.conf или openvpn.conf).
Пример изменения конфигурации сервера:
| Параметр | Значение | Описание |
|---|---|---|
| push «redirect-gateway def1» | Активно | Перенаправляет весь клиентский трафик через VPN-интерфейс |
| push «dhcp-option DNS 10.8.0.1» | Активно | Назначает DNS-сервер для клиентов, чтобы запросы разрешались через VPN |
| client-to-client | Включено | Разрешает обмен данными между подключенными клиентами |
| route 192.168.1.0 255.255.255.0 | Активно при необходимости | Исключает локальную подсеть из перенаправления через VPN |
После внесения изменений сервер необходимо перезапустить. Проверка корректности выполняется подключением клиента и анализом маршрутов командой ip route на Linux или route print на Windows. Все маршруты по умолчанию должны указывать на VPN-интерфейс, а локальные сети оставаться доступными через отдельные записи.
Настройка параметров клиента для использования удалённого шлюза

Для использования удалённого шлюза клиентом OpenVPN необходимо убедиться, что конфигурационный файл клиента содержит директиву redirect-gateway def1. Она заставляет систему изменять маршрут по умолчанию на VPN-интерфейс после подключения.
Пример базовой конфигурации клиента:
client
dev tun
proto udp
remote vpn.example.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
auth SHA256
redirect-gateway def1
Если требуется сохранить доступ к локальной сети, добавьте route-nopull и вручную укажите маршруты через директиву route:
route-nopull
route 192.168.1.0 255.255.255.0
После внесения изменений необходимо переподключить VPN и проверить маршруты командой ip route (Linux/macOS) или route print (Windows). В таблице маршрутов должно отображаться, что маршрут по умолчанию проходит через VPN-интерфейс, а локальные сети остаются доступными через отдельные записи.
Проверка перенаправления всего трафика через VPN
Для подтверждения, что весь интернет-трафик клиента проходит через VPN, сначала проверьте таблицу маршрутов командой ip route на Linux/macOS или route print на Windows. Маршрут по умолчанию должен указывать на VPN-интерфейс (обычно tun0 или tap0).
Дополнительно можно использовать проверку через внешние сервисы:
- Откройте сайт https://ifconfig.me или https://ipinfo.io и убедитесь, что отображаемый IP соответствует VPN-серверу.
- Для командной проверки выполните curl https://ifconfig.me на Linux или macOS, либо Invoke-WebRequest https://ifconfig.me в PowerShell на Windows.
Если отображается локальный IP, значит маршрутизация по умолчанию не перенаправлена. В этом случае проверьте наличие директив redirect-gateway def1 на клиенте и push «redirect-gateway def1» на сервере. После исправления повторите проверку маршрутов и внешнего IP.
Исправление конфликтов маршрутизации с локальной сетью

При настройке шлюза по умолчанию через VPN может возникнуть ситуация, когда локальная сеть перестаёт быть доступной. Это происходит, если маршрут по умолчанию перекрывает подсети офиса или домашней сети.
Для решения конфликта на клиенте используется директива route-nopull с ручным добавлением маршрутов через route. Например, чтобы сохранить доступ к локальной сети 192.168.1.0/24:
route-nopull
route 192.168.1.0 255.255.255.0
На сервере можно указать исключения с помощью директивы push «route 192.168.1.0 255.255.255.0 net_gateway». Это позволит клиентам использовать VPN для всего трафика, кроме локальной сети, которая останется доступной через стандартный шлюз.
После внесения изменений проверьте таблицу маршрутов командой ip route или route print. Подсеть локальной сети должна оставаться через локальный интерфейс, а маршрут по умолчанию – через VPN-интерфейс.
Тестирование стабильности соединения после настройки шлюза
После перенаправления всего трафика через VPN необходимо убедиться, что соединение остаётся стабильным и не возникает потери пакетов. Для проверки используйте команду ping к VPN-серверу и внешним ресурсам, например:
ping 10.8.0.1 # VPN-сервер
ping 8.8.8.8 # внешний ресурс
На Linux и macOS можно дополнительно выполнить mtr для анализа маршрута и задержек. На Windows используйте tracert для проверки маршрутов к ключевым узлам.
Если наблюдаются периодические разрывы или высокие задержки, проверьте:
- наличие директив keepalive 10 60 в конфигурации сервера и клиента;
- правильность настроек MTU на VPN-интерфейсе (обычно 1500 или 1400 для туннелей);
- конфликт маршрутов с локальной сетью, который может разрывать соединение.
После внесения корректировок повторите тестирование в течение нескольких часов, чтобы убедиться, что VPN корректно обрабатывает весь интернет-трафик без потери доступа к локальным ресурсам.
Вопрос-ответ:
Как проверить, что мой клиент OpenVPN использует VPN как основной шлюз?
Для проверки используйте команду ip route на Linux или macOS, route print на Windows. В таблице маршрутов маршрут по умолчанию должен указывать на VPN-интерфейс (например, tun0). Дополнительно можно проверить внешний IP через curl https://ifconfig.me или открыв сайт https://ipinfo.io. Если отображается IP VPN-сервера, значит трафик полностью проходит через VPN.
Что делать, если после настройки VPN я не могу подключиться к локальным ресурсам сети?
Скорее всего, маршрут по умолчанию перекрывает локальную подсеть. Чтобы исправить, добавьте в конфигурацию клиента директиву route-nopull и вручную пропишите маршруты к локальной сети через route 192.168.1.0 255.255.255.0. На сервере можно использовать push «route 192.168.1.0 255.255.255.0 net_gateway», чтобы исключить локальные сети из перенаправления через VPN. После внесения изменений проверьте таблицу маршрутов.
Как настроить OpenVPN сервер так, чтобы все клиенты автоматически использовали VPN как основной шлюз?
В конфигурационный файл сервера добавьте директиву push «redirect-gateway def1». Это заставит подключенные клиенты перенаправлять весь интернет-трафик через VPN. Рекомендуется также указать DNS-сервер через push «dhcp-option DNS 10.8.0.1», чтобы запросы DNS разрешались через VPN. После внесения изменений сервер нужно перезапустить и проверить подключение клиента.
Какие инструменты помогут проверить стабильность соединения после перенаправления всего трафика через VPN?
Для проверки стабильности используйте ping к VPN-серверу и внешним ресурсам. На Linux и macOS полезна команда mtr, на Windows — tracert. Также можно отслеживать потерю пакетов и задержки в течение нескольких часов. Если наблюдаются разрывы, проверьте наличие директив keepalive 10 60 и корректность MTU на VPN-интерфейсе.
Как убедиться, что клиентская машина правильно сохраняет маршруты к локальной сети при использовании VPN?
После подключения к VPN проверьте таблицу маршрутов командой ip route или route print. Локальные подсети должны оставаться через локальный интерфейс, а маршрут по умолчанию проходить через VPN-интерфейс. Если локальная сеть недоступна, внесите корректировки с помощью route-nopull и ручного добавления маршрутов к локальным подсетям в клиентской конфигурации.
