C'è un modo per impostare il proxy di rete a livello di sistema?


18

Se voglio che le applicazioni GNOME (oltre a Firefox e Chrome) accedano alla rete tramite un proxy, ho solo bisogno di usare gnome-network-properties(una GUI simpatica e semplice, devo dire). Per altre app (ad es. APT, Transmission, XChat), devo usare i loro modi specifici di farlo.

C'è un modo per evitarlo, qualcosa che posso accendere e spegnere quando in una rete che richiede un proxy (nome host: porta)?


1
Penso che la http_proxyvariabile sia ciò che stai cercando. Dai un'occhiata al howto del supporto proxy .
sakisk,

Risposte:


11

Penso che praticamente tutto il software Linux / Unix che usi rete onorerà le http_proxye ftp_proxyvariabili di ambiente. A seconda di come è impostata la tua distribuzione, /etc/environmentesisterà e verrà letta per impostazione predefinita dalle shell di accesso.

È possibile aggiungere una riga dicendo

http_proxy=123.45.67.89:1011

nel /etc/environmentabbastanza facilmente, ma i cambiamenti in quel file prenderanno solo tenere la prossima volta che si avvia un processo shell - e solo in questo processo shell. Non penso che tu possa modificare le variabili globali in una shell diversa da quella attuale.


1
... con la notevole eccezione di Firefox e Thunderbird askubuntu.com/a/23123
akraf - Ripristina Monica il

e sembra che non lo node sia
Brad Parks,

sì, e ricaricare la shell in altre parole significa disconnettersi e quindi riconnettersi per le shell grafiche.
Himanshu Shekhar,

6

Sono d'accordo che il modo migliore per utilizzare il server proxy sia con la variabile d'ambiente http_proxy, come hanno sottolineato altre risposte. Sfortunatamente, non tutte le applicazioni rispettano la variabile di ambiente http_proxy, motivo per cui uso ancora tsocks per alcuni programmi per utilizzare LD_PRELOAD per forzare le connessioni di rete a passare attraverso un proxy SOCKS.


3

Oltre a tsocks - che ancora AFAICT richiede di avviare programmi con l'ambiente corretto per funzionare - dovresti dare un'occhiata a tun2socks . Con esso si configura un'interfaccia TUN (ovvero una nuova interfaccia di rete, proprio come creerebbe una VPN) e tutti i pacchetti inviati lì vengono inviati al proprio server SOCKS5. Quindi imposta i percorsi di sistema per inviare effettivamente il traffico a questo. Sembra un approccio simpatico.

(Ho anche trovato redsocks tramite questo post . Questo non mi sembra elegante come usare un'interfaccia TUN per me - ad esempio, non gestisce affatto UDP, per cominciare.)


3

Uso questo strumento , che è fondamentalmente un paio di script per configurare le impostazioni per diverse applicazioni da un singolo punto.

PS: ho scritto e mantenuto questo strumento.


2

Non esiste una soluzione unica per tutti. Ogni programma utilizza il proprio modo di connettersi a un server proxy.

Ho un problema simile nel mio ufficio. Ho scoperto che il modo migliore per farlo è utilizzare una connessione VPN. Quando ti connetti, l'intero traffico di rete del sistema passerà attraverso la VPN. Se non hai accesso a un server VPN, puoi eseguirne uno nuovo manualmente e collegarlo al server proxy che hai.

Se hai un'applicazione che non supporta il proxy, puoi usare qualcosa come socksify , per concludere la sua connessione di rete.


Quindi hai provato questo e fallito?
Tshepang,

0

Ho un problema simile, ma per me realizzare un proxy a livello di sistema affronterà il kernel di Linux iptables. L'aggiunta e la rimozione di regole di inoltro negli iptables(indirizzi, porte e protocolli specifici), agendo sul livello di rete è l'unico modo per garantire un proxy a livello di sistema, che non può essere ignorato da alcuna impostazione specifica dell'app nel livello dell'applicazione.


0

Questo ha funzionato per me
vi /etc/environment:

http_proxy="http://username:password@proxysrv:8080/"
https_proxy="https://username:password@proxysrv:8080/"
ftp_proxy="ftp://username:password@proxysrv:8080/"
no_proxy=".mylan.local,.domain1.com,host1,host2"

anche
vi /etc/yum.conf:

proxy=http://proxysrv:8080
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.