В масштабе всей системы проксируйте настройки в человечности

Я хотел использовать Интернет на своем прокси-сервере колледжа, который также требует аутентификации. Я искал 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). Белый экран появляется как это:

enter image description here

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

22
задан 13 April 2017 в 15:25

4 ответа

Окончательно решила:

(Выполните действия последовательно)

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

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

enter image description here

Затем применить к системе.

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 = "something here"

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

Вот и все ..

33
ответ дан 14 April 2017 в 01:25
  • 1
    Чтобы постараться не создавать каталог для самого сценария, можно было также превратить это в ~/.bashrc функция;) – Sergiy Kolodyazhnyy 14 November 2016 в 21:33

Чтобы загружать пакеты через wget-прокси, настройка должна быть выполнена в /etc/окружении, а чтобы загружать пакеты через apt-get-прокси, настройка должна быть выполнена в /etc/apt/apt.conf

2
ответ дан 14 April 2017 в 01:25
  • 1
    Можно использовать mkdir -p который doesn' t жалуются на каталоги, уже существующие. – Arronical 14 November 2016 в 23:32

Чтобы wget работал с прокси, я бы добавил также, чтобы создать .wgetrc в вашем доме каталог, содержащий:

http_proxy = http://proxy:port/
https_proxy = http://proxy:port/
proxy_user = user
proxy_password = password
use_proxy = on
wait = 15
1
ответ дан 14 April 2017 в 01:25
  • 1
    (1)  To стараются не создавать каталог для самого сценария (и перемещать сценарий туда), помещают сценарий в различный каталог или дают ему имя, начинающееся . . (2)  LineвЃџ7 сценария относится к filenames, который, в той точке, равен (лексикографически) последнему имени файла в каталоге. Вы означаете обращаться к files? (3)  At lineвЃџ6, почему не просто говорят for files in "$dirs".* "$dirs"-*? (4)  As вопрос стиля, я предпочитаю говорить for dir in … и for file in …; т.е. используйте исключительный , слова для цикла индексируют переменную (который берет только одно значение за один раз). – Scott 15 November 2016 в 08:00

Конечно, это еще не все. Еще несколько программ ( 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, похоже, тоже не принимает глобальную конфигурацию.

2
ответ дан 14 April 2017 в 01:25
  • 1
    Некоторые имена файлов имеют пробелы и/или подчеркивания. После небольшого количества гугления regex я заменил [: alnum:] с [a-zA-Z0-9\_], но тогда это, кажется, берет расширение (включает период?) и я оказываюсь в недоумении (начиная с него can' t создают каталог с тем же именем как файл). – MrFinn 15 November 2016 в 06:15

Другие вопросы по тегам:

Похожие вопросы: