จำเป็นต้องมีการรับรองความถูกต้องของพร็อกซี 407


38

เมื่อฉันพยายามติดตั้งซอฟต์แวร์โดยใช้ศูนย์ซอฟต์แวร์ Ubuntu ฉันจะได้รับ:

Failed to download repository information
Check Your Internet connection

เมื่อฉันพยายามทำapt-get install somethingฉันได้รับ:

407  Proxy Authentication Required

ฉันใช้พร็อกซีเซิร์ฟเวอร์ที่ต้องการชื่อผู้ใช้และรหัสผ่าน ฉันได้ตั้งค่าพร็อกซีระบบของฉันด้วยตนเองโดยเสียบหมายเลขที่จำเป็นในพร็อกซีเครือข่ายและนำไปใช้กับทั้งระบบ ฉันเดาว่าปัญหานี้กำลังเสียบชื่อผู้ใช้และรหัสผ่านของฉัน

เมื่อฉันใช้อินเทอร์เน็ตผ่าน Mozilla มันจะถามชื่อผู้ใช้และรหัสผ่านของฉันโดยเฉพาะ

คำตอบ:


48

เพื่อให้ apt-get ทำงานคุณควรแก้ไขไฟล์ apt config ของคุณ:

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

และเพิ่ม Acquire::http::Proxy "http://username:password@proxyhost:port/";

ไวยากรณ์ที่แสดงด้านบนควรปฏิบัติตามอย่างเคร่งครัด

การกำหนดค่านี้อาจล้มเหลวหากชื่อผู้ใช้หรือรหัสผ่านของคุณมี '@' อยู่ คุณยังสามารถเพิ่มการกำหนดค่าพร็อกซีสำหรับโปรโตคอลอื่นเช่น FTP

ปรับปรุง: ถ้าชื่อผู้ใช้หรือรหัสผ่านของคุณมี '@' ในนั้นคุณสามารถแทนที่ด้วย 40% ตัวอย่าง: หากรหัสผ่านของคุณใส่มันเป็น@123%40123

สำหรับตัวละครอื่น ๆ ดูการเข้ารหัสเปอร์เซ็นต์


4
ฉันทำสิ่งที่คุณพูด แต่ก็ยังทำให้ฉันมีข้อผิดพลาดเดียวกัน มันไม่ได้แก้ปัญหา
DeLiK

ฉันได้เพิ่มการตั้งค่าพร็อกซีข้างต้น แต่ตอนนี้ฉันได้รับ 404- ไม่พบแทนที่ 407- การตรวจสอบความถูกต้องของพร็อกซี่
Deepak

จะเกิดอะไรขึ้นถ้ารหัสผ่านของฉันมี "@"
akpak

12

ขั้นแรกให้ตั้งค่าพร็อกซีของคุณผ่านตัวช่วยสร้างการใช้งาน Linux ด้วยตัวเลือกด้วยตนเองและใช้การตั้งค่าทั้งระบบเช่นเดียวกับกล่องตัวช่วยสร้างนี้

เพิ่มสภาพแวดล้อมพร็อกซีของคุณ นี่เป็นเพียงการตั้งค่าตัวอย่าง ...
เปิดล็อกอินพร้อมรับคำสั่งและแก้ไขไฟล์ apt.conf:

sudo vi /etc/apt/apt.conf

มีโค้ด 4 บรรทัดที่เริ่มต้นด้วยคำสำคัญของAcquireแล้วแก้ไขแบบนี้:

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

หมายเหตุ
หากรหัสผ่านของคุณมีอักขระพิเศษเช่น @, $,! (เช่นรหัสผ่าน: P @ ssword) จากนั้นแทนที่อักขระพิเศษด้วยรหัสเลขฐานสิบหกของพวกเขาด้วยคำนำหน้า% เช่นนี้:

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

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


ฉันได้เพิ่มการตั้งค่าพร็อกซีข้างต้น แต่ตอนนี้ฉันได้รับ 404- ไม่พบแทนที่ 407- การตรวจสอบความถูกต้องของพร็อกซี่
Deepak

ความแตกต่างระหว่างบรรทัดแรกและบรรทัดที่สี่คืออะไร?
Moataz Elmasry

5

หากคุณอยู่หลังพร็อกซีองค์กรที่ใช้การรับรองความถูกต้อง NTLM คุณสามารถใช้ CNTLM:

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

เปลี่ยนการตั้งค่าเริ่มต้น (โดเมนชื่อผู้ใช้รหัสผ่านและพรอกซี) จากนั้นเริ่มบริการ:

$ sudo /etc/init.d/cntlm restart

ตอนนี้คุณสามารถใช้localhost:3128(พอร์ต CNTLM เริ่มต้น) เป็นพร็อกซีทั้งระบบสำหรับ Ubuntu

ตรวจสอบhttp://cntlm.sourceforge.net/เพื่อหาเอกสาร


6
เพื่อให้ได้sudo apt-get install cntlmงานคุณต้องผ่านพร็อกซีนั้นก่อน
Andrew Savinykh

2

ฉันคิดว่าบทช่วยสอนนี้จะช่วยคุณได้

คลิกที่แท็บเครือข่ายเลือกตัวเลือกกำหนดค่าพร็อกซีด้วยตนเองและป้อนพร็อกซีเซิร์ฟเวอร์ของคุณรายละเอียดพอร์ตหากคุณมีชื่อผู้ใช้รหัสผ่านคลิกที่การรับรองความถูกต้องเพื่อป้อนรายละเอียดเหล่านี้คลิกตกลง

(จากhttp://www.ubuntugeek.com/how-to-configure-ubuntu-desktop-to-use-your-proxy-server.html )

ที่จะเรียกมันสำหรับโปรแกรมทั้งหมดที่เปิดตัวในเปลือกฉันขอแนะนำให้คุณทั้งเพิ่มที่คุณ/etc/bash.bashrcใช้จะใช้มันทั้งระบบสำหรับทุกการประชุมทุบตีหรือใช้พื้นที่ของคุณgksudo gedit /etc/bash.bashrc~/.bashrc

เท่าที่ Synaptic ดำเนินไปในแท็บPreferencesใต้Networkคุณจะสามารถตั้งค่าการรับรองความถูกต้องสำหรับพร็อกซี่ของคุณได้ เรื่องนี้ดูเหมือนจะเฉพาะเจาะจงกับ Synaptic แม้ว่า


ฉันใช้ Ubuntu 11 คุณสามารถช่วยฉันในการเข้าถึง synaptic
user38507

นอกจากนี้ที่ใน bie.bashrc ไม่ต้องเสียบชื่อผู้ใช้และรหัสผ่าน
38507

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

ฉันให้คำสั่ง sudo echo "ส่งออก http_proxy = swastik: ramdayal@192.168.11.107: 8081 " >> /etc/bash.bashrc แม้ตอนนี้ฉันได้รับข้อผิดพลาดเดียวกัน
user38507

2

ทางเลือกที่ดีอีกทางหนึ่งคือการใช้Synaptic Package Managerติดตั้ง Synapticซึ่งคุณสามารถระบุการตั้งค่าพร็อกซีอิสระของระบบและเก็บชื่อผู้ใช้และรหัสผ่าน

การตั้งค่าพร็อกซี

อย่างไรก็ตามสิ่งนี้จะไม่เปลี่ยนพร็อกซีสำหรับ Software Center


2

หากชื่อผู้ใช้ของคุณถูกคั่นด้วยช่องว่างให้ใช้:

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

หากชื่อผู้ใช้ของคุณไม่ได้ถูกคั่นด้วยช่องว่างให้ใช้:

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

'ความแตกต่างคือนอกเหนือจากการเปิดและปิด


2

ใน Ubuntu รุ่นล่าสุดคุณสามารถใช้การตั้งค่าระบบ> เครือข่าย> เครือข่ายพร็อกซีและเมื่อคุณคลิก"apply system wide"จะแก้ไขการตั้งค่าพร็อกซีในสถานที่ต่าง ๆ อย่างน้อยรวมถึง/etc/apt/sources.listไฟล์ HOWEVER ...

ไม่มีกลไกใด ๆ ที่พร้อมท์ให้ตรวจสอบสิทธิ์ ยังไม่ทราบสาเหตุที่ยังไม่มีใครทำส่วนนั้น แต่ด้วยเหตุนี้หากคุณต้องการการรับรองความถูกต้องคุณต้องใส่รหัสผ่านและชื่อผู้ใช้ของคุณในรูปแบบนี้:

username:password@proxy.address

หากรหัสผ่านหรือชื่อผู้ใช้ของคุณมีอักขระพิเศษใด ๆ รวมถึง@หรือ#หรือ!อะไรก็ตามคุณอาจต้องใช้รหัสอักขระ HTML ที่ใช้สำหรับอักขระพิเศษเหล่านั้น ดูหน้านี้สำหรับวิธีที่คุณทำได้: http://www.obkb.com/dcljr/charstxt.html


1

ฉันก็ประสบปัญหาเดียวกัน ถ้าอย่างนั้นฉันก็มารู้เกี่ยวกับ CNTLM ตอนนี้มันใช้งานได้ดีจริงๆ ดูวิธีกำหนดค่า CNTLM ที่นี่


2
ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
Oyibo

ขอขอบคุณ! นี่เป็นคำตอบเดียวที่ช่วยฉันได้จริง คำตอบอื่น ๆ (ที่ฉันรู้แล้ว) กำลังสมมติว่าพร็อกซีกำลังใช้การตรวจสอบสิทธิ์ HTTP พื้นฐานซึ่งไม่ใช่กรณีของฉัน
Alexander Amelkin

1

ฉันได้สร้างสคริปต์ python เพื่อตั้งค่าพร็อกซีใน Ubuntu

สมมติว่าการตั้งค่าต่อไปนี้คุณจะต้องแทนที่ในสถานที่ที่เกี่ยวข้อง

  • proxy_address 172.16.26.214
  • proxy_port 3128
  • proxy_username king
  • proxy_password queen

ฉันได้สร้างวิดีโอที่นำคุณผ่านทุกขั้นตอน:

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

ขั้นตอนมีรายละเอียดที่นี่:

  • คลิกแรกที่ Dash
  • ในช่องค้นหาป้อน "พร็อกซี" (ไม่มีเครื่องหมายคำพูด)
  • คลิกที่ "เครือข่าย" ภายใต้แอปพลิเคชัน
  • เลือก "Network Proxy"
  • เลือกด้วยตนเอง
  • ป้อนที่อยู่พร็อกซีและพอร์ตพร็อกซี
  • ใช้ ป้อนรหัสผ่านระบบของคุณเพื่อยืนยัน

ดาวน์โหลดสคริปต์ setproxy.py

https://pastebin.com/MbBHta8g

สมมติว่าคุณบันทึกsetproxy.pyในDownloadsโฟลเดอร์แล้ว

  • ประเภทอาคารเปิด
  • cd ~ / ดาวน์โหลด

คำสั่งทั่วไป:
sudo python setproxy.py proxy_address proxy_port proxy_username proxy_password
สำหรับตัวอย่างของเรา

  • sudo python setproxy.py 172.16.26.214 3128 king queen

ในกรณีของ proxy แบบง่ายที่ไม่มีการพิสูจน์ตัวตนคำสั่งคือ

  • sudo python setproxy.py 172.16.26.214 3128

ในกรณีที่คุณมีpython 3และข้างต้นทำงานโดยใช้python2.7 คำสั่งจะมีลักษณะ

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

1
การใช้ดรอปบ็อกซ์หรือคัดลอกเพื่อเก็บสคริปต์นั้นแย่มาก คุณควรใช้ GitHub หรือ paste.bin อย่างน้อย
Quan ถึง

0

คุณยังสามารถลองคำสั่งต่อไปนี้

สำหรับการเชื่อมต่อ http - ส่งออก:

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

สำหรับการเชื่อมต่อ https - ส่งออก:

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

และเช่นเดียวกันสำหรับ ftp และการเชื่อมต่ออื่น ๆ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.