@Tweedlex77
Куплены услуги VPN провайдера xeovo.com с протоколами Wireguard и OpenVPN на выбор.
Задача — на уровне приложения (конкретный браузер) или на уровне доменов настроить пропускание трафика через VPN.
Например — все сайты в браузере Firefox будут открываться через VPN. Или определенные сайты во всех браузерах будут открываться через VPN.
Как можно технически реализовать это на десктопе с Linux?
Знаю, что подобный функционал есть в приложении AmneziaVPN. Но заставить работать его с данным VPN провайдером у меня не получилось.
Решения вопроса 1
@Tweedlex77
По началу основной упор был сделан на протокол Wireguard. Так как он более быстрый + я узнал о программе Wireproxy.
С помощью программы Wireproxy я поднял локальный прокси, к которому подсоединялся с помощью расширения в браузере FoxyProxy.
Получилась следующая схема:
Браузер с FoxyProxy -> Wireproxy -> VPN сервер с WireGuard.
С точки зрения функциональности и безопасности меня такое решение устраивало. Но я заметил очень жесткую просадку скорости в 10 раз. Причем, тестировал в режиме работы Wireproxy как и SOCKS, так и HTTP — разницы не заметил.
Дальше, нашел статью о том, как можно настроить выборочный обход блокировок по доменным именам (для этого требуется роутер с OpenWRT). Решение очень интересное. Но оно в первую очередь для удобного обхода блокировок.
С точки зрения безопасности, ты не всегда можешь наглядно видеть, открылся ли у тебя сайт через VPN или нет.
Ну и листая интернеты, нашел замечание о том, что Wireguard работает на транспортном уровне с IP адресами, поэтому решения с пропусканием трафика через VPN для определенных доменов всегда будет громоздкими.
И это натолкнуло меня на идею, которая лежала на поверхности. Просто развернуть vm в VirtualBox, которая всегда будет подключена к VPN при старте ОС.
Для этого я использовал Linux Mint 21.2 и официальный гайд VPN провайдера.
В итоге, пользуюсь VPN с помощью виртуальной машины и её браузера. Просадок по скоростям нет, данный способ рекомендую.
P.S. Еще я пробовал на виртуальной машине с Linux в докер-контейнере запускать бразуер. Решение тоже довольно интересное.
С браузера хостовой ОС ты можешь подключиться к сервису докер-контейнера и у тебя в вкладке браузера будет Firefox (браузер в браузере). И так как сама vm подключена к VPN, то, соответственно, этот браузер будет открывать все вкладки через VPN.
Ответы на вопрос 3
@SignFinder
2. Установить на linux десктопе любой http\socks проксисервер, который будет в качестве выходного интерфейса иметь VPN и отправлять трафик в VPN.
3. Настроить работу через прокси в приложении\браузере, поставить расширение типа foxyproxy, которое будет перенаправлять по именам сайтов трафик через определенный прокси.
А еще есть socksify\proxyfy приложения, которые умеют перенаправлять весь трафик с приложений в определенный прокси.
@dronmaxman
https://www.redhat.com/sysadmin/use-net-namespace-vpn
Вариант 2 — мне больше нравиться, за 5 минут настроил на macOS
https://github.com/pufferffish/wireproxy
brew install go git
git clone https://github.com/octeep/wireproxy
cd wireproxy
make
vpn-proxy.conf
# Link to the Downloaded config
WGConfig = ./wg-client.conf
# Used for firefox containers
[Socks5]
BindAddress = 127.0.0.1:25344 #
RUN
./wireproxy -c vpn-proxy.conf
И идем настраивать прокси socks в firefox на порт 25344
Я использую WARP от cloudFlare, это тоже WG, он условно бесплатный и их клиент из коробки умеет быть прокси.
@Viji