OpenVPN подключен, но не открываются сайты: настройка redirect-gateway
Суть проблемы: туннель есть, а сайты не грузятся
Значок клиента OpenVPN горит зеленым цветом, статус сообщает «Initialization Sequence Completed», однако в браузере перестают открываться любые веб-сайты с ошибкой DNS_PROBE_FINISHED_NO_INTERNET или бесконечной загрузкой страниц. При этом внутренние IP-адреса самого VPN-сервера могут успешно пинговаться.
Причины отсутствия интернета в OpenVPN
| Причина | Что происходит | Где исправлять |
|---|---|---|
| Не передается шлюз по умолчанию | Клиент отправляет веб-трафик мимо VPN в домашний интернет | Конфиг сервера server.conf |
| Не настроен NAT/Masquerade на VPS | Сервер принимает пакеты от клиента, но не выпускает их в мир | Фаервол iptables / ufw на сервере |
| Не выданы DNS-серверы | Браузер не может преобразовать имена сайтов в IP-адреса | Опция dhcp-option DNS |
| Выключен IP Forwarding в Linux | Ядро Linux на VPS блокирует пересылку чужих пакетов | Файл /etc/sysctl.conf |
Пошаговое исправление конфигурации OpenVPN
- Включаем пересылку трафика через VPN на сервере (server.conf):
Откройте файл конфигурации OpenVPN сервера (
/etc/openvpn/server/server.conf) и раскомментируйте следующие строчки:push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 1.1.1.1" - Включаем маршрутизацию пакетов в ядре Linux:
Откройте файл
/etc/sysctl.conf, найдите и раскомментируйте параметр:net.ipv4.ip_forward = 1Примените настройку без перезагрузки:
sudo sysctl -p. - Настраиваем трансляцию адресов NAT (iptables):
Сервер должен выпускать трафик клиентов через свой публичный сетевой адаптер (узнайте имя интерфейса через
ip a, напримерeth0):# Добавляем правило маскарадинга: sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE # Сохраняем правила iptables: sudo apt install iptables-persistent -y sudo netfilter-persistent save - Перезапускаем службу OpenVPN:
sudo systemctl restart openvpn-server@server
Если вы правите только файл клиента (.ovpn): Добавьте в конец вашего клиентского файла конфигурации строку redirect-gateway def1, чтобы принудительно перенаправить весь системный трафик в туннель со стороны Windows/macOS.
Частые вопросы (FAQ)
Что означает флаг def1 в параметре redirect-gateway?
Флаг def1 переопределяет шлюз по умолчанию двумя маршрутами /1 вместо перезаписи старого /0. Это предотвращает поломку исходного маршрута к самому VPN-серверу.
Почему 8.8.8.8 пингуется, а google.com не открывается?
Это классический признак неработающего DNS. Добавьте в файл клиента или сервера директиву push "dhcp-option DNS 8.8.8.8".
Как пустить через OpenVPN только доступ к рабочей сети, оставив интернет домашним?
Удалите redirect-gateway и укажите точечный маршрут только до подсети офиса: push "route 192.168.1.0 255.255.255.0".
Нужно ли настраивать фаервол UFW, если он включен на Ubuntu VPS?
Да, в файле /etc/default/ufw укажите DEFAULT_FORWARD_POLICY="ACCEPT", а в /etc/ufw/before.rules добавьте блок *nat с правилом MASQUERADE.