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


20

La rete aziendale della mia azienda mi richiede di impostare un proxy di rete per accedere alla rete, ma quando sono altrove, non ne ho bisogno. Le impostazioni proxy in Ubuntu (Sistema -> Preferenze -> Server proxy) mi hanno permesso di creare "percorsi" che posso selezionare manualmente. Quindi ho una posizione "predefinita" (senza proxy) e una posizione "lavorativa" (con il proxy della mia azienda al suo interno).

C'è un modo per fare in modo che Ubuntu selezioni automaticamente la posizione "lavoro" in base alla connessione che sto usando? Pensavo di poter usare la sottorete IP (molto specifica) per rilevare dove mi trovassi, ma non ho idea di come configurarlo ...

Modifica: ho davvero bisogno di avere le impostazioni 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.

Risposte:


7

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

Fondamentalmente potresti usare un file PAC

Installa un web server sul tuo sistema, qualsiasi minuscolo web server farà, non hai bisogno di un sistema enorme come Apache.

Creare un file wpad.datcon le direttive PAC corrispondenti in base all'indirizzo di origine, quindi configurare il sistema per utilizzare il proxy corretto.

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

Il tuo file PAC potrebbe apparire in qualche modo simile ( 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 grado di testare un sistema, ma potresti anche essere in grado di specificare il file PAC utilizzando un file://URL in Firefox, il che significa che potresti saltare l'impostazione del server web.

Naturalmente c'è anche la soluzione semplice e veloce, ma richiede un piccolo sforzo da parte tua mentre ti muovi tra le posizioni. Installa l' estensione Quick Proxy Firefox e fai clic sul pulsante sulla barra degli strumenti per attivare o disattivare il proxy. Se sei disposto a gestirlo 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.


Interessante ... Dovrò provare. Ti dirò come risulta. Penso che l'estensione di Firefox non farà comunque: il proxy è usato per tutti i protocolli, non solo HTTP. Quindi ne ho bisogno anche per Empathy, Evolution, tutto.
Little Jawa,

Oh, e un'altra cosa. Potresti chiedere al tecnico IT di configurare WPAD. Quindi puoi semplicemente usare l'opzione proxy automatica.
Zoredache,

Beh ... fare dell'IT qualcosa non è un'opzione, temo. Posso fare una richiesta, ma di certo non vedrò accadere nulla. Nessuna giustificazione commerciale significa nessuna risorsa per farlo. E sarò più veloce a farlo da solo che a scrivere una giustificazione :-)
Little Jawa

Ok. Dopo un po 'più di lettura, non sono soddisfatto di questa soluzione. Sembra che funzionerebbe (non ho provato a implementarlo), ma non sarebbe disponibile a livello di sistema. Funzionerebbe solo per il browser Web, poiché (secondo findproxyforurl.com/index.html ) il sistema è supportato solo nel browser Web (perché si basa su Javascript).
Little Jawa,

5

In Ubuntu 10.10 lo script .pac funziona bene. Come ha spiegato Zoredache, imposta un server web, inserisci lì un file pac, apri Sistema-> Preferenze-> Proxy di rete e imposta "URL di autoconfigurazione" nella posizione del file pac.

Esempio di un file PAC che controlla 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";
 }
 }

Nelle preferenze proxy di rete: l'URL sarebbe:

http://localhost/selectProxy.pac

3

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

Inoltre, questo metodo potrebbe essere utilizzato per generare un file WPAD, al quale è possibile puntare qualsiasi browser che supporti questo.


2

Questo è un post piuttosto vecchio, ma l'ho trovato. Dai un'occhiata: http://marin.jb.free.fr/proxydriver/

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


2
Sebbene ciò possa teoricamente rispondere alla domanda, sarebbe preferibile includere qui le parti essenziali della risposta e fornire il collegamento come riferimento.
Eliah Kagan,

0

Ho lo stesso problema. Ti preghiamo di generalizzare tutte le risposte per includere la mia situazione.

Uso il mio laptop a casa in modalità wireless: - sempre indirizzo IP statico dell'interfaccia eth1 (192.168.1.10)

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

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

(Ho fatto un casino in / etc / network / interfaces [vedi "interfacce man" e /etc/resolv.conf inutilmente.


1
Se ho capito: la tua scheda Wifi ha un IP statico, quindi è già impostata "automaticamente". E la tua rete cablata è impostata dal DHCP - che è anche automatico ... Allora cosa vuoi aggiungere a questo, riguardo alle impostazioni IP? Capisco la necessità del proxy, ma non l'IP.
Little Jawa,

Sai, penso che tu abbia ragione. Sono tornato al lavoro dopo Holdiays e sembra funzionare automaticamente. Penso che l'unico problema sia il proxy. Domani indagherò di più.

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 "configurazione proxy" tramite l'API, ottengono semplicemente il URL del file PAC indietro se ne stai usando uno.

Per le applicazioni utente che non dispongono di supporto proxy o che non comprendono i file PAC (come Empathy), utilizzo tsocks (perché utilizzo un tunnel SSH per il mio supporto proxy).

Collegare un motore JavaScript o un parser PAC a tutte le applicazioni che supportano la configurazione proxy di base sembra eccessivo. Questo sembra essere un caso che potrebbe trarre vantaggio da un supporto della piattaforma sottostante con una chiamata API che in realtà interpreta il file PAC e restituisce il risultato, anziché il suo URL.


0

questo è un vecchio post a questo punto, ma sono venuto qui alla ricerca di un modo per farlo e ho trovato una risposta diversa. La risposta con cui sto lavorando si trova in un pacchetto chiamato 'whereami' e richiede che tu definisca la sottorete del tuo lavoro nel suo file detect.conf e quindi definisca il server proxy nel file whereami.conf. Dovrebbe funzionare, e posterò con tutti i problemi che ho.

In bocca al lupo!


1
Benvenuti in Ask Ubuntu! Quindi ... come farebbe davvero qualcuno? Potete fornire istruzioni? In questo momento non è proprio la risposta alla domanda ...
Eliah Kagan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.