Wyłącz / włącz serwer proxy dla poszczególnych kart w przeglądarce Firefox

23

Czy w Firefoksie można wyłączyć / włączyć połączenie proxy dla poszczególnych kart?

Mogę uzyskać dostęp do Internetu z włączonym proxy i mogę uzyskać dostęp do naszych wewnętrznych serwerów z wyłączonym proxy, ale żadna konfiguracja nie pozwala na to drugie.

Mam wrażenie, że profile Firefoksa 4 na zakładkę mogą na to pozwolić, ale zastanawiałem się, czy istnieje sposób, aby to osiągnąć w Firefoksie 3.6.13, być może poprzez zastosowanie rozszerzenia.

Na razie robię sobie z QuickProxy (nie QuickProxy, który właśnie odkryłem, próbując znaleźć quickProxy), który pozwala mi włączać i wyłączać proxy dla całej przeglądarki, ale wolałbym coś bardziej szczegółowego.

Bogaty
źródło
6
Dotychczasowe odpowiedzi wydają się raczej kiepskie. O ile mi wiadomo, foxyproxy (co wszyscy sugerują) nie działa na zakładkę. Spośród trzech dotychczasowych odpowiedzi nie widziałem żadnego stanu, czy odpowiadają na pytanie na zakładkę, podejrzewam, że nie. Być może droga do rozwiązania byłaby możliwa, gdyby można uruchomić różne profile na różnych kartach, a każdy profil jest skonfigurowany dla innego serwera proxy. foxyproxy może być ok jako alternatywa, jeśli nie możesz dostać dokładnie tego, czego chcesz, ale nie o to pyta twoje pytanie (chyba że robi różne zakładki, co prawdopodobnie nie robi).
barlop
Nie rozwiązanie tab-by-tab, ale dodatek firefox „MM3-ProxySwitch” daje ikonę do przełączania między bezpośrednim / proxy jednym kliknięciem. Ikona zmienia kolor na szary, gdy proxy jest wyłączone, aby wizualnie informować o bieżącym stanie. Plik konfiguracyjny jest trochę tajemniczy, ale coś tak krótkiego, jak to robi powyższe przełączanie "[Bezpośrednio] [Privoxy http = myrouterip: 8118 ssl = myrouterip: 8118 noProxy = localhost, 127.0.0.1]"
yoyoma2

Odpowiedzi:

4

Kolejny głos na FoxyProxy, ale zasugeruję użycie funkcji PAC, jeśli Twoja konfiguracja jest złożona. Mam dwa serwery proxy do wyboru, ale który z nich jest czasem bardzo trudny. Aby skonfigurować FoxyProxy do korzystania z PAC, przejdź do Proxy Detailszakładki, wybierz Automatic Proxy Configuration URLi wprowadź coś podobnego file:///home/me/.myproxy.pac. Oto przykład pliku PAC:

function FindProxyForURL(url, host)
{
   var DIRECT = "DIRECT";
   var PROXY = "PROXY myproxy.company.com:80";
   var LOCAL = "PROXY localhost:8118";

   var rc = "";

// alert("My IP Address is: " + myIpAddress());

   // special: DIRECT / localhost
   if (dnsResolve(host) == "127.0.0.1") {
      rc = DIRECT;
   }

   // special: DIRECT / plain name (no domain name (i.e. no dots)) (e.g. http://foobar)
   // (must be local to where I'm at)
   else if (isPlainHostName(host)) {
      rc = DIRECT;
   }

   else {
      // special: LOCAL / not at home & restricted hosts
      if ((dnsDomainIs(host, "frank.home.com")) ||
          (dnsDomainIs(host, "firewall.home.com")) ||
          (dnsDomainIs(host, "backupserver.home.com"))) {
         // determine if we're at home or not; home can resolve the laser printer
         var AT_HOME = (isResolvable("myprinter.home.com") ? true : false);

         if (! AT_HOME) {
            rc = LOCAL;
         }
         else {
            rc = DIRECT;
         }
      }

      // general: DIRECT / not at work
      else {
         // determine if we're at work or not; work can resolve proxy server
         var AT_WORK = (isResolvable("myproxy.company.com") ? true : false);
         if (! AT_WORK) {
            rc = DIRECT;
         }

         // ASSUMED: AT_WORK

         // special: LOCAL / at work & broken work links
         // (must use local proxy server to connect)
         else if ((host == "download.company.com") ||
                  (host == "search.company.com") ||
                  (host == "www.company.com")) {
            rc = LOCAL;
         }

         // general: DIRECT / at work & work intranet links
         else if ((dnsDomainIs(host, ".company.com")) ||
                  (dnsDomainIs(host, ".companylocal.com")) ||
                  (dnsDomainIs(host, ".legacycompany.com"))) {
            rc = DIRECT;
         }

         // general: DIRECT / at work & 192.168.*
         else if (isInNet(host, "192.168.0.0", "255.255.0.0")) {
            rc = DIRECT;
         }

         // default: go through LOCAL
         else {
            rc = LOCAL;
         }
      }
   }

//   alert("Proxy for {" + host + "} is: " + rc);
   return rc;
}

Zauważ, że powyższy przykład jest dość nieefektywny, ponieważ zwykle kończy się wyszukiwaniem DNS na myproxy.company.com dla każdego połączenia HTTP; Twarde kodowanie AT_HOMEi AT_WORKplik .pac za pomocą zewnętrznego programu w czasie uruchamiania. Ale jest to przykład tego, jak skomplikowane może być wykonanie skryptu PAC, jeśli zajdzie taka potrzeba.

Joe Casadonte
źródło
-1

Dlaczego potrzebujesz proxy na podstawie karty? Czy Twoje środowisko programistyczne przekierowuje google.com do urządzenia LAN?

Czy wystarczające byłoby automatyczne używanie serwera proxy do witryn zewnętrznych ( http://superuser.com ), a nie do witryn wewnętrznych ( http://uri.to/internal/server )? Jeśli tak, powiedziałbym, że zajrzyj do posta Joe na temat funkcji PAC.

Pole „Brak serwera proxy dla:” na ekranie konfiguracji sieci (tak to się nazywa przynajmniej w FF4, nie mam tutaj zainstalowanego FF3) jest sposobem na wykonanie tych samych czynności bez tworzenia pliku PAC. Możesz go zignorować serwer proxy dla http://www.local.org , http://www2.local.org i 127.0.0.1, używając czegoś takiego.local.org, 127.0.0.1

KJP
źródło
Oto jeden scenariusz. Jeśli DNS domeny jest skonfigurowany przy użyciu ustawionych reguł geograficznych, będziesz potrzebować proxy na zakładkę, aby przetestować każdy region, aby sprawdzić, czy zwracane są odpowiednie wyniki DNS.
James Wong - Przywróć Monikę
Pytający stwierdził, że musi korzystać z proxy, aby uzyskać dostęp do zewnętrznych stron, i bez proxy, aby uzyskać dostęp do wewnętrznych stron. Proxy na zakładkę nie jest do tego potrzebny. Do tego celu służy ustawienie „Brak serwera proxy dla:”. (Jako przykład nie localhost, 10.0/8używam proxy do uzyskiwania dostępu localhosti 10.*.*.*)
aff 10'15
-3

Spójrz na FoxyProxy . Ma wiele opcji konfiguracji. Nie jestem pewien, czy pozwala to na konfigurację poszczególnych kart, ale zdecydowanie można skonfigurować różne ustawienia proxy dla różnych adresów. W ten sposób możesz skonfigurować jeden serwer proxy dla serwerów wewnętrznych (prawdopodobnie niektóre maski sieciowe, takie jak 192.168.0.0/24), a drugi dla Internetu.

GrzegorzOledzki
źródło
-3

Używam FoxyProxy od miesiąca jako dodatku do Firefoksa i jestem bardzo zadowolony z jego opcji. Za pomocą tego dodatku można skonfigurować wiele serwerów proxy; następnie dodaj adresy URL jako Białą listę dla serwera proxy, którego chcesz używać. Używaj symboli wieloznacznych, gdy jest więcej pasujących adresów URL.

Na przykład, masz Proxy1 i Proxy2, chcesz, aby wszystkie adresy URL Microsoft przechodziły przez Proxy1, a wszystkie inne używały Proxy2.

Oto, co musisz zrobić:

Edytuj domyślnego serwera proxy i podaj adres IP i port serwera Proxy2. Nie dodawaj żadnego wzorca adresu URL Utwórz serwer proxy jako serwer proxy 1 i podaj adres IP serwera proxy oraz port. We Wzorze adresu URL dodaj „* .microsoft.com *” (bez cudzysłowów) jako białą listę. Następnie ustaw FoxyProxy na „Używaj serwerów proxy na podstawie ich wstępnie zdefiniowanych wzorców i priorytetów”

Mam nadzieję że to pomoże.

TheMaskOfZero
źródło