Чи можу я змусити Windows 7 змінити налаштування проксі-сервера на основі мого підключення до мережі?


26

Переміщуючи мій LapTop між роботою та домом, мені потрібно змінити налаштування Інтернет-проксі. Чи існує спосіб побудови, щоб Windows 7 міняв ці налаштування на основі моєї активно активної мережі?


1
Ой, мені б хотілося, щоб мій ноутбук робив те саме, просто ліниво шукати відповідь :-(
Іво Фліпс,

Відповіді:


20

Ви можете встановити це за допомогою PAC (сценарій автоматичної конфігурації проксі). Це невеликі сценарії, написані на Javascript, які дозволяють вам вказати різні правила підключення. Більшість сучасних веб-браузерів для настільних комп'ютерів можуть читати їх без проблем, у мене однаковий налаштований як в Internet Explorer, так і в Firefox.

Мінімальний файл PAC, який завжди надсилає вас на проксі-сервер proxy.companyname на порт 81:

function FindProxyForURL(url, host)
{
     return "PROXY proxy.companyname:8080";
}

І трохи складніший приклад файлу PAC, який перевіряє, в якій мережі ви переглядаєте, який діапазон IP-адрес ви вибрали. У цьому прикладі всім клієнтським ПК у вашій компанії надається IP-адреса в діапазоні 10.10. * DHCP та доступ до Інтернету через проксі-сервер proxy.companyname на порту 81.

//Turn debug mode on by setting debug variable to any non-empty string
//Note that "" is an empty string, and that "0", "1" & "test" are not empty strings.


function FindProxyForURL(url, host)
  {
    var ip = myIpAddress();
    var debug = "";

    if(debug)
    {
        alert("proxy.pac IP=" + ip + "  HOST=" + host + "  URL=" + url);
    }

      // All client PCs on the internal network will have a 10.10.x.x address, check if I have this
     if (shExpMatch(ip, "10.10.*"))
     {
             if(debug)
          {
                 alert("Proxy for " + url);
             }
     return "PROXY proxy.companyname:81";
     }

     // If you have a different IP then this isn't the company network
     else 
     {
             if(debug)
          {
      alert("You are not at CompanyName so going direct for " + url);
             } 
            return "DIRECT";
     }

  }

У скрипті також є режим налагодження, який ви можете використовувати для перевірки того, що він працює і в якому режимі (підключення PROXY або DIRECT) він вважає, що має бути поточним з'єднанням.

Ви також можете зробити більш складний скрипт, який перевіряє такі речі, як, якщо сервер, до якого ви підключаєтесь, знаходиться у вашій внутрішній мережевій мережі (і, таким чином, хоче ДИРЕКТНЕ з’єднання, хоча ваш ПК зараз знаходиться в мережевій мережі). d помістіть усе, що зазвичай ставите, у поле винятків проксі-серверів IE, розгорнувши його так:

//Turn debug mode on by setting debug variable to any non-empty string
//Note that "" is an empty string, and that "0", "1" & "test" are not empty strings.


function FindProxyForURL(url, host)
  {
    var ip = myIpAddress();
    var debug = "";

    if(debug)
    {
        alert("proxy.pac IP=" + ip + "  HOST=" + host + "  URL=" + url);
    }

    // Detect if trying to connect to internal/intranet host
    if(isPlainHostName(host) || dnsDomainIs(host, "intranet.companyname"))
    {
 if(debug)
 {
            alert("Direct for " + url);    
     }
    return "DIRECT";   
    }

    // Detect if trying to connect to URLs on the internal network via internal DNS suffix or IP address
    if(shExpMatch(url, "*.companyname") || shExpMatch(host, "10.100.*"))
    {
 if(debug)
 {
     alert("Direct for " + url);
 } 
        return "DIRECT";    
    } 

     // All client PCs on the internal network will have a 10.10.x.x address, check if I have this
     if (shExpMatch(ip, "10.10.*"))
     {
             if(debug)
          {
                 alert("Proxy for " + url);
             }
     return "PROXY proxy.companyname:8080";
     }

     // If you have a different IP then this isn't the company network
     else 
     {
             if(debug)
          {
      alert("You are not at CompanyName so going direct for " + url);
             } 
            return "DIRECT";
     }

  }

Використовуйте цей файл, зберігаючи його десь на C-диску вашого ПК як щось на зразок proxy.pac, потім для Internet Explorer перейдіть до Інструменти -> Параметри (або Панель управління -> Параметри Інтернету), потім перейдіть на вкладку Підключення, натисніть кнопку Налаштування локальної мережі. . Тепер вийміть галочку з поля "Використовувати проксі-сервер" внизу, а замість цього поставте галочку в "Використовувати сценарій автоматичної конфігурації" та введіть адресу свого файлу PAC, використовуючи файл: // URL-адреса, як file://C:/proxy.pac.

Налаштування проксі IE

Крім того, для Firefox перейдіть до Інструменти -> Параметри, перейдіть на вкладку Додатково, натисніть на вкладку Мережа, натисніть кнопку Налаштування, натисніть налаштування "Автоматична URL-адреса конфігурації проксі", знову використовуючи файл: /// URL (зверніть увагу, що у Firefox немає - це 3 риски після товстої кишки, наприклад file:///C:/proxy.pac.

Налаштування проксі Firefox


Зауважте, що Internet Explorer 11 змінив цю поведінку, і тепер ви не можете завантажити файл PAC з URL-адреси "file: //", ви повинні використовувати URL "HTTP: //" або "HTTPS: //".

У Internet Explorer 11 команда WinINET відключила підтримку WinINET для файлових // сценаріїв для сприяння сумісності між мережевими стеками. Корпораціям рекомендується замість цього розміщувати свої сценарії налаштування проксі-серверів на сервері HTTP або HTTPS.

Існує обхід, який може на сьогодні ввімкнути цю функцію, але не рекомендується використовувати її, оскільки майбутні оновлення також можуть відключити цю функцію.

Як тимчасове вирішення, цей блок можна видалити, встановивши наступний ключ реєстру:

Ключ: HKLM \ SOFTWARE \ Policies \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \
Значення: EnableLegacyAutoProxyFeatures
Тип: REG_DWORD
Дані: 1

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

Зауважте також, що після внесення цієї зміни в IE11 вам потрібно буде змінити налаштування адреси для сценарію автоматичного налаштування, оскільки IE 11 приймає для цього лише один синтаксис (див. Нижню частину пов'язаної статті в блозі IE Internals нижче).

Однак, як зазначалося, малоймовірно, що це вирішення ключа ключа реєстру продовжить працювати в майбутніх версіях Internet Explorer, тому вам набагато краще знайти спосіб утримувати PAC на веб-сервері. Вбудований веб-сервер IIS для Windows зробив би більше, а там є ще мінімальні, які могли б працювати і для встановлення на ваш ноутбук.

Детальніше про запис у блозі IE Internals Розуміння конфігурації веб-проксі .


Це дуже круто, поки ви не потрапите в іншу загальнодоступну бездротову мережу, використовуючи той самий приватний діапазон IP, як я, звичайно, використовую вдома. :)
dannysauer

Гарний пост. Добре написано.
Джефф Ф.

1
Це не працює у Віндосі 8.1
Milind R

3
Щоб розширити коментар @ MilindR вище, файли PAC все ще знаходяться у Windows 8 / IE11, але вам потрібно завантажити свій файл PAC з URL-адреси HTTP або HTTPS, він не може просто використовувати шлях на основі файлів або UNC. Більше інформації від команди Internet Explorer тут Розуміння конфігурації веб-проксі та ця відповідь оновлена, щоб відобразити зміни IE11.
GAThrawn

4

Використовуйте безкоштовний IP-комутатор 1.0

alt текст

Опис:

Кожен раз, коли користувач мобільного мобільного телефону переходить на іншу мережу, він повинен змінювати конкретну IP-адресу, адресу шлюзу, маску підмережі, проксі-сервер і принтер за замовчуванням тощо, для конкретного мережевого середовища. Для цього він повинен запам'ятати інформацію про параметри TCP / IP кожної мережі. Також йому доведеться перезавантажити комп’ютер, щоб застосувати його до системи та отримати доступ до Інтернету.

Не витрачайте час на перенастроювання параметрів комп’ютерної мережі щоразу, коли ви змінюєте своє місцезнаходження. Безкоштовний IP-комутатор - ідеальне рішення для вас. Він перемикається між попередньо налаштованими мережевими налаштуваннями одним клацанням миші та без перезавантаження. За допомогою безкоштовного IP-комутатора ви можете автоматично змінювати всі мережеві налаштування вашого ПК: IP-адресу, мережеві маски, шлюз за замовчуванням, DNS-сервер, сервер-виграш, налаштування проксі, принтер за замовчуванням тощо.

Особливості:

  • Перемикайте налаштування мережі IP "на льоту" без перезавантаження
  • Переключити налаштування проксі-сервера Internet Explorer
  • Переключіть принтер за замовчуванням
  • Переключіть ім’я комп’ютера та робочу групу
  • Імпортуйте поточні налаштування мережі в налаштування
  • Підтримка значка системного трея, автозапуск із Windows
  • 100% шпигунське БЕЗКОШТОВНО, НЕ містить шпигунських програм, рекламного ПЗ або вірусів

2
Я не можу повірити, що щось таке корисне, як профілі конфігурації мережі, ще не ввійшло до складу Windows 7. У Ubuntu є це, у Mac OS X є. . .
dreamlax

Я знаю, що Dell зробив такий інструмент для своєї Latitude, але мені це не подобалося :-(
Іво Фліпсе

Версія для завантаження не працює для Windows /
Hakan Forss,

@IvoFlipse Чи можете ви пригадати, що називається?
Matthys Du Toit

@MatthysDuToit Я не можу
Іво Фліпс

3

У вас є інші (платні) альтернативи комутації мережевих конфігурацій, такі як Mobile Net Switch або NetSetMan


+1 для NetSetMan, найпростіший спосіб змінити проксі в IE
miky
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.