'apt-get' không hoạt động với Proxy


52

Đối với lệnh

sudo apt-get update

Tôi nhận được lỗi sau:

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

Tôi đang chạy Ubuntu 10.10 được cài đặt trên Windows XP bằng VirtualBox. Đối với kết nối Internet, tôi đang sử dụng máy chủ proxy với xác thực. Tôi đã cố gắng sử dụng gnome-network-proxycông cụ để thiết lập cài đặt proxy trên toàn hệ thống.

Sau đó /etc/environmentđã được cập nhật theo http_proxybiến với định dạng http://my_proxy:port/, không có dữ liệu xác thực.

Tôi đã kiểm tra cái này với Firefox. Trình duyệt yêu cầu tôi đăng nhập và mật khẩu và mọi thứ đều hoạt động tốt. Thật không may, đó không phải là trường hợp của apt-get. Tôi cũng đã cố gắng làm như mô tả ở đây . Thật không may, nó không hoạt động.

Có thể bằng cách nào đó liên quan đến thực tế là một proxy trong miền Windows, có ý tưởng nào không?

Tên proxy của tôi là http-proxy . Là ' - ' một nhân vật đặc biệt ở đây?


2
Bạn đã sử dụng proxy mạng toàn cầu trong hệ thống -> tùy chọn -> proxy mạng và áp dụng cài đặt toàn cầu chưa?
DemonWareXT

Bạn có thể dùng thử công cụ GUI dễ sử dụng GrrProxy
Renae Lider

Câu trả lời:


52

Đối với mạng công ty của tôi, tôi được quản trị viên đặt tên proxy theo định dạng:

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

Đối với mạng Windows của chúng tôi, tên người dùng của chúng tôi ở định dạng:

[domain]\[username]

Ví dụ:

http://mywindowsdomain\fossfreedom:password@askubuntu-proxy.com:8080

Điều này đã được thêm vào tệp MỚI sau đây (nó không tồn tại theo mặc định):

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

Văn bản sau đây đã được thêm vào:

Acquire::http::Proxy "http://mywindowsdomain\fossfreedom:password@askubuntu-proxy.com:8080";

Nếu bạn đang sử dụng proxy ẩn danh thì bạn không cần thông tin đăng nhập:

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

Lưu tệp và sau đó kiểm tra xem tất cả đã ổn với:

sudo apt-get update

Đối với những người sẽ đọc điều này sau: Điều này có vẻ như là một hack vào mắt chưa được huấn luyện, nhưng nó là một cách cực kỳ đơn giản để có được proxy công ty tuân theo.
macduff

1
Điều này hoạt động hoàn hảo. KHÔNG GIỚI HẠN bạn trước đó đã đặt /etc/apt/apt.conf với một dòng Mua lại xấu. Tôi đã làm điều đó, và tất cả những gì tôi phải làm là quay lại và xóa dòng đó.
Bỏ qua Huffman

Trên Ubuntu 12.10, tôi đã phải sao chép các thay đổi được thực hiện thành /etc/apt/apt.conf.d/01proxy sang /etc/apt/apt.conf trước khi nó hoạt động.
Stephen Niedzielski

ngay cả với các chỉnh sửa này, tôi không thể làm cho nó hoạt động với tôi với 12.04 ... nhưng tôi đã xoay sở để làm cho nó hoạt động bằng cách sử dụng và định cấu hình ntlmaps và trỏ tệp apt.conf vào proxy trung gian ở đó.
monkut

The program 'gksudo' is currently not installed. You can install it by typing: sudo apt-get install gksu(tất nhiên sẽ không hoạt động nếu không có proxy được thiết lập ...) May mắn là nó sudohoạt động tốt.
TED

13

Tôi đã thấy rằng USERNAME và PASSWORD được nhập vào applet "Network Proxy" không được lưu trữ vào tệp apt.conf, bạn phải thêm tên người dùng và mật khẩu theo cách thủ công vào tệp /etc/apt/apt.conf.

Applet "Network Proxy" chỉ lưu trữ tên máy chủ và cổng.

Cú pháp cơ bản là

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

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

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

Nếu bạn đang sử dụng tên người dùng và mật khẩu Windows, hãy làm theo lời khuyên này:

User = Domain/Username

(người dùng windows /không sử dụng \)

Nếu bạn đang sử dụng mật khẩu mạnh / phức tạp của Windows với các ký tự đặc biệt, bạn phải sử dụng mã hóa URL cho các giá trị, ví dụ: "@" trong mật khẩu sẽ là "% 40".


(người dùng windows có sử dụng / không) Vậy đó là lý do tại sao tôi bị kẹt :) Cảm ơn!
GaiusSensei

9

Hãy thử cài đặt http_proxythành http: // user: pass @ proxyserver: port /

chỉnh sửa:
Nếu cài đặt http_proxykhông hoạt động, hãy thử chỉnh sửa apt.conf. Trong
Ubuntu apt.confbị phân mảnh trong /etc/apt/apt.conf.d/thư mục.
Trong thư mục này chỉnh sửa /etc/apt/apt.conf.d/01ubuntu:

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

hoặc thử cài đặt bằng Synaptic: Cài đặt -> Tùy chọn -> Mạng
và sau đó đặt cài đặt proxy của bạn trong "Cấu hình proxy thủ công".


3
Bạn có nghĩa là / etc / môi trường tập tin?
tummyk

Yest, nó sẽ đặt biến này trên toàn cầu.
thường

Làm thế nào một người sẽ mã hóa dấu hai chấm như một phần của mật khẩu?
k0pernikus

/ etc / môi trường không hoạt động với apt-get (hoặc ít nhất là nó yêu cầu khởi động lại;), việc thay đổi apt.conf có hiệu lực ngay lập tức
Danubian Sailor

Tôi có thể xác nhận cài đặt "Cấu hình proxy thủ công" và "Áp dụng toàn hệ thống" trong Mạng hoạt động với apt-get.
Will Sheppard

4

Tôi đứng sau một proxy MS MS và tôi đang sử dụng Proxy xác thực Cntlm; trong apt.conftôi có 4 dòng; Tôi đã đọc ở đâu đó rằng dòng cuối cùng phải trống, nhưng tôi không chắc về nó. Nó hoạt động hoàn hảo:

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 có một tùy chọn khám phá giúp tìm cấu hình phù hợp để hoạt động với NTLM auth của mạng của bạn, hãy thử điều này:

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

sao chép và dán kết quả vào /etc/cntlm.conf

khởi động lại cntlm


'cntlm' is currently not installed. You can install it by typing: sudo apt-get install cntlm(nếu khóa học không hoạt động nếu proxy của tôi không được đặt đúng ...)
TED

2
  1. Mở terminal và thêm các dòng sau vào /etc/apt/apt.conf.

    gksu gedit /etc/apt/apt.conf
    
  2. Thêm 2 dòng sau:

    Acquire::http::Proxy "http://user:pass@proxy-host:port/";
    Acquire::ftp::Proxy "http://user:pass@proxy-host:port/";
    
  3. Lưu và thoát.

    Bây giờ apt-get updatevà nên hoạt động đằng sau một proxy, nhưng bạn sẽ nhận thấy rằng vẫn còn một cái gì đó không hoạt động, đó là add-apt-repositorylệnh.

    Để có thể thêm kho lưu trữ phía sau proxy, hãy nhập các lệnh sau:

    # 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`
    

    Bây giờ bạn có thể thêm kho lưu trữ trong Lucid và Natty bằng cách sử dụng LANG = C add-apt-repository

    Thí dụ:

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

Qua Unixmen


2

Làm cách nào để áp dụng apt-get update hoặc cài đặt trong Ubuntu? Tôi đã đứng sau một máy chủ proxy và sau khi cài đặt Ubuntu, tôi không thể cập nhật hoặc cài đặt bất cứ thứ gì bằng lệnh apt-get. Sau khi tìm kiếm tôi thấy rằng gói apt đã được thay đổi, bây giờ không còn thư mục apt.conf trên / etc / apt nữa.

Những gì tôi đã làm để giải quyết vấn đề này là như sau:

Mở terminal và tập tin

sudo -H gedit /etc/bash.bashrc

và thêm vào dưới cùng của tập tin 2 dòng này:

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

Bây giờ lưu và thoát, Bây giờ bạn sẽ có thể cập nhật, nâng cấp hoặc cài đặt các gói trong Ubuntu


Tôi đã thêm xuất khẩu như bạn đề xuất. Nó vẫn không hoạt động. Bây giờ tôi nhận được một thông báo lỗi khác "Không thể kết nối với tính năng bổ sung.ubfox.com: 80 (91.189.88.33). - kết nối (110: Đã hết thời gian kết nối)". <br> Điều kỳ lạ là khi tôi nhập cùng cài đặt proxy trong tùy chọn Firefox thì tôi có thể duyệt web.
tummyk

@tommyk bạn có thể đăng /etc/apt/source.list và cập nhật câu hỏi của bạn tại đây hoặc cố gắng xóa ngoại vi.ubfox.com từ /etc/apt/source.list và thực hiện cập nhật apt-get
hhlp

Tôi đã thay thế nguồn.list của mình bằng một trang mặc định từ trang web Ubuntu. Tôi vẫn gặp lỗi tương tự cho mọi kho lưu trữ được liệt kê trong tệp này.
tummyk

2

Cái này đã được làm việc cho tôi !!

(thêm proxy thủ công từ GUI thông qua cài đặt hệ thống-> mạng, v.v. sẽ hoạt động) Nhưng nếu không và bạn xuất biến env từ thiết bị đầu cuối:

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

và một lần nữa cho https:

export https_proxy= <usually the same as the http>

Quan trọng nhất để thêm -E: Để chạy sudo apt-get installhoặc sudo apt-get updatebạn phải chạy:

sudo -E <command>

"-E" sử dụng các biến môi trường người dùng của bạn cho gốc (sudo), cho vấn đề đó là http_proxy / https_proxy bạn vừa xuất.

Hy vọng nó giúp :)


1

Với proxy BlueCoat, đối với tôi, định dạng của apt.conftệp được yêu cầu phải giống như:

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

^ ^ ^ ^ Dòng trống sau dòng proxy thứ 3, không nhập dòng này. ^ ^ ^ ^


1

Có vấn đề tương tự sau khi cài đặt Ubuntu 18.04. Những gì làm việc cho tôi là:

  1. Mở màn hình Proxy mạng trong cài đặt Mạng
  2. Chọn Thủ công và thêm cả thông tin proxy http và https
  3. Ngoài ra, đặt trường Bỏ qua Máy chủ lưu trữ với:
    https://extensions.gnome.org*, *.extensions.gnome.org*
  4. Đã khởi động lại Ubuntu

Đối với điểm 3, không chắc chắn nếu thêm mục trên có hoạt động hay không nhưng bước này hoạt động với tôi


0
  1. Bắt đầu Synaptic (đi tới Hệ thống -> Quản trị -> Synaptic trong Gnome 2 hoặc nhập "synaptic" trong Dash in Unity).
  2. Trên thanh menu, nhấp vào Cài đặt , theo sau là Tùy chọn .
  3. Khi cửa sổ Tùy chọn xuất hiện, nhấp vào tab Mạng .
  4. Chọn nút radio Cấu hình proxy thủ công và nhập thông tin proxy của bạn.
  5. Để áp dụng thông tin xác thực, nhấp vào nút Xác thực và nhập tên người dùng và mật khẩu.
  6. Bấm OK để đóng cửa sổ Xác thực HTTP.
  7. Nhấn OK để đóng cửa sổ Preferences.
  8. Nhấp vào nút Tải lại để cập nhật danh sách gói.

Lưu ý rằng thay đổi cài đặt này cũng sẽ ảnh hưởng đến Trình quản lý cập nhật .


0

Giải pháp một lớp lót này làm việc cho tôi:

sudo env http_proxy=http://<ip>:<port> apt-get update
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.