Configuración de proxy de todo el sistema en ubuntu

22

Quería usar Internet en mi servidor proxy de la universidad, que también requiere autenticación. Busqué en Google soluciones y la mejor solución que encontré fue esta . He modificado el script en la respuesta aceptada para incluir la autenticación. Aquí va:

if [ $(id -u) -ne 0 ]; then
echo "This script must be run as root";
exit 1;
fi

if [ $# -eq 4 ] then

gsettings set org.gnome.system.proxy mode 'manual' ;
gsettings set org.gnome.system.proxy.http host '$1';
gsettings set org.gnome.system.proxy.http port $2;
gsettings set org.gnome.system.proxy.http authentication-user '$3';
gsettings set org.gnome.system.proxy.http authentication-password '$4';


grep PATH /etc/environment > lol.t;
printf \
"http_proxy=http://$3:$4@$1:$2/\n\
 https_proxy=http://$3:$4@$1:$2/\n\
 ftp_proxy=http://$3:$4@$1:$2/\n\
 no_proxy=\"localhost,127.0.0.1,localaddress,.localdomain.com\"\n\
 HTTP_PROXY=http://$3:$4@$1:$2/\n\
 HTTPS_PROXY=http://$3:$4@$1:$2/\n\
 FTP_PROXY=http://$3:$4@$1:$2/\n\
 NO_PROXY=\"localhost,127.0.0.1,localaddress,.localdomain.com\"\n" >> lol.t;

 cat lol.t > /etc/environment;


 printf \
 "Acquire::http::proxy \"http://$3:$4@$1:$2/\";\n\
  Acquire::ftp::proxy \"ftp://$3:$4@$1:$2/\";\n\
  Acquire::https::proxy \"https://$3:$4@$1:$2/\";\n" > /etc/apt/apt.conf.d/95proxies;

rm -rf lol.t;

else

printf "Usage $0 <proxy_ip> <proxy_port> <username> <password>\n";

fi

Sin embargo, las cuentas en línea aún no funcionan (lo mismo para rhythmbox y otros programas GTK3) . Aparece una pantalla blanca como esta:

ingrese la descripción de la imagen aquí

¿Alguna sugerencia sobre cómo se puede resolver?

Raman
fuente

Respuestas:

31

Resuelto finalmente:

(Siga los pasos en serie)

1. Para programas gtk3 como rhythmbox y cuentas en línea:

Primero debe ingresar la configuración de proxy en la configuración de red (junto con la autenticación):

ingrese la descripción de la imagen aquí

Luego aplique todo el sistema.

2. Para apt, centro de software, etc.

editar el archivo /etc/apt/apt.conf

Y luego reemplace todo el texto existente por las siguientes líneas

Acquire::http::proxy "http://username:password@host:port/";
Acquire::ftp::proxy "ftp://username:password@host:port/";
Acquire::https::proxy "https://username:password@host:port/";

3. Variables de entorno

editar el archivo /etc/environment

Y luego agregue las siguientes líneas después de RUTA = "algo aquí"

http_proxy=http://username:password@host:port/
ftp_proxy=ftp://username:password@host:port/
https_proxy=https://username:password@host:port/

Eso es todo..

Raman
fuente
1
¿El paso 1) altera / etc / environment? Me gustaría una forma de hacer ese paso a través de la línea de comando.
Lucas
Parece que el paso 1) también funciona apt-get update. Entonces no necesito el paso 2).
smwikipedia
@Raman ¿Hay alguna necesidad de escapar de los caracteres especiales en la contraseña al hacer esto? Si es así, ¿cómo?
code_dragon
2

Para descargar paquetes mediante wget proxy, debe configurarse en / etc / environment, y para descargar paquetes mediante apt-get proxy, debe configurarse en /etc/apt/apt.conf

sauser
fuente
2
Explique su respuesta, actualmente no proporciona mucha información útil.
Byte Commander
1
Bienvenido a Ask Ubuntu! Recomiendo editar esta respuesta para expandirla con detalles específicos sobre cómo hacerlo. (Consulte también ¿Cómo escribo una buena respuesta? Para obtener consejos generales sobre qué tipos de respuestas se consideran más valiosas en Ask Ubuntu.)
David Foerster
1

Para hacer que wgetfuncione con un proxy, agregaría también para crear uno .wgetrcen su directorio de inicio, que contiene:

http_proxy = http://proxy:port/
https_proxy = http://proxy:port/
proxy_user = user
proxy_password = password
use_proxy = on
wait = 15
trudide12
fuente
1

Eso no es todo, por supuesto. Algunos programas (más npm, curly git):

npm config set proxy $HTTP_PROXY
npm config set https-proxy $HTTPS_PROXY
npm config set strict-ssl false
echo "proxy = $HTTP_PROXY" > ~/.curlrc
echo "noproxy = $NO_PROXY" >> ~/.curlrc
git config --global http.proxy $HTTP_PROXY
git config --global https.proxy $HTTPS_PROXY

Para Maven, editar ~/.m2/settings.xml. IntelliJ tampoco parece recoger la configuración global.

MPi
fuente