Cấu hình proxy cho APT?


72

Tôi cần cấu hình proxy. Không có apt.conftập tin nào etc/apt/nên tôi đã tạo nó bằng cách sử dụng nano.

Nhưng tôi không hiểu những gì tôi cần viết ở đó. Tôi đã viết http_proxy = http://lgn:pwd@192.168.1.254:8080/ở đó và sau đó khởi động lại networking. Nhưng khi tôi cố gắng apt-get update- nó không hoạt động.

Trên thực tế tôi không hiểu cổng và ip nào tôi nên viết trong apt.conftệp (có ví dụ với 192.168.1.254ip và 8080cổng nên tôi quyết định sử dụng chúng).


Có một sự thay đổi trong cài đặt proxy để có được công việc trong proxy công ty trong ubfox, hãy truy cập github.com/navinas33/docker_ub Ubuntu.git nó hoạt động ...
Navin là

Câu trả lời:


103

Để sử dụng proxy, bạn cần một máy chủ proxy. IP và cổng phải từ máy chủ proxy này. Đăng nhập và pwd phải là người dùng và mật khẩu của bạn trên máy chủ proxy (nếu proxy yêu cầu đăng nhập).

Từ trang web help.ubfox.com :

Phương pháp tập tin cấu hình APT

Phương pháp này sử dụng tệp apt.conf được tìm thấy trong thư mục / etc / apt / của bạn. Phương pháp này hữu ích nếu bạn chỉ muốn apt-get (chứ không phải các ứng dụng khác) sử dụng http-proxy vĩnh viễn.

Trên một số cài đặt sẽ không có tập tin apt-conf được thiết lập. Chỉnh sửa tệp apt-conf (hoặc tạo tệp mới nếu bạn chưa có ai) bằng trình chỉnh sửa bạn chọn.

sudo nano /etc/apt/apt.conf

Thêm dòng này vào tệp /etc/apt/apt.conf của bạn (thay thế chi tiết của bạn cho yourproxyaddress và proxyport).

Acquire::http::Proxy "http://yourproxyaddress:proxyport";

Lưu tệp apt.conf.

Nếu proxy của bạn cần đăng nhập / mật khẩu, hãy thay thế:

"http://yourproxyaddress:proxyport";

với:

"http://username:password@yourproxyaddress:proxyport";

sử dụng tên người dùng và mật khẩu từ máy chủ proxy.


6
Thêm một tệp cục bộ riêng biệt vào /etc/apt/apt.conf.d/là thích hợp hơn để bạn không phải chỉnh sửa các tệp cấu hình cơ bản của hệ thống. Bằng cách đó, nếu chúng được cập nhật trong phiên bản gói tiếp theo, bạn không phải hợp nhất các thay đổi cục bộ của mình bằng tay.
tripleee

Có một tập tin proxy conf trên thư mục người dùng?
vẫy gọi

Câu trả lời này cần một bản cập nhật: gksudo đã lỗi thời. Xem xét đề xuất trình soạn thảo không phải GUI khác hoặc sudo -Hthay vì gksudo nếu sử dụng gedit hoặc tương tự.

24

Đây là một câu trả lời tổng quát hơn cùng với cấu hình apt.

Vì có rất nhiều nơi để định cấu hình cài đặt proxy, nó có thể gây nhầm lẫn khi bắt đầu. Hãy để tôi tóm tắt một số điều và đề xuất một số thực hành tốt.

Đối với các chương trình điều khiển

Ví dụ: wget, git và hầu hết mọi ứng dụng console kết nối với internet.

Nếu bạn muốn định cấu hình proxy mỗi khi bạn chạy các lệnh của mình vì một số lý do thì hãy đặt các biến môi trường bằng các lệnh sau.

export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

Khác nếu bạn muốn sử dụng cùng một cài đặt mọi lúc cho tất cả người dùng, sau đó sử dụng các cài đặt này.

Cấu hình trong bashrc

$ nano /etc/bash.bashrc
export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

Cấu hình trong /etc/environment

$ nano /etc/environment
https_proxy="http://myproxy.server.com:8080/" 
ftp_proxy="http://myproxy.server.com:8080/" ...

Định cấu hình bằng GUI

Mở cài đặt mạng và đặt proxy mạng toàn hệ thống của bạn.

Mạng -> Proxy mạng -> Cấu hình -> Áp dụng toàn hệ thống.

Nhưng điều này có thể không hữu ích nếu bạn có xác thực cho proxy.

Đối với apt.

Bạn cần thực hiện một số công việc bổ sung cho apt, vì apt tình cờ không tuân theo các biến môi trường,

$ nano /etc/apt/apt.conf
Acquire::http::Proxy "http://USERNAME:PASSWORD@SERVER:PORT";
Acquire::https::Proxy "https://USERNAME:PASSWORD@SERVER:PORT";

Đối với mọi thứ nằm ngoài phạm vi này, phải có tùy chọn để định cấu hình cài đặt proxy trong chính ứng dụng. Nếu không tôi xin lỗi;)


2
cấu hình trong / etc / môi trường rất quan trọng vì nếu bạn chỉ thiết lập var_proxy var cho người dùng của mình, khi bạn chuyển sang chế độ sudo (đối với những thứ như 'sudo apt-get update'), thiết bị đầu cuối thường không bảo vệ môi trường hiện tại bình; rất quan trọng để kiểm tra cài đặt của bạn: sudo echo $ http_proxy
belun

HTTP_PROXY(viết hoa) dường như là tên tiêu chuẩn cho biến đó, mặc dù nhiều chương trình sẽ quay trở lại phiên bản chữ thường. https_proxy(lưu ý chữ thường) là cách viết hoa chính xác cho điều đó, nhưng bạn sẽ không bao giờ sử dụng nó một mình, như bạn làm ở /etc/environmenttrên. (Tôi nghĩ đó slà một lỗi đánh máy.)
Curt J. Sampson

Lý do để APT yêu cầu cấu hình proxy bổ sung là gì? Tại sao nó không tuân theo / etc / môi trường?
Loreno

22

Một cái gì đó như sau nên hoạt động:

Acquire::http::proxy "http://lgn:pwd@192.168.1.254:8080/";
Acquire::https::proxy "http://lgn:pwd@192.168.1.254:8080/";

Có sự khác biệt nào cổng và ip để sử dụng?
lapots

Vâng, vâng, bạn cần phải đưa vào các chi tiết chính xác cho proxy bạn muốn sử dụng tất nhiên.
Dennis Kaarsemaker 17/2/13

er ... ip - đó là ip của bộ định tuyến? Ý tôi là ip này tôi đã sử dụng từ ví dụ nhưng tất cả các cài đặt của bộ định tuyến tôi định cấu hình trong trình duyệt bằng 192.168.1.1ip. Tôi nên sử dụng .1? và đăng nhập và mật khẩu nên là root hoặc bộ định tuyến của Ubuntu?
lapots

2
Bạn thậm chí có biết những gì bạn đang làm? Làm thế nào để bạn biết bạn cần sử dụng proxy nếu bạn không biết chi tiết về nó?
Dennis Kaarsemaker 17/213

5
Sau đó hỏi giáo viên của bạn. Đây không phải là một trang web "làm bài tập về nhà cho tôi".
Dennis Kaarsemaker 17/213

5

Những gì bạn có thể làm cũng là cố gắng chạy lệnh với sudo -E, sẽ có các cài đặt môi trường. Nó dường như hoạt động với tôi khi tôi cố gắng cập nhật, add-apt-repository và cài đặt. Thí dụ:

sudo -E add-apt-repository ppa:xxxxx

Theo @David Foerster, điều này chỉ hoạt động đối với tương tác thủ công bằng cách sử dụng shell, nhưng nó sẽ không hoạt động trên các tác vụ và dịch vụ tự động gọi Apt mà không có sự tương tác của người dùng.


Điều đó sẽ không giúp với các tác vụ và dịch vụ tự động gọi Apt mà không có sự tương tác của người dùng.
David foerster

Cảm ơn bạn đã thông báo, tôi sẽ thêm nhận xét của bạn để trả lời.
Frank Qiu

2

Nếu bạn cần sử dụng apt phía sau proxy, có lẽ mọi thứ khác cũng cần cấu hình proxy. Tôi muốn quản lý cài đặt proxy của mình ở một nơi, đó sẽ là biến môi trường.

Cho rằng tôi tạo một /etc/profiles.d/99-proxy.sh, có chứa các cài đặt proxy cần thiết (như larent được mô tả):

export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export https_proxy=$http_proxy
export ftps_proxy=$http_proxy

theo cách đó, tất cả người dùng trên máy đó đều có quyền truy cập proxy. (đừng quên chmod a+x)

Khi bạn sử dụng apt hoặc apt-get như một người dùng, người dùng đó có thể sử dụng sudo. Giống như Frank Qiu mô tả, sudo không vượt qua các biến môi trường. Cho rằng bạn có thể thêm

Defaults env_keep += "http_proxy https_proxy ftp_proxy"

để (ví dụ)

/etc/sudoers.d/00-environment 

hoặc trực tiếp vào

/etc/sudoers

tập tin. Bằng cách đó, bạn chỉ phải quản lý cài đặt proxy ở một nơi.


0

Câu hỏi ban đầu có thể sai hướng. Tôi tin rằng bạn muốn thiết lập một máy chủ proxy trong Linux?

Chà điều đó hoàn toàn khác với việc muốn sử dụng proxy hiện có từ môi trường Linux.

Nếu câu hỏi của bạn là câu hỏi đầu tiên thì hãy sử dụng bất kỳ dịch vụ bên thứ ba nào để định cấu hình máy chủ proxy trong Linux. Một ví dụ có thể là mực.

Các lệnh đơn giản để cài đặt mực:

$ sudo apt-get install squid3

Sau đó chỉnh sửa cấu hình để cho phép Local Net (trong trường hợp này là máy của chính bạn). $ sudo vi /etc/squid3/squid.conf

Thêm / Chỉnh sửa các dòng sau:

http_access allow local_net
acl local_net src 192.168.1.0/255.255.255.0

Giả sử IP của bạn cho máy Linux nằm trong khối 192.168.1 / 24.


Có lẽ hầu hết người đọc câu hỏi này đã cài đặt mực;), cũng đặt các http[s]_proxybiến ENV và bây giờ tự hỏi, tại sao APT vẫn không hoạt động. Nhưng nếu bạn nhận được HTTP 403 từ mọi thứ trừ máy có squid- hãy tìm lại tất cả các lần xuất hiện của từ denykhông được nhận xét. (đặc biệt là http_accesstrên cùng một dòng.
Tomasz Gandor
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.