'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?


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:password@askubuntu-proxy.com: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:password@askubuntu-proxy.com: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

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".


(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".


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/";

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


'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


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


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


1

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

Acquire::http::proxy "http://Domain%5cUserID:Password@proxy.name.whatever:80/";
Acquire::ftp::proxy "ftp://Domain%5cUserID:Password@proxy.name.whatever:80/";
Acquire::https::proxy "https://Domain%5cUserID:Password@proxy.name.whatever:80/";

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


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


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 .


0

Solusi satu garis ini bekerja untuk saya:

sudo env http_proxy=http://<ip>:<port> apt-get update
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.