LINUXTALKS.CO
БлогиHow-to

Настраиваем для браузера несколько выходов на внешние прокси и удобно переключаемся между ними

 , , , ,

L


0

1

Почему не VPN

Как выяснилось, очень неудобно когда включив на компьютере VPN оказывается, что половина сайтов отказываются работать там, куда он ведёт. В голову пришла идея, что если бы в каждой вкладке браузера были свои уникальные параметры соединения, это был бы идеальный вариант.

Суть решения

Дело в том, что мне нравятся Google Chrome и его производная Microsoft Edge, но вот беда, нормально работать с прокси они не умеют. Поэтому проводя некоторые изыскания я смог создать рабочий конфиг на основе privoxy и плагина для упомянутых браузеров Proxy SwitchyOmega.

privoxy обеспечивает socks5 соединение, а Proxy SwitchyOmega даёт возможность менять параметры подключения в любой момент, в том числе автоматически по выбранному шаблону, при этом может работать с несколькими внешними прокси.

Ссылки на официальные страницы проектов:

Возможно есть более изящное решение, тут мы имеем дело с типичным конструктором и собираем все компоненты в целое самостоятельно. И это хорошо!

Описание задачи

У нас есть приложение, умеющее работать с прокси, если конкретно, то в данном случае – это браузер на основе Chromium: Chrome или Edge.

2 внешних socks5 проски с авторизацией.

Мы хотим, некоторые, заранее известные сайты, посещать через прокси ONE, другие через прокси TWO, а все остальные напрямую. Так же хочется иметь возможность быстро включать работу через прокси для всех вкладок, или наоборот, задействовать прямой выход на все вкладки.

В общем сможем в любой момент менять параметры соединения сайтов, просто кликая мышью.

Установка

Privoxy, установка и конфигурирование

Раз у нас 2 внешних прокси, нам нужно поднять 2 http(s) прокси локально, для этого настроим 2 экземпляра privoxy. Данные действия выполнялись на Suse Tumbleweed, для Ubuntu должно подойти всё, или почти всё, с небольшими отличиями.

Сперва установка:

Получаем root

sudo -i

Suse Tumbleweed:

# zypper in privoxy

Ubuntu:

# apt install privoxy

Далее одинаково для любых systemd систем:

Создаём новые экземпляры конфигураций для One и Two копированием оригинального файла конфигурации:

# cp /etc/privoxy/config /etc/privoxy/config_One
# cp /etc/privoxy/config /etc/privoxy/config_Two

Теперь нужно в каждом новом файле нужно найти строчку listen-address 127.0.0.1:8118 и заменить её на

В файле config_One: listen-address 127.0.0.1:8128

В файле config_Two: listen-address 127.0.0.1:8138

Теперь нужно найти строку похожую на forward-socks5 / user:pass@ip_address:port .. И указать в файлах config_One и config_Two свои параметры для соединения с внешним прокси (первый и второй соответственно).

Далее необходимо настроить конфигурацию запуска новых экземпляров privoxy, для этого создадим юниты systemd, как и в первом случае копированием оригинального юнита:

# cp /usr/lib/systemd/system/privoxy.service /home/unclestephen/Документы/privoxy/privoxy_One.service
# cp /usr/lib/systemd/system/privoxy.service /home/unclestephen/Документы/privoxy/privoxy_Two.service

Отредактируем их, чтобы получилось так:

# cat /usr/lib/systemd/system/privoxy_One.service
[Unit]
Description=Privoxy Web Proxy With Advanced Filtering Capabilities
After=network.target

[Service]
# added automatically, for details please see
# https://en.opensuse.org/openSUSE:Security_Features#Systemd_hardening_effort
ProtectSystem=full
ProtectHome=true
PrivateDevices=true
ProtectHostname=true
ProtectClock=true
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectKernelLogs=true
ProtectControlGroups=true
RestrictRealtime=true
# end of automatic additions 
Type=forking
PIDFile=/run/privoxy_One.pid
ExecStartPre=-/usr/bin/cp -upf /etc/resolv.conf /etc/host.conf /etc/hosts /etc/localtime /var/lib/privoxy/etc/
ExecStartPre=-/usr/bin/cp -upf /lib64/libresolv.so.2 /lib64/libnss_dns.so.2 /var/lib/privoxy/lib64/
ExecStart=/usr/sbin/privoxy --chroot --pidfile /run/privoxy_One.pid --user privoxy /etc/config_One
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

и вот так:

# cat /usr/lib/systemd/system/privoxy_Two.service
[Unit]
Description=Privoxy Web Proxy With Advanced Filtering Capabilities
After=network.target

[Service]
# added automatically, for details please see
# https://en.opensuse.org/openSUSE:Security_Features#Systemd_hardening_effort
ProtectSystem=full
ProtectHome=true
PrivateDevices=true
ProtectHostname=true
ProtectClock=true
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectKernelLogs=true
ProtectControlGroups=true
RestrictRealtime=true
# end of automatic additions 
Type=forking
PIDFile=/run/privoxy_Two.pid
ExecStartPre=-/usr/bin/cp -upf /etc/resolv.conf /etc/host.conf /etc/hosts /etc/localtime /var/lib/privoxy/etc/
ExecStartPre=-/usr/bin/cp -upf /lib64/libresolv.so.2 /lib64/libnss_dns.so.2 /var/lib/privoxy/lib64/
ExecStart=/usr/sbin/privoxy --chroot --pidfile /run/privoxy_Two.pid --user privoxy /etc/config_Two
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

Эти 2 файла можно взять без изменений, для Suse точно.

Теперь делаем:

# sudo systemctl daemon-reload
# systemctl start privoxy_One.service
# systemctl enable privoxy_One.service
# systemctl start privoxy_Two.service
# systemctl enable privoxy_Two.service

Если при выполнении этих команд ничего не ругнулось, значит всё запустилось и возможно даже работает.

Установка и настройка Proxy SwitchyOmega

Ссылка на магазин приложений Chrome, тут, я думаю, затруднений быть не должно.

Далее настраиваем плагин, указываем наши прокси как http, с адресом 127.0.0.1 и портом 8128 для One, порт 8138 для Two.

В разделе «auto switch» укажите что использовать для каких сайтов, указывая домены сайтов по маске.

В общем, там всё довольно интуитивно и работает без сбоев, не забывайте нажимать «Apply changes».

Чтобы убедиться что всё работает правильно, посетите какой-нибудь сайт, который покажет вам ваш IP адрес, например https://whatismyipaddress.com/

Можно поиграться с настройками пока не будет получен ожидаемый результат.

За сим всё!

★★★★★

Проверено: cocucka ()

У меня просто NekoRay, в нем VLESS-прокся, настроенная на арендованном сервере. А все маршруты куда ходить через проксю, а куда без нее в настройках некорея прописываются

Qwentor    
★★★★★★★
Android / Chrome (RU)
Ответ на: комментарий от Oberstserj

да нет, в моей схеме нужно осилить только настройку привокси, одну, две, три

всё остальное сможет делать твоя бабушка из браузера

никаких маршрутов, конфигурационников и прочих сношений с консолью

так-то

Shulman    
★★★★★
Linux / Chrome (GB)
Ответ на: комментарий от Shulman

Да к тебе ваше претензий ноль, годное дело делаешь.

Я ваще по-старинке отдельный браузер гоняю в виртуалке…ну…это исторически сложилось))

Oberstserj    
★★★★★★
Ubuntu / Firefox (NL)

Троллейбус из буханки хлеба, чтобы изобрести FoxyProxy

TheAnonymous    
★★★★★★★★★★★
Linux / Firefox (T1)
Ответ на: комментарий от Qwentor

А все маршруты куда ходить через проксю, а куда без нее в настройках некорея прописываются


Где там это настраивается?
А там только по ip или по доменам тоже можно?

damix9    

Windows / Firefox (RU)
Ответ на: комментарий от Shulman

Я имею в виду, зачем вообще может быть нужно больше одной?

На лоченые сайты через проксю, на остальные напрямую, а другая прокся зачем?

damix9    

Windows / Firefox (RU)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)