web-dev-qa-db-fra.com

Existe-t-il un moyen de définir le système de proxy de réseau à l'échelle?

Si je veux avoir des applications GNOME (ainsi que Firefox et Chrome), accédez au réseau via un proxy, je n'ai besoin que d'utiliser gnome-network-properties (une gruelle agréable et simple, je dois dire). Pour les autres applications (par exemple APT, Transmission, XChat), je dois utiliser leurs façons spécifiques de le faire.

Existe-t-il un moyen d'éviter cela, ce que je peux activer et éteindre lors d'un réseau nécessitant un proxy (nom d'hôte: port)?

19
tshepang

Je pense à peu près tous les logiciels Linux/Unix qui utilise la mise en réseau honorera le http_proxy et ftp_proxy Variables d'environnement. Selon la manière dont votre distribution est configurée, /etc/environment existera et être lu par défaut par des coquilles de connexion.

Vous pouvez ajouter une ligne disant

http_proxy=123.45.67.89:1011

dans /etc/environment Facilement, mais les changements dans ce fichier ne prendront que la maintenance de la prochaine fois que vous démarrez un processus de shell - et niquement dans ce processus de coque. Je ne pense pas que vous CAN Modifier les variables globales dans une coquille autre que votre entreprise actuelle.

11
Shadur

Je conviens que la meilleure façon d'utiliser le serveur proxy est avec la variable d'environnement http_proxy, comme d'autres réponses ont souligné. Malheureusement, toutes les applications n'hondrent pas à la variable d'environnement http_proxy, c'est pourquoi j'utilise toujours Tsocks pour certains programmes d'utilisation de LD_PRELOAD pour forcer les connexions réseau pour passer par un proxy de chaussettes.

6
jsbillings

J'utilise cet outil , qui est fondamentalement quelques scripts pour configurer les paramètres pour différentes applications de point unique.

PS: J'ai écrit et maintenir cet outil.

3
Himanshu Shekhar

En outre - Tsocks - qui toujours Afaict vous oblige à lancer des programmes avec l'environnement correct pour travailler - vous devriez vérifier - TUN2Socks . Avec vous, vous configurez une interface TUN (c'est-à-dire une nouvelle interface réseau, comme un VPN créerait) et tous les paquets envoyés là-bas sont proxés sur votre serveur SOCKS5. Vous avez ensuite configuré vos itinéraires système pour envoyer le trafic à cela. On dirait une bonne approche.

(J'ai aussi trouvé redsocks via ce post . Cela ne semble pas aussi élégant que d'utiliser une interface TUN pour moi - par exemple, il ne gère pas vraiment UDP du tout, car entrées.)

3
natevw

Il n'y a pas de solution unique. Chaque programme utilise sa propre façon de se connecter à un serveur proxy.

J'ai un problème similaire à mon bureau. J'ai trouvé que la meilleure façon de le faire est d'utiliser une connexion VPN. Lorsque vous vous connectez, tout le trafic réseau système passera par le VPN. Si vous n'avez pas accès à un serveur VPN, vous pouvez en exécuter une nouvelle manuellement et le connecter au serveur proxy que vous avez.

Si vous avez une application qui ne prend pas en charge le proxy, vous pouvez utiliser quelque chose comme SOCKSIFY, pour envelopper sa connexion réseau.

2
Aidin

Cela a fonctionné pour moi
[.____] 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"

aussi
[.____] vi /etc/yum.conf:

proxy=http://proxysrv:8080
0
Shawn Jones

J'ai un problème similaire, mais pour moi d'accomplir un proxy de l'écran du système abordera le noyau de Linux iptables. Ajout et suppression de règles de transfert dans les iptables (adresses spécifiques, ports et protocoles), agissant sur la couche de réseau est le seul moyen d'assurer un proxy de système de système, qui ne peut pas être remplacé par des paramètres spécifiques à une application. dans la couche d'application.

0
Nihad Nagi