Как указать, что Yum не должен использовать прокси для конкретного домена

12

Можно ли указать домен, для которого yum должен обойти настройку прокси? Боюсь, это невозможно ...

Я читал , что можно было использовать переменные среды , HTTP_PROXYто NO_PROXY, это самое элегантное решение?

[РЕДАКТИРОВАТЬ]

Я пробовал решение с переменными среды:

export HTTP_PROXY=http://user:pass@host:port
export http_proxy=http://user:pass@host:port
export no_proxy=.domain
export NO_PROXY=.domain

Yum использует прокси, но хранилища * .domain не обойдены.

[РЕШЕНИЕ]

Используя http://cntlm.sourceforge.net/ я могу настроить, какой домен следует игнорировать. Но это работает только с прокси, который требует NTLM-аутентификации ...

chepseskaf
источник

Ответы:

26

Я не смог заставить это работать с использованием переменных среды, как вы описали здесь. Однако Yum поддерживает прокси-сервер сам, и вы должны иметь возможность сделать что-то вроде этого:

proxy=http://proxy:port

В yum.confи затем добавление

proxy=_none_

В определения репо вы не хотите обращаться через глобальный прокси. Это подробно (хотя и кратко) описано на странице руководства yum.conf.

sagepe
источник
Успешно, наконец. Благодарность! Я не хочу снова проходить через всех хозяев, где я это сделал. Но возможно ли добавить прокси-сервер непосредственно к этим файлам репо, где это необходимо (например, ко всем репо с внешними серверами пакетов, в отличие от файлов репо, которые используют внутренние менеджеры пакетов, которым прокси не нужен)
erikbwork
1
proxy=_none_Отлично, спасибо. Это груз корабля с потрясающим соусом. Я бы дважды проголосовал за тебя, если бы мог :)
Скотти Х
@erikbwork Я только что добавил proxy=http://proxy:portв свой файл .repo, и это сработало. Это то, что вы спрашиваете?
Скотти Х
4

Если я правильно понимаю этот вопрос, желаемое поведение

Package.centos.com получает через прокси.

packages.internal.lan идет напрямую, не проходя через прокси.

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

Для этого я использовал следующее.

export HTTP_PROXY=http://myproxy.internal.lan:port

export no_proxy=internal.lan

yum install package1 package2

package1 вытащил из интернета через прокси,

package2 был извлечен из моего локального зеркала, не проходящего через прокси.

сойка
источник
3

Мое решение заключается в настройке Privoxy, легкого http-прокси.

ням установить privoxy

Добавьте два предложения вперед в / etc / privoxy / config:

 forward / myproxy.internal.lan:3128
 forward .internal.lan .

А также отключите стандартные действия privoxy (убедитесь, что заголовок не поврежден): (@line 175 в конфигурации RHEL5 privoxy)

#actionsfile standard  # Internal purpose, recommended
#actionsfile default   # Main actions file
#actionsfile user      # User customizations

Затем настройте переменные среды http_proxy и ftp_proxy для порта privoxy:

объявите -x http_proxy = http://127.0.0.1:8118

объявлять -x ftp_proxy = http://127.0.0.1:8118

ням установить пакет1 пакет2

Примечание: если у вас есть строки прокси в yum.conf, удалите его, это переопределит переменную окружения.

YudhiWidyatama
источник
Я искал способы добавления хостов в белый список от privoxy, и я получил ответ здесь :)
Ахмадали Шафи
2

Вы можете просто указать это в файле репо. Например:

[hduser@n0 cloudera-manager-installer]$ cat /etc/yum.repos.d/cloudera-cdh4.repo  
[cloudera-cdh4]  
name=Cloudera's Distribution for Hadoop, Version 4  
baseurl=http://"yourhost"/cdh4/  
gpgcheck = 0
enabled=1
proxy=_none_
lzhshen
источник
1

Замена ням на федоре - это днф.

Ибо днф _none_вызовет ошибку

Вам нужно будет установить вместо прокси пустую строку

proxy=

Ссылка: https://dnf.readthedocs.io/en/latest/conf_ref.html

Джон С Андерсен
источник
Это также верно для CentOS 8!
Мази