apt.conf "Придбати :: http: проксі" проксісервер: порт ", здається, не використовується (Ubuntu 13.04 під віртуальним вікном на Win7)


13

Це призначено для установки Ubuntu 13.04 Desktop у VirtualBox VM. Я перебуваю в корпоративній мережі з HTTP-проксі на xyz251: 9090. Я налаштував гостьову ОС за допомогою сценарію автоконфігурації, тому Firefox прекрасно працює, але я не можу отримати "apt-get" або "Ubuntu Software Center" для підключення за допомогою проксі.

Я створив файл "/etc/apt/apt.conf", тепер він містить один рядок тексту:

Acquire::http:Proxy "http://x.y.z.251:9090"

що означає файл proxy.pac, який я вказав у "Налаштуваннях системи / Мережа / Мережевий проксі" та застосований до всієї системи.

Коли я використовую Firefox, трасування пакетів показує, що підключення TCP здійснюється через корпоративний проксі на порт 9090, коли я запускаю "Центр програмного забезпечення Ubuntu" і "apt-get", тракція пакетів показує пакети TCP SYN з кінцевим IP-адресою призначення адреса та порт 80. Звичайно, відповіді на SYN-пакети немає, оскільки корпоративний брандмауер блокує TCP-з'єднання на порту 80 від входу або виходу.

З "sudo apt-get" у вікні терміналу, я завжди бачу:

Ign cdrom://Ubuntu 13.04 _Raring Ringtail_ - Release amd64 (20130424) raring/main Translation-en_US
Ign cdrom://Ubuntu 13.04 _Raring Ringtail_ - Release amd64 (20130424) raring/main Translation-en
Ign cdrom://Ubuntu 13.04 _Raring Ringtail_ - Release amd64 (20130424) raring/restricted Translation-en_US
Ign cdrom://Ubuntu 13.04 _Raring Ringtail_ - Release amd64 (20130424) raring/restricted Translation-en
Err http://extras.ubuntu.com raring Release.gpg 
  Could not connect to extras.ubuntu.com:80 (91.189.92.152), connection timed out
Err http://archive.canonical.com raring Release.gpg 
  Cannot initiate the connection to archive.canonical.com:80 (2001:67c:1360:8c01::1b). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::1b 80]
Err http://us.archive.ubuntu.com raring Release.gpg 
  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]
Err http://us.archive.ubuntu.com raring-updates Release.gpg
  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]
Err http://us.archive.ubuntu.com raring-backports Release.gpg
  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]
59% [Connecting to security.ubuntu.com (91.189.91.14)]

Врешті-решт я бачу:

Err http://security.ubuntu.com raring-security Release.gpg
  Cannot initiate the connection to security.ubuntu.com:80 (2001:67c:1360:8c01::18). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::18 80]
Reading package lists... Done                          
W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/raring/Release.gpg  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]

W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/raring-updates/Release.gpg  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]

W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/raring-backports/Release.gpg  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]

W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/raring-security/Release.gpg  Cannot initiate the connection to security.ubuntu.com:80 (2001:67c:1360:8c01::18). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::18 80]

W: Failed to fetch http://archive.canonical.com/ubuntu/dists/raring/Release.gpg  Cannot initiate the connection to archive.canonical.com:80 (2001:67c:1360:8c01::1b). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::1b 80]

W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/raring/Release.gpg  Could not connect to extras.ubuntu.com:80 (91.189.92.152), connection timed out

W: Some index files failed to download. They have been ignored, or old ones used instead.

Я зовсім не впевнений, що я роблю не так.

--- Оновити ---- Я також спробував:

Acquire::http:proxy "http://user:pass@x.y.z.251:9090/"

"xyz", звичайно, є власниками місць; Сумніваюсь, безпека мого роботодавця буде ласкаво дивитись на мене, розміщуючи фактичну кількість. Я не бачу різниці в сліді пакета - "apt-get" все ще використовує реальні IP-адреси та порт 80. Я зробив навмисну ​​помилку у файлі apt.conf і "apt-get" вийшов із помилкою, тому я Я впевнений, що він бачить цю конфігураційну лінію для проксі, але вона, схоже, не шанує її.

Я використовую мережеве з'єднання "NAT", оскільки це суперечить ІТ-політиці для переходу між мережами, а DHCP-сервер надає адреси лише відомих MAC-адрес. Я не хочу, щоб ІТ-безпека стучала моїм кубом (знову).


Щодня дізнайтеся щось нове. Здається, що "/etc/apt/apt.conf" оновлюється лише в тому випадку, якщо ви користуєтесь параметром налаштування вручну проксі в "Налаштування системи / Мережа / Мережевий проксі". Потім я зайшов і прокоментував записи, які я зробив у цьому файлі вручну, і вимкнув IPv6. Записи, створені GUI, були майже однаковими з тим, з чого я почав, але "apt-get" зараз працює. Було б непогано, щоб можна було відключити IPv6 через GUI, але редагування "/etc/sysctl.conf" працює нормально. Велике спасибі @ terry-wang
Daniel Glasser

Чи можете ви додати це як відповідь? У вашій проблемі ipv6 був неправильно встановлений проксі.
Брайам

Можливо, ви пропустили товсту кишку :більше між httpі Proxy? http::Proxyзамість цього http:Proxy.
Гонматор

Відповіді:


18

Виходячи з мого минулого досвіду, загальний Ubuntu (GNOME) не дуже добре працює з PAC (Automatic Config). Pac (автоматичне налаштування проксі) - це в основному логіка JavaScript, щоб визначити найближчий або найбільш підходящий для вас проксі, я настійно рекомендую використовувати проксі-сервери безпосередньо (у вашому випадку Мережа - мережевий проксі).

Кілька речей, щоб перевірити

Перевірте /etc/apt/apt.conf

Мережевий мережевий проксі GUI оновить /etc/apt/apt.confта встановить інформацію про проксі там.

Дізнайтеся інформацію про проксі-сервер від pac

Ви можете знайти подробиці, прочитавши proxy.pacфайл у будь-якому випадку.

Тому /etc/apt/apt.confслід виглядати, як показано нижче (припустимо, проксі-сервер => proxy.company.com порт 80), НЕ використовуйте URL-адресу pac.

Acquire::http::proxy "http://proxy.company.com:80/";
Acquire::https::proxy "https://proxy.company.com:80/";
Acquire::ftp::proxy "ftp://proxy.company.com:80/";

ПРИМІТКА: Якщо у файлах apt config не вказаний проксі, apt-getповернеться до http_proxyзмінної середовища.

З чоловічої сторінки apt.conf відповідайте на коментар від @Braiam

   http
       HTTP URIs; http::Proxy is the default http proxy to use. It is in
       the standard form of http://[[user][:pass]@]host[:port]/. Per host
       proxies can also be specified by using the form http::Proxy::<host>
       with the special keyword DIRECT meaning to use no proxies. If no
       one of the above settings is specified, http_proxy environment
       variable will be used.

Перевірте змінні середовища проксі

Ви можете перевірити настройки проксі-сервера, виконавши в терміналі наступне

echo $http_proxy
echo $https_proxy
echo $ftp_proxy

Якщо ви правильно встановили змінні env, ви повинні мати можливість оновити в CLI.

Віддайте перевагу IPv4

Я помітив, що apt-getнамагався підключитися до серверів оновлення за допомогою їх ipv6 адреси. Це може спричинити проблеми (іноді термін дії IPV6 закінчується або змінюється).

Ви можете редагувати /etc/gai.confта додавати precedence ::ffff:0:0/96 100перевагу ipv4 над ipv6.

Детальніше


Дякуємо за відповідь. Значення, яке я вкладаю у "/etc/apt/apt.conf" - це власне URI та сокет, що надходить з файлу .pac, а не URI самого файлу .pac (саме це я вкладаю в "Налаштування системи / мережа / мережевий проксі ".
Daniel Glasser

Я зайшов у "Налаштування системи / Мережа / проксі-мережа" та використав ручну конфігурацію; це оновило "/etc/apt/apt.conf". Я також відключив IPv4, редагуючи "/etc/sysctl.conf". Це, здається, зробило трюк. Спасибі за вашу допомогу.
Даніель Глассер

Неправда, apt-get ніколи не використовує http_proxyні змінні середовища.
Брайам

@Braiam do a man apt.confsee http::Proxy. Я також оновив відповідь. Також я використовував http_proxyі https_proxyзмінні середовища, якими слід користуватися apt-getпротягом багатьох років. Проведіть деякі дослідження перед тим, як проголосувати.
Террі Ван

Крім того, зробіть дослідження самостійно! Запуск sudo apt-get -o Debug::Acquire::http=true updateі перевірити себе , якщо тільки установка змінної оточення використовує проксі - сервер. І якщо ви використовуєте проксі - сервер за рік, отримати собі оновлюється .
Брайам

5

Я вважаю, що у мене була ця проблема, і відповідь проста. Синтаксис є критичним. Він повинен виглядати так:

Acquire::http::Proxy "http://x.y.z.251:9090";

(Є додаткові ":" і закінчення ";")


1

@Braiam

Я думаю, що краще почати окрему відповідь, щоб з’ясувати речі.

Я зробив швидкий тест, використовуючи Vagrant та Ubuntu 13.04 Raring x86_64 VM позаду брандмауера.

apt-get версія є 0.9.7.7ubuntu4

root@raring:~# apt-get --version 
apt 0.9.7.7ubuntu4 for amd64 compiled on Apr 12 2013 23:49:05
Supported modules:
*Ver: Standard .deb
*Pkg:  Debian dpkg interface (Priority 30)
 Pkg:  Debian APT solver interface (Priority -1000)
 S.L: 'deb' Standard Debian binary tree
 S.L: 'deb-src' Standard Debian source tree
 Idx: Debian Source Index
 Idx: Debian Package Index
 Idx: Debian Translation Index
 Idx: Debian dpkg status file
 Idx: EDSP scenario file

Оновлення: Це працює так само, як і в точності 12.04.3

root@support:/etc/apt# uname -a
Linux support 3.8.0-30-generic #44~precise1-Ubuntu SMP Fri Aug 23 17:33:45 UTC 2013 i686 i686 i386 GNU/Linux
root@support:/etc/apt# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.3 LTS
Release:        12.04
Codename:       precise
root@support:/etc/apt# apt-get --version
apt 0.8.16~exp12ubuntu10.14 for i386 compiled on Sep  8 2013 03:26:42

1-й - очистити файли конфігурації

Я очистив налаштування проксі в /etc/apt/apt.conf. Я також робив ackі agсканував усі файли та підкаталоги, /etc/aptщоб переконатися, що в файлах конфігурації apt не встановлено проксі.

За замовчуванням {http_proxy,https_proxy,ftp_proxy}змінні env не встановлені.

apt-get не зміг підключитися до серверів оновлення.

root@raring:~# apt-get -o Debug::Acquire::http=true update
0% [Connecting to au.archive.ubuntu.com (202.158.214.106)] [Connecting to security.ubuntu.com (91.189.91.13)] [Connecting to ppa.launchpad.net (91.189.95.83)]

2-е - встановити змінні середовища

Просто встановіть змінні проксі

export {http_proxy,https_proxy,ftp_proxy}="http://10.xxx.xxx.231:80"

apt-get тепер може підключитися!

Дивіться вихід налагодження (це те, що я ніколи не пробував).

root@raring:~# apt-get -o Debug::Acquire::http=true update
0% [Working]GET http://security.ubuntu.com/ubuntu/dists/raring-security/Release.gpg HTTP/1.1
Host: security.ubuntu.com
Cache-Control: max-age=0
User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)


GET http://au.archive.ubuntu.com/ubuntu/dists/raring/Release.gpg HTTP/1.1
Host: au.archive.ubuntu.com
Cache-Control: max-age=0
User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)


GET http://ppa.launchpad.net/git-core/ppa/ubuntu/dists/raring/Release.gpg HTTP/1.1
Host: ppa.launchpad.net
Cache-Control: max-age=0
User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)


HTTP/1.1 200 OK
Date: Fri, 27 Sep 2013 12:12:20 GMT
ETag: "16e20bb4-3a5-4db2e154a1dc0"
Server: Apache/2.2.3 (Red Hat)
Content-Type: text/plain; charset=UTF-8
Accept-Ranges: bytes
Last-Modified: Thu, 25 Apr 2013 11:54:39 GMT
Content-Length: 933
Proxy-Connection: Keep-Alive

Get:1 http://au.archive.ubuntu.com raring Release.gpg [933 B]
0% [1 Release.gpg 0 B/933 B 0%] [Waiting for headers] [Waiting for headers]GET http://au.archive.ubuntu.com/ubuntu/dists/raring-updates/Release.gpg HTTP/1.1
Host: au.archive.ubuntu.com
Cache-Control: max-age=0
User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)


99% [Waiting for headers] [Waiting for headers]HTTP/1.1 200 OK             
Date: Fri, 27 Sep 2013 12:12:20 GMT
ETag: "16e20ee7-3a5-4e7594ace9200"
Server: Apache/2.2.3 (Red Hat)
Content-Type: text/plain; charset=UTF-8
Accept-Ranges: bytes
Last-Modified: Fri, 27 Sep 2013 08:30:00 GMT
Content-Length: 933
Proxy-Connection: Keep-Alive

Get:2 http://au.archive.ubuntu.com raring-updates Release.gpg [933 B]
50% [2 Release.gpg 0 B/933 B 0%] [Waiting for headers] [Waiting for headers]GET http://au.archive.ubuntu.com/ubuntu/dists/raring-backports/Release.gpg HTTP/1.1
Host: au.archive.ubuntu.com
Cache-Control: max-age=0
User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)


100% [Waiting for headers] [Waiting for headers]HTTP/1.1 200 OK             
Date: Fri, 27 Sep 2013 12:12:21 GMT
ETag: "16e0083d-3a5-4e6844f477fc0"
Server: Apache/2.2.3 (Red Hat)
Content-Type: text/plain; charset=UTF-8
Accept-Ranges: bytes
Last-Modified: Mon, 16 Sep 2013 18:24:07 GMT
Content-Length: 933
Proxy-Connection: Keep-Alive

Get:3 http://au.archive.ubuntu.com raring-backports Release.gpg [933 B]
67% [3 Release.gpg 0 B/933 B 0%] [Waiting for headers] [Waiting for headers]HTTP/1.1 200 OK
Date: Fri, 27 Sep 2013 12:12:20 GMT
ETag: "3a5-4e75c5d969600"
Server: Apache/2.2.22 (Ubuntu)
Expires: Fri, 27 Sep 2013 13:05:00 GMT
Accept-Ranges: bytes
Cache-Control: max-age=3159, s-maxage=3300, proxy-revalidate
Last-Modified: Fri, 27 Sep 2013 12:10:00 GMT
Content-Length: 933
Proxy-Connection: Keep-Alive

......

3-е - скиньте змінні середовища

unset env vars => unset {http_proxy,https_proxy,ftp_proxy}

Зараз apt-get не вдалося підключитися.

Висновок

Як і те, що man apt.confсказано, якщо http :: Proxy НЕ встановлено, http_proxyбуде використана змінна середовище.

BTW : Я також користувач Arch Linux. Pacman працює аналогічно, якщо я не використовую wgetабо curlз проксі-сервером pacman.conf, він використовуватиме змінні середовища `{http_proxy, https_proxy, ftp_proxy} '.

Оновлення sudo НЕ зберігає змінні середовища. Ось чому sudo apt-get updateне вдається. Щоб вирішити проблему (зберегти змінні середовища проксі), використовуйте sudo -E apt-get update.


До речі, я не отримую повідомлення про пінг у відповідях. Також дивіться мій коментар, спробуйте використовувати sudoнатомість логін як корінь і дізнайтеся, чому я сказав, що це не працює.
Брайам

@Braiam Я зробив ще кілька тестів. sudoНЕ зберігає змінні середовища, це проблема! Але ви можете їх вирішити, скориставшись sudo -E apt-get update && apt-get dist-upgrade;-)
Террі Ван

Я якось сказав те саме в своєму іншому коментарі : S
Браям

Мені подобається, як ти уточнив відповідь. Вирішенням моєї проблеми був наконечник "sudo -E". Я не пам'ятаю, щоб коли-небудь потрібно було використовувати параметр -E.
DaShaun

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.