Добрый день.
Подскажите, использую Ubuntu, купил VPN, встроенный клиент в убунту OpenVPN успешно работает. Но как сделать так, чтобы он работал только по определенным сайтам, которые указаны в Proxy.pac. Как их скрестить?
Не совсем ваш случай, но если бы VPN был по протоколу wireguard, то можно было бы использовать wireproxy как клиент, а в pac-файле записать локальный SOCKS-адрес wireproxy.
Возможно есть аналог wireproxy для openVPN.
Маршрутизация, в общем случае, работает на уровне IP-адресов и подсетей, а не на уровне отдельных программ или доменов.
Сделать доступ через VPN только к отдельным подсетям можно, добавив следующие строки в конфигурационный файл ovpn:
route-nopull
Далее добавлять отдельные IP-адреса или диапазоны командой route:
route network/IP [netmask]
Пример:
route-nopull
route 8.8.8.8 255.255.255.255
Также можно исключить отдельные диапазоны адресов, чтобы они работали не через VPN.
Пример:
route 8.8.8.8 255.255.255.255 net_gateway
В этом случае добавлять route-nopull не нужно.
Узнать IP-адреса отдельных доменов можно консольной командой nslookup. Пример:
$ nslookup ya.ru
Server: 192.168.101.1
Address: 192.168.101.1#53
Non-authoritative answer:
Name: YA.RU
Address: 87.250.250.242
Name: ya.ru
Address: 2a02:6b8::2:242
IPv4-адрес ya.ru — 87.250.250.242.
Если хочется сделать более гибкую систему, для Linux есть GitHub - dboyd13/DSVR: Domain-Specific-VPN-Router и GitHub - mrahmadt/SmartGW: Domain based VPN Gateway/Proxy for all devices, не знаю, насколько они работоспособны.
Также можно локально установить контайнер антизапрета и подключить в нём VPN, как вариант.
В случае с антизапретом, если пишу сайт, или захожу в соцсеть закрытую, он автоматом понимает, что нужно пробрасывать через ВПН. Точно так же торенты, заходишь на сайт, выбираешь раздачу, но остальной трафик бежит без ВПН. Но в конфиге то не указаны вручную сайты. Какой то список то в любом случае есть, я бы хотел этот список как то подружить со сторонним ВПН.
Я понял, в моем случае нужен vps + antizapret vpn container
А этот конфигурационный файл, имеется ввиду /etc/openvpn/server/server.conf ?
Нет, клиентский.
Проще SOCKS5 прокси для этих целей использовать:
Convert TUN/TAP to Socks5/HTTP proxy (OpenVPN as proxy)
Openvpn → proxy
OpenVPN: Cannot connect with –pull-filter ignore redirect-gateway