Yêu cầu xác thực Proxy


38

Khi tôi cố gắng cài đặt một phần mềm bằng trung tâm phần mềm Ubuntu, tôi nhận được:

Failed to download repository information
Check Your Internet connection

Khi tôi cố gắng làm một apt-get install something, tôi nhận được:

407  Proxy Authentication Required

Tôi sử dụng máy chủ proxy yêu cầu tên người dùng và mật khẩu. Tôi đã đặt proxy hệ thống của mình theo cách thủ công, bằng cách cắm các số bắt buộc vào proxy Mạng và áp dụng hệ thống trên toàn hệ thống. Tôi đoán vấn đề bây giờ là cắm tên người dùng và mật khẩu của tôi.

Khi tôi sử dụng INTERNET qua Mozilla, nó đặc biệt hỏi tôi tên người dùng và mật khẩu.

Câu trả lời:


48

Để apt-get hoạt động, bạn nên chỉnh sửa tệp cấu hình apt:

sudo -H gedit /etc/apt/apt.conf

Và thêm Acquire::http::Proxy "http://username:password@proxyhost:port/";

Cú pháp hiển thị ở trên nên được tuân thủ nghiêm ngặt.

Cấu hình này có thể không thành công nếu tên người dùng hoặc mật khẩu của bạn có '@' trong đó. Bạn cũng có thể thêm cấu hình proxy cho các giao thức khác như FTP.

Cập nhật: Nếu tên người dùng hoặc mật khẩu của bạn có '@', bạn có thể thay thế bằng% 40 Ví dụ: Nếu mật khẩu của bạn được @123nhập dưới dạng %40123.

Đối với các nhân vật khác, xem phần trăm mã hóa này


4
Tôi đã làm chính xác những gì bạn nói nhưng nó vẫn cho tôi cùng một lỗi. Nó không giải quyết được vấn đề.
DeLiK

Tôi đã thêm các cài đặt proxy ở trên, nhưng bây giờ tôi đang nhận được 404- Không tìm thấy, thay cho 407- Xác thực proxy
Deepak

Nếu mật khẩu của tôi chứa "@" thì sao?
Đēēpak

12

Trước tiên, hãy đặt cài đặt proxy của bạn thông qua tùy chọn sử dụng trình hướng dẫn Linux và áp dụng cài đặt toàn hệ thống giống như hộp hướng dẫn này.

Thêm môi trường proxy của bạn. Đây chỉ là các cài đặt ví dụ ...
Mở đăng nhập dấu nhắc lệnh của bạn và chỉnh sửa tệp apt.conf:

sudo vi /etc/apt/apt.conf

Đã có 4 dòng mã bắt đầu bằng từ khóa Lấy , chỉnh sửa nó như thế này:

Acquire::http::Proxy "http://username:password@proxyhost:port/";
Acquire::https::Proxy "https://username:password@proxyhost:port/";
Acquire::ftp::Proxy "ftp://username:password@proxyhost:port/";

Lưu ý
Nếu Mật khẩu của bạn chứa các ký tự đặc biệt như @, $,! (ví dụ: Mật khẩu: P @ ssword) sau đó thay thế các ký tự đặc biệt bằng mã hex tương đương với% tiền tố như thế này:

Acquire::http::Proxy "http://username:p%40ssword@proxyhost:port/"; 

@ ==>% 40
$ ==>% 24
! ==>% 21


Tôi đã thêm các cài đặt proxy ở trên, nhưng bây giờ tôi đang nhận được 404- Không tìm thấy, thay cho 407- Xác thực proxy
Deepak

Sự khác biệt giữa dòng đầu tiên và thứ tư là gì ????
Moataz Elmasry

5

Nếu bạn đứng sau proxy doanh nghiệp đang chạy xác thực NTLM, bạn có thể sử dụng CNTLM:

$ sudo apt-get install cntlm
$ sudo vi /etc/cntlm.conf

Thay đổi cài đặt mặc định (tên miền, tên người dùng, mật khẩu và proxy). Sau đó khởi động lại dịch vụ:

$ sudo /etc/init.d/cntlm restart

Bây giờ bạn có thể sử dụng localhost:3128(cổng CNTLM mặc định) làm proxy toàn hệ thống cho Ubuntu.

Kiểm tra http://cntlm.sourceforge.net/ để tìm tài liệu.


7
Để đi sudo apt-get install cntlmlàm, trước tiên bạn cần phải thông qua proxy đó.
Andrew Savinykh

2

Tôi nghĩ rằng hướng dẫn này sẽ giúp bạn.

Nhấp vào tab Mạng, chọn tùy chọn Cấu hình proxy thủ công và nhập máy chủ proxy, chi tiết cổng. Nếu bạn có tên người dùng, mật khẩu nhấp vào Xác thực để nhập các chi tiết này, nhấp vào ok

(từ http://www.ubuntugeek.com/how-to-configure-ubfox-desktop-to-use-your-proxy-server.html )

Để gọi nó cho tất cả các chương trình được khởi chạy trong shell, tôi khuyên bạn nên thêm nó vào /etc/bash.bashrcsử dụng gksudo gedit /etc/bash.bashrcđể áp dụng toàn hệ thống cho tất cả các phiên bash hoặc cho không gian người dùng của bạn ~/.bashrc.

Theo như Synaptic, trong tab Preferencesbên dưới, Networkbạn dường như có thể đặt xác thực cho proxy của mình. Điều này dường như là cụ thể cho Synaptic, mặc dù.


Tôi sử dụng Ubuntu 11, bạn có thể giúp tôi tiếp cận synap không
user38507

cũng là nơi chính xác trong thie bash.bashrc, người ta cần phải nhập tên người dùng và mật khẩu
user38507

export http_proxy=http://username:password@proxyhost:port/
Panther

tôi đã đưa ra lệnh sudo echo "export http_proxy = swastik: ramdayal@192.168.11.107: 8081 " >> /etc/bash.bashrc ngay cả bây giờ tôi cũng gặp lỗi tương tự
user38507

2

Một cách khác là sử dụng Synaptic Gói ManagerCài đặt Synaptic , nơi bạn có thể chỉ định cài đặt proxy độc lập của hệ thống và cũng lưu trữ tên người dùng và mật khẩu.

Cài đặt proxy

Tuy nhiên, điều này sẽ không thay đổi proxy cho Trung tâm phần mềm.


2

Nếu tên người dùng của bạn được phân tách bằng dấu cách thì hãy sử dụng:

export http_proxy='http://Pankaj Kumar Pandit:ABCD@192.168.1.1:3128/'

Nếu tên người dùng của bạn không được phân tách bằng dấu cách thì hãy sử dụng:

export http_proxy=http://Pankaj_Kumar_Pandit:ABCD@192.168.1.1:3128/

Sự khác biệt là việc bổ sung mở và đóng cửa '.


2

Trong các phiên bản mới nhất của Ubuntu, bạn có thể sử dụng Cài đặt hệ thống> Mạng> Proxy mạng và khi bạn nhấp vào, "apply system wide"nó sẽ sửa đổi cài đặt proxy ở những nơi khác nhau, ít nhất là bao gồm cả /etc/apt/sources.listtệp, TUY NHIÊN ...

Nó không có bất kỳ cơ chế để nhắc xác thực. Không biết tại sao chưa có ai thực hiện phần đó, nhưng vì điều này, nếu bạn cần xác thực, bạn cũng cần đặt mật khẩu và tên người dùng của mình ở định dạng này:

username:password@proxy.address

Nếu mật khẩu hoặc tên người dùng của bạn có bất kỳ ký tự đặc biệt nào trong đó, bao gồm @hoặc #hoặc !bất cứ thứ gì, có lẽ bạn sẽ phải sử dụng mã ký tự được mã hóa HTML cho bất kỳ ký tự đặc biệt nào. Xem trang này để biết cách bạn có thể: http://www.obkb.com/dcljr/charstxt.html


1

Tôi cũng đang đối mặt với vấn đề tương tự. Sau đó tôi đã biết về CNTLM. Bây giờ nó hoạt động thực sự tốt. Xem cách định cấu hình CNTLM tại đây.


2
Trong khi về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
Oyibo

Cảm ơn bạn! Đây là câu trả lời duy nhất thực sự giúp tôi. Các câu trả lời khác (mà tôi đã biết) đang giả sử proxy đang sử dụng xác thực HTTP cơ bản, đây không phải là trường hợp của tôi.
Alexander Amelkin

1

Tôi đã tạo một tập lệnh python để đặt cài đặt proxy trong Ubuntu

Giả sử cài đặt sau, bạn cần thay thế ở những nơi có liên quan

  • proxy_address 172.16.26.214
  • proxy_port 3128
  • proxy_username vua
  • nữ hoàng mật khẩu

Tôi đã tạo một video đưa bạn qua tất cả các bước:

https://www.youtube.com/watch?v=eBtzKa-dvJg

Các bước được chi tiết tại đây:

  • Nhấp chuột đầu tiên vào Dash
  • Trong hộp tìm kiếm Nhập "Proxy" (Không có dấu ngoặc kép)
  • Nhấp vào "Mạng" trong Ứng dụng
  • Chọn "Proxy mạng"
  • Chọn thủ công
  • Nhập địa chỉ proxy và cổng proxy
  • Ứng dụng. Nhập mật khẩu hệ thống của bạn để xác nhận

Tải xuống kịch bản setproxy.py

https://pastebin.com/MbBHta8g

Giả sử bạn đã lưu setproxy.pytrong Downloadsthư mục

  • Loại thiết bị đầu cuối mở
  • cd ~ / Tải xuống

Lệnh chung:
sudo python setproxy.py proxy_address proxy_port proxy_username proxy_password
Ví dụ của chúng tôi

  • sudo python setproxy.py 172.16.26.214 3128 king queen

Trong trường hợp proxy đơn giản Không cần xác thực, lệnh là:

  • sudo python setproxy.py 172.16.26.214 3128

Trong trường hợp bạn có python 3và ở trên chạy bằng cách sử dụng python2.7 các lệnh sẽ như thế nào

  • sudo python2.7 setproxy.py 172.16.26.214 3128
  • sudo python2.7 setproxy.py 172.16.26.214 3128 king queen

1
Sử dụng dropbox hoặc sao chép để lưu trữ tập lệnh là rất xấu. Bạn nên sử dụng github hoặc paste.bin ít nhất
Quan đến

0

Bạn cũng có thể thử các lệnh sau.

Đối với kết nối http - xuất:

http_proxy="http://username:password@proxy_server_address:port_no"

Đối với kết nối https - xuất:

https_proxy="https://username:password@proxy_server_address:port_no"

Và tương tự như vậy cho ftp và các kết nối khác.

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.