Come modificare le impostazioni del mio proxy in base alla rete a cui mi collego?

18

La rete aziendale della mia azienda mi impone di impostare un proxy di rete per accedere alla rete, ma quando sono altrove, non ne ho bisogno.  Le impostazioni del proxy in Ubuntu (System - & gt; Preferences - & gt; Proxy server) mi hanno permesso di creare "locations" che posso selezionare manualmente. Quindi ho una posizione "predefinita" (senza proxy) e una posizione "di lavoro" (con il proxy della mia azienda al suo interno).

C'è un modo per fare in modo che Ubuntu selezioni automaticamente la posizione di "lavoro" in base alla connessione che sto utilizzando? Ho pensato di poter usare la subnet IP (molto specifica) per rilevare dove sono, ma non ho idea di come configurarlo ...

Modifica: ho davvero bisogno di avere le impostazioni del proxy impostate a livello di sistema. Tutte le mie connessioni di rete (IMAP, SMTP, chat, ecc.) Devono passare attraverso il proxy. Non solo il browser web.

    
posta Little Jawa 03.09.2010 - 21:13

7 risposte

6

Posso pensare a un modo, ma impostarlo sarà un po 'oscuro.

Fondamentalmente potresti usare un PAC file

Installa un server web sul tuo sistema, qualsiasi server web piccolo lo faccia, non hai bisogno di un sistema enorme come apache.

Crea un file wpad.dat con le direttive PAC che corrispondono in base al tuo indirizzo di origine, quindi configura il tuo sistema per utilizzare il proxy corretto.

In Firefox, configura il proxy in modo che punti al tuo file PAC locale. Probabilmente sarebbe qualcosa come http://localhost/wpad.dat .

Il tuo file PAC potrebbe sembrare un po 'come questo ( non testato ). Vedi qui per ulteriori esempi PAC .

function FindProxyForURL(url, host) {   
  // If on a internal/LAN IP address, send traffic direct.
  if (isInNet(myIpAddress(), "10.10.1.0", "255.255.255.0"))
  {        
    return "PROXY 1.2.3.4:8080; PROXY 4.5.6.7:8080; DIRECT";
  }
  else
  {
    return "DIRECT";
  }
}

Non l'ho mai provato e non sono in un sistema da testare, ma potresti anche essere in grado di specificare il file PAC usando un file:// URL in firefox, il che significherebbe che potresti saltare la configurazione del server web .

Naturalmente c'è anche la soluzione semplice e veloce, ma richiede un piccolo sforzo da parte tua mentre ti muovi tra le varie posizioni. Installa l'estensione proxy rapido e fai clic sul pulsante nella barra degli strumenti per attivare o disattivare proxy attivo o spento. Se desideri affrontare questo problema con un'estensione di Firefox, puoi anche provare FoxyProxy , supporta l'impostazione di più profili proxy e puoi facilmente passare da un profilo all'altro.

    
risposta data Zoredache 04.09.2010 - 01:28
5

In Ubuntu 10.10 lo script .pac funziona bene. Come spiegato da Zoredache, configura un server web, inserisci un file pac, apri System- & gt; Preferences- & gt; Network Proxy e imposta "URL di configurazione automatica" sul percorso del file pac.

Esempio di un file PAC che verifica il proprio indirizzo IP: /var/www/selectProxy.pac:

function FindProxyForURL(url, host)
 {
 if (myIpAddress() == "192.168.22.63") { 
 return "PROXY 192.168.22.8:8080";
 }
 else {
 return "DIRECT";
 }
 }

In Pref. proxy di rete: l'URL sarebbe:

http://localhost/selectProxy.pac
    
risposta data Markus 07.12.2010 - 09:18
3

Come aggiunta alla risposta di Zoredache, potresti usare uno script in /etc/network/if-up.d per generare uno snippet in /etc/profile.d/ contenente le variabili della shell proxy. Nota che funzionerà solo con nuove shell.

Inoltre, questo metodo potrebbe essere usato per generare un file WPAD, al quale potresti indirizzare qualsiasi browser che lo supporta.

    
risposta data Michel 12.10.2010 - 11:35
2

Questo è un post piuttosto vecchio, ma ho trovato questo. Dare un'occhiata: link

È possibile installare il pacchetto .deb fornito per Ubuntu. Questo è fondamentalmente uno script di shell che modifica le variabili di ambiente quando la rete cambia. Puoi configurare le impostazioni per ogni rete modificando i file di configurazione (automaticamente) creati in /etc/proxydriver.d/

    
risposta data user60158 04.05.2012 - 00:18
0

Ho lo stesso problema. Si prega di generalizzare eventuali risposte per includere la mia situazione.

Uso il mio laptop a casa su wireless: - sempre un'interfaccia eth1 indirizzo IP statico (192.168.1.10)

Quando vado a lavoro lo collego: - sempre un'interfaccia eth0 indirizzo IP dinamico (10.10.xx.xx), AND un proxy: porta 10.10.123.123 8888

Voglio che Ubuntu imposti automaticamente l'indirizzo IP e il proxy in base all'interfaccia che sto usando.

(Ho lavorato in / etc / network / interfaces [vedi "interfacce uomo" e /etc/resolv.conf senza alcun risultato.

    
risposta data Bill 05.09.2010 - 01:56
0

Uso l'approccio del file PAC e funziona bene per la navigazione ma non così bene per molte altre applicazioni che non comprendono i file PAC - Immagino che quando un'app richiede "proxy config" tramite l'API, recupera l'URL del file PAC se ne stai usando uno.

Per le applicazioni utente che non hanno il supporto proxy o non capiscono i file PAC (come Empathy), io uso tsocks (perché uso un tunnel SSH per il mio supporto proxy).

Il collegamento di un motore JavaScript o di un parser PAC ad ogni applicazione che supporta la configurazione proxy di base sembra eccessivo. Questo sembra essere un caso che potrebbe trarre beneficio da un supporto di piattaforma sottostante con una chiamata API che interpreti effettivamente il file PAC e restituisca il risultato, anziché il suo URL.

    
risposta data Adrian 01.11.2010 - 11:01
0

questo è un vecchio post a questo punto, ma sono venuto qui cercando un modo per farlo e ho trovato una risposta diversa. La risposta con cui sto lavorando risiede in un pacchetto chiamato 'whereami' e richiede di definire la sottorete del tuo lavoro nel suo file detect.conf e quindi definire il server proxy sul file whereami.conf. Dovrebbe funzionare, e posterò con qualsiasi problema che ho.

Buona fortuna!

    
risposta data Beex 31.03.2013 - 17:23

Leggi altre domande sui tag