apt.conf “Acquire :: http: Proxy” proxyserver: port "sepertinya tidak digunakan (Ubuntu 13.04 di bawah Virtual Box on Win7)

13

Ini untuk pemasangan Desktop Ubuntu 13.04 di VM VirtualBox. Saya berada di jaringan corprate dengan proxy HTTP di xyz251: 9090. Saya telah mengkonfigurasi OS tamu dengan skrip konfigurasi otomatis, jadi Firefox berfungsi dengan baik, tetapi saya tidak bisa mendapatkan "apt-get" atau "Ubuntu Software Center" untuk terhubung menggunakan proxy.

Saya membuat file "/etc/apt/apt.conf", sekarang berisi satu baris teks:

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

yang merupakan file proxy.pac yang saya tentukan di "Pengaturan Sistem / Jaringan / Proxy Jaringan" dan diterapkan ke seluruh sistem.

Ketika saya menggunakan Firefox, jejak paket menunjukkan bahwa koneksi TCP dilakukan melalui proksi perusahaan di port 9090, ketika saya menjalankan "Ubuntu Software Center" dan "apt-get", jejak paket menunjukkan paket-paket TCP SYN dengan IP tujuan akhir. alamat dan port 80. Tentu saja, tidak ada respons terhadap paket SYN, karena firewall perusahaan memblokir koneksi TCP pada port 80 agar tidak masuk atau keluar.

Dengan "sudo apt-get" di jendela terminal, saya selalu melihat:

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)]

Akhirnya, saya melihat:

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.

Saya sama sekali tidak yakin apa yang saya lakukan salah.

--- Perbarui ---- Saya juga sudah mencoba:

Acquire::http:proxy "http://user:[email protected]:9090/"

"xyz" tentu saja adalah place-holder; Saya ragu orang-orang keamanan majikan saya akan melihat saya memposting angka yang sebenarnya. Saya tidak melihat perbedaan dalam jejak paket - "apt-get" masih menggunakan alamat IP asli dan port 80. Saya membuat kesalahan yang disengaja dalam file apt.conf dan "apt-get" keluar dengan kesalahan, jadi saya Saya yakin bahwa ia melihat garis konfigurasi ini untuk proxy, sepertinya tidak menghormatinya.

Saya menggunakan koneksi jaringan "NAT", karena melanggar kebijakan TI di sini untuk menjembatani antar jaringan, dan server DHCP hanya menyediakan alamat ke alamat MAC yang dikenal. Saya tidak ingin keamanan IT menggedor kubus saya (lagi).

Daniel Glasser
sumber
Pelajari sesuatu yang baru setiap hari. Tampaknya "/etc/apt/apt.conf" hanya akan diperbarui jika Anda menggunakan opsi konfigurasi proxy manual di "Pengaturan Sistem / Jaringan / Proksi Jaringan". Saya kemudian masuk dan berkomentar entri yang saya buat di file itu secara manual, dan menonaktifkan IPv6. Entri yang dibuat oleh GUI cukup identik dengan apa yang saya mulai dengan, tetapi "apt-get" sekarang berfungsi. Pasti menyenangkan bisa menonaktifkan IPv6 melalui GUI, tetapi mengedit "/etc/sysctl.conf" berfungsi dengan baik. Terima kasih banyak kepada @ terry-wang
Daniel Glasser
Bisakah Anda menambahkan itu sebagai jawabannya? Masalah Anda adalah ipv6, bukan proxy yang disetel dengan salah.
Braiam
Mungkin Anda melewatkan titik dua di :antara httpdan Proxy? http::Proxysebagai gantinya http:Proxy.
Gonmator

Jawaban:

18

Berdasarkan pengalaman masa lalu saya, keseluruhan Ubuntu (GNOME) tidak berfungsi dengan baik dengan PAC (Konfigurasi Otomatis). Pac (Proxy Auto-config) pada dasarnya adalah logika JavaScript untuk menentukan proxy terdekat atau paling tepat untuk Anda, saya sangat menyarankan menggunakan server proxy secara langsung (dalam kasus Anda Network - Network Proxy).

Beberapa hal untuk diperiksa

Periksa /etc/apt/apt.conf Anda

Jaringan -Network Proxy GUI akan memperbarui /etc/apt/apt.confdan mengatur info proxy di sana.

Cari tahu info server proksi dari pac

Anda dapat menemukan detailnya dengan membaca proxy.pacfile tersebut.

Jadi /etc/apt/apt.confseharusnya terlihat seperti di bawah ini (misalkan server proxy => proxy.company.com port 80), JANGAN gunakan pac URL.

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

CATATAN: Jika tidak ada proxy yang ditentukan dalam file apt config, apt-getakan kembali ke http_proxyvariabel lingkungan.

Dari halaman manual apt.conf, balas komentar dari @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.

Periksa variabel lingkungan proxy

Anda dapat memeriksa pengaturan proxy dengan menjalankan yang berikut di terminal

echo $http_proxy
echo $https_proxy
echo $ftp_proxy

Jika Anda mengatur variabel env dengan benar, Anda harus dapat memperbarui di CLI.

Lebih suka IPv4

Saya perhatikan apt-getsedang mencoba untuk terhubung ke server pembaruan menggunakan alamat ipv6 mereka. Ini dapat menyebabkan masalah (terkadang alamat IPV6 kedaluwarsa atau berubah).

Anda dapat mengedit /etc/gai.confdan menambahkan precedence ::ffff:0:0/96 100untuk lebih memilih ipv4 daripada ipv6.

Keterangan lebih lanjut

Terry Wang
sumber
Terima kasih atas tanggapannya. Nilai yang saya masukkan ke "/etc/apt/apt.conf" adalah URI dan socket aktual yang berasal dari file .pac, bukan URI dari file .pac itu sendiri (itulah yang saya masukkan ke dalam "pengaturan sistem / jaringan / proxy jaringan ".
Daniel Glasser
Saya masuk ke "Pengaturan Sistem / Jaringan / proxy jaringan" dan menggunakan konfigurasi manual; ini memang memperbarui "/etc/apt/apt.conf". Saya juga menonaktifkan IPv4 dengan mengedit "/etc/sysctl.conf". Ini sepertinya telah melakukan trik. Terima kasih atas bantuan Anda.
Daniel Glasser
Tidak benar, apt-get tidak pernah menggunakan http_proxyatau variabel lingkungan apa pun.
Braiam
@Braiam lakukan man apt.confdan lihat http::Proxy. Saya juga memperbarui jawabannya. Saya juga telah menggunakan http_proxydan https_proxyvariabel lingkungan untuk digunakan apt-getselama bertahun-tahun. Lakukan riset sebelum memilih.
Terry Wang
Juga, lakukan riset sendiri! Jalankan sudo apt-get -o Debug::Acquire::http=true updatedan periksa diri Anda sendiri jika hanya menyetel variabel lingkungan menggunakan proxy. Dan jika Anda menggunakan proxy untuk tahun, dapatkan diri Anda diperbarui .
Braiam
5

Saya percaya saya memiliki masalah ini dan jawabannya sederhana. Sintaksnya sangat penting. Itu harus terlihat seperti ini:

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

(Ada tambahan ":" dan terminating ";")

kh
sumber
1

@Braiam

Saya pikir lebih baik memulai jawaban terpisah untuk mengklarifikasi hal-hal.

Saya melakukan tes cepat menggunakan Vagrant dan Ubuntu 13,04 Raring x86_64 VM di belakang firewall.

versi apt-get adalah 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

Pembaruan: Ini bekerja dengan cara yang sama pada Precise 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

1st - hapus file konfigurasi apt

Saya menghapus pengaturan proxy di /etc/apt/apt.conf. Saya juga melakukan ackdan agmemindai semua file dan sub-direktori /etc/aptuntuk memastikan tidak ada proxy yang diset di file konfigurasi apt.

Secara default, {http_proxy,https_proxy,ftp_proxy}variabel env tidak disetel.

apt-get tidak dapat terhubung ke server pembaruan.

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 - set variabel lingkungan

Cukup atur variabel proxy

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

apt-get sekarang dapat terhubung!

Lihat hasil debug (ini adalah sesuatu yang belum pernah saya coba).

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 - hapus variabel lingkungan

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

Sekarang apt-get tidak dapat terhubung.

Kesimpulan

Seperti yang man apt.confdikatakan, jika http :: Proxy TIDAK diset, http_proxyvariabel lingkungan akan digunakan.

BTW : Saya juga pengguna Arch Linux. Pacman bekerja dengan cara yang sama, jika saya tidak menggunakan wgetatau curldengan proxy pacman.conf, itu akan menggunakan variabel lingkungan `{http_proxy, https_proxy, ftp_proxy} '.

Pembaruan sudo TIDAK memelihara variabel lingkungan. Itu sebabnya sudo apt-get updategagal. Untuk mengatasinya (pertahankan variabel lingkungan proxy), gunakan sudo -E apt-get update.

Terry Wang
sumber
Btw, saya tidak mendapat pemberitahuan tentang jawaban ping. Juga, lihat komentar saya, coba gunakan sudologin sebagai root dan lihat mengapa saya mengatakan itu tidak berhasil.
Braiam
@Braiam saya melakukan beberapa tes lagi. sudoTIDAK melestarikan variabel lingkungan, itu masalahnya! Tetapi Anda dapat mengatasinya dengan menggunakan sudo -E apt-get update && apt-get dist-upgrade;-)
Terry Wang
Saya agak mengatakan hal yang sama dalam komentar saya yang lain : S
Braiam
Saya suka bagaimana Anda menjelaskan jawabannya. Solusi untuk masalah saya adalah tip "sudo -E". Saya tidak ingat pernah perlu menggunakan opsi -E di masa lalu.
DaShaun