Змінити мову
Українська English Русский Deutsch Español Français Italiano Tiếng Việt Türkçe Bahasa Indonesia हिन्दी 日本語 中文
Меню
Ціни
Проксі
ТИПИ ПРОКСІ
ЗА ЛОКАЦІЯМИ77 локації
Рішення
Ресурси

Як у Chrome використовувати проксі лише для деяких сайтів

Зміст
  1. Чи є в Chrome налаштування проксі для окремого сайту?
  2. Що робить PAC-скрипт?
  3. Якими способами можна передати Chrome PAC-скрипт?
  4. Чи може кожна вкладка працювати через свій проксі?
  5. Чому правило зі шляхом не спрацьовує на HTTPS-сайтах?
  6. Який спосіб обрати?
  7. Короткі відповіді

Коротко: У десктопному Chrome немає налаштування, яке застосовує проксі до окремих сайтів. Він використовує одну конфігурацію проксі для всього перегляду, яку бере з операційної системи, з прапорця запуску, з політики адміністратора або з розширення. Щоб через проксі йшли лише деякі сайти, Chrome потрібен PAC-скрипт. Це коротка функція, яка обирає проксі для кожного запиту; ви пишете її самі, або розширення будує її з правил.

Щоб використовувати проксі для окремих сайтів у Chrome, ви даєте браузеру PAC-скрипт, який називає ці сайти, і Chrome звертається до нього під час кожного запиту. Скрипт може надходити з трьох місць: з вашої операційної системи, з окремо запущеного Chrome або з розширення.

Чи є в Chrome налаштування проксі для окремого сайту?

Ні. На сторінці налаштувань Chrome є єдиний пункт про проксі, з підписом «Open your computer’s proxy settings» (відкрити налаштування проксі комп’ютера), і Chromium описує ці налаштування як такі, що діють для всього комп’ютера (рядки налаштувань Chromium).

Нотатки Chromium про проксі перелічують чотири місця, звідки Chrome може брати конфігурацію проксі: політика адміністратора, прапорці командного рядка, розширення й операційна система. Те з них, що діє в цей момент, дає одну конфігурацію для всього, що завантажує браузер, а рішення для окремого сайту живе всередині цієї конфігурації як PAC-скрипт.

Що робить PAC-скрипт?

PAC-скрипт (proxy auto-configuration, автоматичне налаштування проксі) це функція JavaScript з назвою FindProxyForURL. Chrome викликає її для кожного запиту з адресою та ім’ям хоста і використовує рядок, який вона повертає: DIRECT без проксі або PROXY host:port для проксі-сервера, як описано в довіднику MDN з PAC.

Цей скрипт пускає один домен і його піддомени через проксі, а все інше напряму. Адресу проксі взято з діапазону, зарезервованого для документації (RFC 5737); підставте замість неї свою.

function FindProxyForURL(url, host) {
  if (host === "example.com" || dnsDomainIs(host, ".example.com")) {
    return "PROXY 203.0.113.10:8080";
  }
  return "DIRECT";
}

Додайте по одній умові на кожен сайт, який має йти через проксі. Останній return вирішує, що буде з усіма сайтами, яких немає в списку.

Якими способами можна передати Chrome PAC-скрипт?

Трьома: через системні налаштування проксі, через окремо запущений Chrome або через розширення. Вони відрізняються тим, яку частину комп’ютера зачіпають і як набирає чинності зміна.

Через системні налаштування проксі

У Windows налаштування проксі мають параметр «setup script» (скрипт налаштування), куди вписують адресу скрипту, як показано в посібнику Microsoft, і Chrome дотримується системного налаштування. Скрипт має бути доступний за URL. Його використовуватимуть і всі інші програми, які читають системні налаштування проксі, тож цей спосіб підходить для скрипту, розрахованого на весь комп’ютер.

В окремому екземплярі Chrome

Chrome приймає прапорці проксі під час запуску, їх перелічено на сторінці мережевих налаштувань Chromium: --proxy-server називає один проксі, --proxy-bypass-list називає хости, які його обходять, а --proxy-pac-url вказує на скрипт. Запущений зі своїм --user-data-dir, другий Chrome працює поруч із вашим звичайним, бо два запущені екземпляри не можуть ділити один каталог даних (нотатки Chromium про каталог даних користувача).

google-chrome --user-data-dir="$HOME/chrome-proxied" --proxy-server="http://203.0.113.10:8080"

Такий екземпляр пускає весь свій трафік через проксі, тож маршрут сайту визначає вікно, у якому ви його відкриваєте. Щоб змінити проксі, треба закрити екземпляр і запустити його знову з новими прапорцями.

За допомогою проксі-розширення

Розширення задає проксі Chrome для профілю, у якому воно встановлене, через chrome.proxy API, а перемикач із правилами компілює їх у PAC-скрипт. Наш безкоштовний ProxyJam Connector працює саме так, у Chrome і в Microsoft Edge:

  1. Додайте профіль із хостом, портом і протоколом проксі.
  2. Додайте правило, наприклад «Domain + subdomains» (домен і піддомени) з example.com, що вказує на цей профіль. Виграє перше правило, під яке підпадає сайт.
  3. Лишіть резервний варіант на Direct, щоб сайти, які не підпадають під жодне правило, підключалися без проксі.
  4. Оберіть Auto у спливному вікні на панелі інструментів.

Для сайту, що підпадає під правило, скрипт Connector називає цей один проксі без варіанта напряму після нього. Якщо проксі не працює, сайт не завантажиться, і ваша власна адреса для нього ніколи не використовується.

Чи може кожна вкладка працювати через свій проксі?

У Chrome ні. chrome.proxy API зберігає одне значення для профілю і не приймає вкладку як параметр, тож у вкладки немає нічого власного, що можна задати.

Робоча одиниця це профіль або екземпляр. Створіть другий профіль Chrome для роботи через проксі і встановіть розширення там, або запустіть другий екземпляр зі своїми прапорцями, і тримайте два вікна поруч. Тоді кожне вікно має свій проксі.

Чому правило зі шляхом не спрацьовує на HTTPS-сайтах?

Chrome дає PAC-скрипту від адреси https:// лише схему, хост і порт. Шлях, параметри запиту і фрагмент вирізаються починаючи з Chrome 52, а параметр, який це вимикав, прибрали в Chrome 75 (нотатки Chromium про проксі).

Тому правило на зразок example.com/shop/* не збігається з жодною HTTPS-сторінкою. Пишіть правила за ім’ям хоста, а розділу сайту, якому потрібен власний маршрут, дайте окремий піддомен. Звичайні адреси http:// і далі доходять до скрипту зі шляхом, хоча Chromium радить на це не покладатися. Connector показує попередження поруч із кожним правилом, яке залежить від шляху.

Який спосіб обрати?

Для кількох сайтів і одного проксі розширення вимагає найменше зусиль, а сторінка розширення перелічує, що Connector може і чого не може в Chrome. Про проксі, який питає пароль, ідеться у статті чому Chrome весь час питає ім’я користувача й пароль від проксі, а про перенесення правил зі старішого перемикача у статті що змінилося з Manifest V3. Як налаштувати по одному профілю й проксі на країну, щоб перевірити, як ваш власний сайт виглядає на кожному ринку, описано у статті як переглянути свій сайт з іншої країни.

Якщо проксі, через який ви пускаєте ці сайти, має тримати одну адресу в мережі інтернет-провайдера, це і є ISP-проксі. ProxyJam продає статичні резидентні (ISP) проксі на сторінці ISP-проксі, а ціни є на сторінці цін.

Звідки береться маршрутизація і на що впливає кожен спосіб

Область дії взято з документації Chromium про те, звідки читаються налаштування проксі, і з описів самих прапорців; решта випливає з того, як налаштовується кожен метод. Вимірювань швидкості чи надійності ми не проводили. Хоч би де PAC-скрипт визначав маршрут, Chrome передає йому HTTPS-адресу лише як схему, хост і порт.
Системні налаштування проксіОкремий екземпляр ChromeПроксі-розширення
На що це впливаєНа кожну програму на комп'ютері, яка читає системні налаштуванняЛише на вікна цього екземпляраНа профіль Chrome, у якому встановлено розширення
Як вибираються сайтиPAC-скриптом, розміщеним за URLТим, у якому вікні ви відкриваєте сайтПравилами, які розширення перетворює на PAC-скрипт
Зміна налаштуваньВідредагувати розміщений скриптЗакрити й перезапустити з новими прапорцямиВідредагувати правило в розширенні
Проксі, якому потрібен парольChrome питає в діалоговому вікніChrome питає в діалоговому вікніРозширення може відповідати за HTTP- і HTTPS-проксі

Переконайтеся, яким маршрутом пішов сайт

  1. Додайте на хвилину до списку сторінку перевірки

    Додайте proxyjam.com до сайтів, які ваш скрипт чи правила пускають через проксі, поруч із сайтами, які вас цікавлять.

  2. Відкрийте сторінку перевірки

    Мій IP показує адресу, з якої до неї звернулися, а також інтернет-провайдера і мережу (ASN), яким ця адреса належить. І те, і інше має бути від проксі.

  3. Приберіть її зі списку й оновіть сторінку

    Тепер сторінка має показати ваше власне підключення. Якщо обидва результати відповідають очікуванням, сайти зі списку йдуть через проксі, а решта напряму.

Короткі відповіді

Чи робить те саме список обходу Chrome?

Він робить протилежне. Прапорець --proxy-bypass-list називає хости, які обходять проксі, і діє лише разом із --proxy-server, тож усе, чого немає в списку, іде через проксі. Щоб пустити через проксі короткий список сайтів, а решту лишити напряму, використовуйте PAC-скрипт.

Чи використовують вікна інкогніто той самий проксі?

Так, за замовчуванням. Документація API проксі Chrome каже, що вікна інкогніто успадковують налаштування звичайних вікон, а розширення може задати окреме значення для інкогніто, коли воно потрібне.

Чому Chrome пише, що використовує налаштування проксі з розширення?

Проксі задало розширення, а Chrome дозволяє розширенню або політиці адміністратора визначати це налаштування замість системного. Вимкніть розширення або перемкніть його в режим Direct (напряму), щоб повернути керування.

Що відбувається із сайтами, які не підпадають під жодне правило?

Вони отримують те, що скрипт повертає наостанок. У прикладі скрипту це DIRECT, тож такі сайти підключаються без проксі. ProxyJam Connector називає це резервним варіантом (fallback) і ставить його на Direct, доки ви не оберете інше. Браузерне розширення

Джерела