Общесистемные настройки прокси в Ubuntu


22

Я хотел использовать интернет на моем прокси-сервере колледжа, который также требует аутентификации. Я искал в Google решения, и лучшее решение, которое я нашел, было это . Я изменил скрипт в принятом ответе, чтобы включить аутентификацию. Здесь это идет:

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

Однако онлайн-аккаунты все еще не работают (то же самое для rhythmbox и других программ GTK3) . Белый экран выглядит так:

введите описание изображения здесь

Любые предложения о том, как это можно решить?


Ответы:


31

Решено это наконец:

(Последовательно выполните шаги)

1. Для программ gtk3, таких как rhythmbox и онлайн-аккаунты:

Сначала вам нужно ввести настройки прокси в настройках сети (вместе с аутентификацией):

введите описание изображения здесь

Затем примените всю систему.

2. Для APT, центр программного обеспечения и т. Д.

редактировать файл /etc/apt/apt.conf

А затем заменить весь существующий текст на следующие строки

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. Переменные среды

редактировать файл /etc/environment

А затем добавьте следующие строки после PATH = "что-то здесь"

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

Вот и все..


1
Изменяет ли шаг 1) / etc / environment? Я хотел бы сделать этот шаг через командную строку.
Лукас

Кажется, шаг 1) работает apt-get updateтакже. Так что не нужно шаг 2).
smwikipedia

@Raman У меня есть необходимость экранировать специальные символы в пароле при этом? Если так то как?
code_dragon

2

Для загрузки пакетов с помощью прокси-сервера wget необходимо выполнить настройку в / etc / environment, а для загрузки пакетов с помощью прокси-сервера apt-setup необходимо выполнить настройку в /etc/apt/apt.conf.


2
Пожалуйста, уточните свой ответ, в настоящее время он не предоставляет много полезной информации.
Byte Commander

1
Добро пожаловать в Спросите Ubuntu! Я рекомендую отредактировать этот ответ, чтобы расширить его конкретными сведениями о том, как это сделать. (См. Также Как написать хороший ответ? Для общего совета о том, какие ответы считаются наиболее ценными в Ask Ubuntu.)
Дэвид Фёрстер

1

Для wgetработы с прокси я бы добавил также создать .wgetrcв вашем домашнем каталоге:

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

1

Это еще не все, конечно. Еще несколько программ ( npm, curlи 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

Для Maven отредактируйте ~/.m2/settings.xml. IntelliJ, похоже, тоже не подхватывает глобальный конфиг.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.