'apt-get' tidak berfungsi dengan Proxy

52

Untuk perintah

sudo apt-get update

Saya mendapatkan kesalahan berikut:

W: Failed to fetch http://ch.archive.ubuntu.com/ubuntu/dists/maverick-updates/multiverse/binary-i386/Packages.gz  
407  Proxy Authentication Required (The ISA Server requires authorization to fulfill the request. Access to the Web Proxy filter is denied. )

Saya menjalankan Ubuntu 10.10 yang diinstal pada Windows XP menggunakan VirtualBox. Untuk koneksi internet saya menggunakan server proxy dengan otentikasi. Saya mencoba menggunakan gnome-network-proxyalat untuk mengatur pengaturan proxy di seluruh sistem.

Setelah itu /etc/environmentdiperbarui oleh http_proxyvariabel dengan format http://my_proxy:port/, tidak ada data otentikasi.

Saya memeriksa ini dengan Firefox. Browser meminta saya untuk login dan kata sandi dan semuanya bekerja dengan baik. Sayangnya itu bukan kasus untuk apt-get. Saya juga telah mencoba melakukan seperti yang dijelaskan di sini . Sayangnya tidak berhasil.

Mungkin itu terkait dengan fakta bahwa proxy ada dalam domain Windows, ada ide?

Nama proxy saya adalah http-proxy . Apakah ' - ' karakter khusus di sini?

tommyk
sumber
2
Sudahkah Anda menggunakan proksi jaringan global di bawah sistem -> preferensi -> proksi jaringan, dan menerapkan pengaturan secara global?
DemonWareXT
Anda dapat mencoba alat GUI yang mudah digunakan GrrProxy
Renae Lider

Jawaban:

52

Untuk jaringan perusahaan saya, saya diberikan oleh administrator saya nama proksi dalam format:

http://[username]:[password]@[proxy-webaddress]:[port]

Untuk jaringan Windows kami nama pengguna kami dalam format:

[domain]\[username]

Sebagai contoh:

http://mywindowsdomain\fossfreedom:[email protected]:8080

Ini ditambahkan ke file BARU berikut ini (tidak ada secara default):

gksudo gedit /etc/apt/apt.conf.d/01proxy

Teks berikut telah ditambahkan:

Acquire::http::Proxy "http://mywindowsdomain\fossfreedom:[email protected]:8080";

Jika Anda menggunakan proxy anonim, maka Anda tidak perlu kredensial masuk:

Acquire::http::Proxy "http://askubuntu-proxy.com:8080";

Simpan file dan kemudian periksa bahwa semuanya baik-baik saja dengan:

sudo apt-get update
kebebasan fosil
sumber
Bagi mereka yang akan membaca ini nanti: Ini seperti retasan bagi mata yang tidak terlatih, tetapi ini adalah cara yang sangat sederhana untuk membuat perusahaan proxy patuh.
macduff
1
Ini bekerja dengan sempurna. KECUALI Anda sebelumnya telah mengatur /etc/apt/apt.conf dengan baris Acquire yang buruk. Saya melakukan hal itu, dan yang harus saya lakukan adalah kembali dan menghapus baris itu.
Lewati Huffman
Di Ubuntu 12.10, saya harus menyalin perubahan yang dibuat ke /etc/apt/apt.conf.d/01proxy ke /etc/apt/apt.conf sebelum bisa berfungsi.
Stephen Niedzielski
bahkan dengan pengeditan ini saya tidak bisa menjalankannya untuk saya dengan 12,04 ... tapi saya berhasil membuatnya bekerja dengan menggunakan dan mengkonfigurasi ntlmaps dan mengarahkan file apt.conf ke proxy perantara di sana.
monkut
The program 'gksudo' is currently not installed. You can install it by typing: sudo apt-get install gksu(yang tentu saja tidak akan berfungsi tanpa pengaturan proxy ...) Untungnya sudoberfungsi dengan baik.
TED
13

Saya telah menemukan bahwa USERNAME dan PASSWORD yang dimasukkan ke dalam applet "Network Proxy" tidak dapat disimpan ke dalam file apt.conf Anda harus secara manual menambahkan nama pengguna dan kata sandi dalam file /etc/apt/apt.conf.

Applet "Network Proxy" hanya menyimpan nama host dan porta.

Sintaks dasarnya adalah

Acquire::http::proxy "http://User:Password@host:port/";

Acquire::ftp::proxy "ftp://User:Password@host:port/";

Acquire::https::proxy "https://User:Password@host:port/";

Jika Anda menggunakan nama pengguna dan kata sandi Windows, ikuti saran ini:

User = Domain/Username

(pengguna windows /tidak menggunakan \)

Jika Anda menggunakan kata sandi Windows kuat / kompleks dengan karakter khusus, Anda harus menggunakan penyandian URL untuk nilai-nilai tersebut, misalnya "@" pada kata sandi akan menjadi "% 40".

MneMoth
sumber
(pengguna windows menggunakan / tidak) Jadi itu sebabnya saya macet :) Terima kasih!
GaiusSensei
9

Coba atur http_proxyke http: // pengguna: pass @ proxyserver: port /

edit:
Jika pengaturan http_proxytidak berhasil coba edit apt.conf. Di
Ubuntu apt.confterfragmentasi dalam /etc/apt/apt.conf.d/direktori.
Dalam direktori ini edit /etc/apt/apt.conf.d/01ubuntu:

APT {
    Acquire {
        http {
            Proxy "http://user:password@server:port";
        };
    };
};

atau coba atur menggunakan Synaptic: Settings -> Preferences -> Network
Dan kemudian atur pengaturan proxy Anda di "Konfigurasi proxy manual".

Coder Kasual
sumber
3
Apakah maksud Anda file / etc / environment?
tommyk
Yest, itu akan mengatur variabel ini secara global.
Casual Coder
Bagaimana cara menyandikan usus besar sebagai bagian dari kata sandi?
k0pernikus
/ etc / environment tidak bekerja dengan apt-get (atau setidaknya itu membutuhkan restart;), mengubah apt.conf memiliki efek langsung
Danubian Sailor
Saya dapat mengonfirmasi pengaturan "Konfigurasi proksi manual" dan "Menerapkan sistem lebar" di Jaringan berfungsi dengan apt-get.
Will Sheppard
4

Saya berada di belakang proxy MS ISA dan saya menggunakan Cntlm Authentication Proxy; dalam apt.confI have 4 lines; Saya pernah membaca bahwa baris terakhir harus kosong, tetapi saya tidak yakin tentang itu. Ini bekerja dengan sempurna:

Acquire::http::proxy "http://127.0.0.1:3128/";
Acquire::ftp::proxy "ftp://127.0.0.1:3128/";
Acquire::https::proxy "https://127.0.0.1:3128/";
setan
sumber
3

cntlm memiliki opsi penemuan yang membantu menemukan konfigurasi yang tepat untuk bekerja dengan auth NTLM dari jaringan Anda, coba ini:

cntlm -I -M http://test.com

salin dan tempel hasilnya di /etc/cntlm.conf

mulai ulang cntlm

tommyk
sumber
'cntlm' is currently not installed. You can install it by typing: sudo apt-get install cntlm(yang jika tentu saja tidak akan berfungsi jika proxy saya tidak diatur dengan benar ...)
TED
2
  1. Buka terminal dan tambahkan baris berikut ke /etc/apt/apt.conf.

    gksu gedit /etc/apt/apt.conf
    
  2. Tambahkan 2 baris ini:

    Acquire::http::Proxy "http://user:pass@proxy-host:port/";
    Acquire::ftp::Proxy "http://user:pass@proxy-host:port/";
    
  3. Simpan dan keluar.

    Sekarang apt-get updatedan harus bekerja di belakang proxy, tetapi Anda akan melihat bahwa masih ada sesuatu yang tidak berfungsi, itu adalah add-apt-repositoryperintah.

    Untuk dapat menambahkan repositori di belakang proxy, ketikkan perintah berikut:

    # export https_proxy="http://192.168.1.5:8080"
    # sed -i 's/"keyserver.ubuntu.com"/"hkp://keyserver.ubuntu.com:80"/' /usr/share`/pyshared/softwareproperties/ppa.py`
    

    Sekarang Anda dapat menambahkan repositori di Lucid dan Natty menggunakan LANG = C add-apt-repository

    Contoh:

    root @ ubuntu: ~ # LANG = C add-apt-repository ppa: motumedia / mplayer-daily

Melalui Unixmen

keledai
sumber
2

Bagaimana cara menerapkan pembaruan atau pemasangan apt-get di Ubuntu? Saya berada di belakang server proxy dan setelah menginstal Ubuntu saya tidak dapat memperbarui atau menginstal apa pun menggunakan perintah apt-get. Setelah mencari saya menemukan bahwa paket apt telah diubah, sekarang tidak ada lagi direktori apt.conf di / etc / apt.

Apa yang saya lakukan untuk mengatasi masalah ini adalah mengikuti:

Buka terminal dan file

sudo -H gedit /etc/bash.bashrc

dan tambahkan di bagian bawah file 2 baris ini:

#proxy 
export http_proxy=http://user:password@host:port/
export ftp_proxy=http://user:pass@host:port/

Sekarang simpan dan keluar, Sekarang Anda akan dapat memperbarui, meningkatkan atau menginstal paket di Ubuntu

hhlp
sumber
Saya telah menambahkan ekspor seperti yang Anda sarankan. Masih tidak bekerja. Sekarang saya mendapat pesan kesalahan yang berbeda "Tidak dapat terhubung ke extras.ubuntu.com:80 (91.189.88.33). - connect (110: Connection time out)". <br> Yang aneh adalah bahwa ketika saya memasukkan pengaturan proxy yang sama di preferensi Firefox maka saya dapat menjelajahi web.
tommyk
@tommyk dapatkah Anda memposting /etc/apt/sources.list dan memperbarui pertanyaan Anda di sini atau mencoba menghapus extras.ubuntu.com dari /etc/apt/sources.list Anda dan menjalankan pembaruan apt-get
hhlp
Saya telah mengganti sources.list saya dengan yang default dari halaman web ubuntu. Saya masih mendapatkan kesalahan yang sama untuk setiap repositori yang tercantum dalam file ini.
tommyk
2

Yang ini bekerja untuk saya !!

(menambahkan proxy secara manual dari GUI melalui sistem-pengaturan-> jaringan dll harus bekerja) Tetapi jika tidak dan Anda mengekspor variabel env dari terminal:

export http_proxy=http://<your proxy url>:<proxy port>

dan lagi untuk https:

export https_proxy= <usually the same as the http>

Paling penting untuk menambahkan -E: Untuk menjalankan sudo apt-get installatau sudo apt-get updateAnda harus menjalankan:

sudo -E <command>

"-E" menggunakan variabel lingkungan pengguna Anda untuk root (sudo), dalam hal ini http_proxy / https_proxy yang baru saja Anda ekspor.

Semoga bermanfaat :)

Kohn1001
sumber
1

Dengan proxy BlueCoat, bagi saya format apt.conffile harus seperti:

Acquire::http::proxy "http://Domain%5cUserID:[email protected]:80/";
Acquire::ftp::proxy "ftp://Domain%5cUserID:[email protected]:80/";
Acquire::https::proxy "https://Domain%5cUserID:[email protected]:80/";

^ ^ ^ ^ Baris kosong setelah baris proxy ke-3, jangan masukkan baris ini. ^ ^ ^ ^

Jason
sumber
1

Punya masalah yang sama setelah menginstal Ubuntu 18.04. Yang berhasil bagi saya adalah:

  1. Buka layar Proxy Jaringan dalam pengaturan Jaringan
  2. Pilih Manual dan tambahkan info proksi http dan https
  3. Selain itu setel field Abaikan Host dengan:
    https://extensions.gnome.org*, *.extensions.gnome.org*
  4. Mulai ulang Ubuntu

Adapun poin 3, tidak yakin apakah menambahkan entri di atas berfungsi atau tidak, tetapi langkah ini berfungsi untuk saya

Vuzi
sumber
0
  1. Mulai Synaptic (masuk ke System -> Administration -> Synaptic di Gnome 2, atau ketik "synaptic" di Dash in Unity).
  2. Pada bilah menu, klik Pengaturan , diikuti oleh Preferensi .
  3. Ketika jendela Preferensi muncul, klik pada tab Network .
  4. Pilih tombol radio konfigurasi proksi Manual dan masukkan informasi proxy Anda.
  5. Untuk menerapkan informasi otentikasi, klik tombol Otentikasi dan masukkan nama pengguna dan kata sandi.
  6. Klik OK untuk menutup jendela Autentikasi HTTP.
  7. Klik OK untuk menutup jendela Preferensi.
  8. Klik tombol Muat Ulang untuk memperbarui daftar paket.

Perhatikan bahwa perubahan pengaturan ini juga akan memengaruhi Update Manager .

NC Weber
sumber
0

Solusi satu garis ini bekerja untuk saya:

sudo env http_proxy=http://<ip>:<port> apt-get update
Raheel
sumber