вот ещё из каментов:
OpenVPN умеет посылать настройки DNS клиентам. Таким образом, если поднять свой DNS-сервер (тот же bind или dnsmasq), и настроить его на ответы внутрь VPN, то можно будет пользоваться.
У меня настройка такая:
— внутрь VPN смотрят bind, lighttpd и privoxy
— VPN не прописывается как шлюз по умолчанию.
— клиенты цепляются к VPN всегда, и настроены использовать bind как первичный DNS-сервер, и гуглоднс — как вторичный.
— браузеры настроены на использование proxy autoconfig file, который отдаётся lighttpd на сервере.
— proxy autoconfig файл генерируется по крону и направляет запросы для сайтов из черного списка на privoxy (черный список беру с antizapret). Остальные запросы идут напрямую.
Таким образом, VPN используется выборочно, для DNS-запросов и для загрузки сайтов из чёрного списка, что очень удобно.
Минус такого подхода — необходимость полноценного доступа к VPN серверу (VPN-провайдеры не подойдут), и наличие знаний для настройки всего этого хозяйства.
В качестве апгрейда я накатил openvpn клиент на роутер, открыв всем устройствам в домашней сети доступ в VPN, и настроив dnsmasq на роутере на работу с bind. Так что любое устройство с минимальными настройками может пользоваться туннелем.