¿Hay alguna manera de configurar el proxy de red en todo el sistema?

18

Si quiero que las aplicaciones de GNOME (así como Firefox y Chrome) accedan a la red a través de un proxy, solo necesito usar gnome-network-properties(una GUI agradable y simple, debo decir). Para otras aplicaciones (por ejemplo, APT, Transmission, XChat), tengo que usar sus formas específicas de hacerlo.

¿Hay alguna manera de evitar esto, algo que puedo encender y apagar cuando estoy en una red que requiere un proxy (nombre de host: puerto)?

tshepang
fuente
1
Creo que la http_proxyvariable es lo que estás buscando. Eche un vistazo en el tutorial de Soporte de proxy .
sakisk

Respuestas:

11

Creo que casi todo el software de Linux / Unix que utiliza redes rendirá homenaje a las http_proxyy ftp_proxyvariables de entorno. Dependiendo de cómo esté configurada su distribución, /etc/environmentexistirá y se leerá por defecto mediante shells de inicio de sesión.

Puedes agregar una línea que diga

http_proxy=123.45.67.89:1011

es /etc/environmentbastante fácil, pero los cambios en ese archivo solo se realizarán la próxima vez que inicie un proceso de shell, y solo en ese proceso de shell. No creo que pueda modificar las variables globales en un shell que no sea el actual.

Shadur
fuente
1
... con la notable excepción de Firefox y Thunderbird askubuntu.com/a/23123
akraf - Reinstale a Monica el
y parece, node tampoco
Brad Parks
sí, y volver a cargar el shell en otras palabras significa cerrar sesión y luego volver a iniciar sesión para obtener shells gráficos.
Himanshu Shekhar
6

Estoy de acuerdo en que la mejor manera de usar el servidor proxy es con la variable de entorno http_proxy, como han señalado otras respuestas. Desafortunadamente, no todas las aplicaciones respetan la variable de entorno http_proxy, por lo que todavía uso tsocks para que algunos programas usen LD_PRELOAD para forzar que las conexiones de red pasen por un proxy SOCKS.

jsbillings
fuente
3

Además de tsocks , que aún requiere AFAICT para que inicie programas con el entorno correcto para trabajar, debe consultar tun2socks . Con él, configura una interfaz TUN (es decir, una nueva interfaz de red, tal como lo crearía una VPN) y cualquier paquete enviado allí se envía a su servidor SOCKS5. Luego configura las rutas del sistema para enviar el tráfico a esto. Parece un buen enfoque.

(También encontré redsocks a través de esta publicación . Esto no me parece tan elegante como usar una interfaz TUN, por ejemplo, en realidad no maneja UDP en absoluto, para empezar).

natevw
fuente
3

Utilizo esta herramienta , que es básicamente un par de scripts para configurar ajustes para diferentes aplicaciones desde un solo punto.

PD: Escribí y mantengo esa herramienta.

Himanshu Shekhar
fuente
2

No hay una solución para todos. Cada programa usa su propia forma de conectarse a un servidor proxy.

Tengo un problema similar en mi oficina. Encontré que la mejor manera de hacer esto es usar una conexión VPN. Cuando se conecta, todo el tráfico de red del sistema pasará por la VPN. Si no tiene acceso a un servidor VPN, puede ejecutar uno nuevo manualmente y conectarlo al servidor proxy que tiene.

Si tiene una aplicación que no admite proxy, puede usar algo como socksify para ajustar su conexión de red.

Ayuda en
fuente
¿Entonces has intentado esto y has fallado?
tshepang
0

Tengo un problema similar, pero para mí lograr un proxy de todo el sistema abordará el núcleo de Linux iptables. Agregar y eliminar reglas de reenvío en iptables(direcciones, puertos y protocolos específicos), actuar en la capa de red es la única forma de garantizar un proxy de todo el sistema, que no pueda ser anulado por ninguna configuración específica de la aplicación en la capa de aplicación.

Nihad Nagi
fuente
0

Esto funcionó para mí
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"

también
vi /etc/yum.conf:

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