ในสำนักงานของฉันฉันต้องการอัปเดตและดาวน์โหลดผ่าน (wget) และที่นี่พวกเขาใช้พร็อกซีหรือไม่
ฉันจะทำสิ่งนี้ผ่าน commandline ได้อย่างไร
ในสำนักงานของฉันฉันต้องการอัปเดตและดาวน์โหลดผ่าน (wget) และที่นี่พวกเขาใช้พร็อกซีหรือไม่
ฉันจะทำสิ่งนี้ผ่าน commandline ได้อย่างไร
คำตอบ:
ในบางรุ่น sudo มีการกำหนดค่าในลักษณะที่ตัวแปรสภาพแวดล้อมทั้งหมดล้างทั้งหมดเมื่อใช้คำสั่ง หากต้องการเก็บค่าhttp_proxyของคุณไว้และแก้ไขสิ่งนี้คุณต้องแก้ไข / etc / sudoers แล้วรัน:
visudo
จากนั้นหาบรรทัดที่ระบุ:
Defaults env_reset
และเพิ่มหลังจากนั้น:
Defaults env_keep = "http_proxy ftp_proxy"
สิ่งต่าง ๆ จะเริ่มทำงานตามที่คาดไว้
ขอบคุณkdogksuในฟอรัม Ubuntu สำหรับการค้นหาวิธีแก้ปัญหานี้
เพื่อไม่เพียงแก้ไข apt-get แต่ยังรวมถึงกราฟิก X11 utils เช่น synaptic, mintintall, ... ) บรรทัดต่อไปนี้/etc/sudoers
ควรทำงาน:
Defaults env_keep = "http_proxy https_proxy ftp_proxy DISPLAY XAUTHORITY"
ใช้สิ่งนี้
ubuntu@ubuntu:~$ cat /etc/apt/apt.conf
Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";
นี่คือสิ่งที่ฉันใช้ ทำงานได้อย่างสมบูรณ์แบบ
Apt ยังอนุญาตให้วางการตั้งค่าส่วนบุคคลไว้ในไฟล์ด้านล่าง/etc/apt/apt.conf.d/
ดังนั้นสิ่งนี้จึงมีผลเหมือนกับที่กล่าวมาข้างต้น แต่อาจรักษาได้ง่ายกว่าหากคุณมีสายอื่น ๆ ใน.conf
ไฟล์:
ubuntu@ubuntu:~$ cat /etc/apt/apt.conf.d/05proxy
Acquire::http::Proxy "http://Username:Password@proxy.foo.bar.edu.au:8080";
apt.conf
การ
/etc/apt/apt.conf
หรือใช้วางไฟล์ปรับแต่งใน/etc/apt/apt.conf.d
.... ใช้ได้ทั้งสองอย่าง! :-)
E: Syntax error /etc/apt/apt.conf:2: Extra junk at end of file
สิ่งที่ทำงานให้ฉันคือ:
sudo http_proxy=http://yourserver apt-get update
ซึ่งเป็นเรื่องแปลกเพราะเพียงส่งออก http_proxy แล้วเรียกใช้ sudo echo $ http_proxy พิมพ์ออกมาอย่างเชื่อฟังค่าส่งออก
$http_proxy
ได้รับการขยายก่อนที่ sudo แม้กระทั่งวิ่ง
export http_proxy=http://proxyusername:proxypassword@proxyaddress:proxyport
sudo apt-get update
การส่งออกไม่จำเป็นต้องมีsudo
ไอเอ็นจีและหากพร็อกซีของคุณไม่ระบุชื่อเพียงคลองproxyusername:proxypassword@
ส่วน
wget
หรือไม่?
หากเป็นการกำหนดค่าชั่วคราวคุณสามารถลองนี้: sudo bash -c 'http_proxy = "http: // <proxy_host>: <proxy_port> /" apt-get update'
คุณต้องการสิ่งนี้เนื่องจากจำเป็นต้องกำหนดตัวแปรสภาพแวดล้อมสำหรับบัญชี "root" การทำและส่งออกก่อนไม่ควรทำงาน
สำหรับการกำหนดค่าถาวรคุณจะต้องแก้ไขไฟล์ระบบ คำอธิบายนี้ได้อธิบายไว้แล้วในคำตอบต่อไปนี้เกี่ยวกับวิธีตรวจสอบเครือข่ายพร็อกซีที่ใช้จริง ๆ .
อูบุนตูเป็นศัตรูต่อการพิสูจน์ตัวตนของผู้รับมอบฉันทะอย่างไม่น่าเชื่อ ฉันใช้แล็ปท็อป Ubuntu ในที่ทำงานและจำนวนของการแตกก็ไม่น่าเชื่อ
Synaptic, Apt, Firefox, Chromium และอื่น ๆ ทั้งหมดใช้วิธีการที่แตกต่างกันสำหรับการระบุพร็อกซีและไม่มีที่ไหนที่จะระบุข้อมูลรับรองอย่างปลอดภัย
ข้อบกพร่องบางอย่างในเรื่อง: https://bugs.edge.launchpad.net/ubuntu/+source/msttcorefonts/+bug/220070
https://bugs.edge.launchpad.net/ubuntu/+source/apt-cacher/+bug/198138
https://bugs.edge.launchpad.net/ubuntu/+source/apt/+bug/433827
https://bugs.edge.launchpad.net/ubuntu/+source/b43-fwcutter/+bug/683630
ข้อเสนอแนะของ Oli ในการใช้การส่งออกเป็นวิธีเดียวที่จะทำได้อย่างปลอดภัย บางครั้งอาจเป็นไปได้ที่จะสนับสนุนพร็อกซี "fudge" หากพร็อกซีเซิร์ฟเวอร์ใช้การตรวจสอบความถูกต้องรองเพื่อลดการโหลดบนเซิร์ฟเวอร์การตรวจสอบความถูกต้องหลัก (อาจเป็น Active Directory) นี่คือที่ที่การเชื่อมต่อพร็อกซีแรกได้รับการรับรองความถูกต้องโดยพร็อกซีกับ AD จากนั้นสำหรับช่วงเวลาที่กำหนด (โดยปกติ 5 นาที) การเชื่อมต่ออื่น ๆ ทั้งหมดจะ "เชื่อถือ" เพื่อเป็นผู้ใช้นั้น ดังนั้นคุณสามารถเปิด firefox ท่องอินเทอร์เน็ต (ที่ใดก็ได้) จากนั้นลองใช้ยูทิลิตี้ของคุณ (wget, synaptic, อะไรก็ตาม) โดยระบุ proxy แต่ปล่อยให้ชื่อผู้ใช้ว่างเปล่า
โดยทั่วไปแล้ว Ubuntu เป็นศัตรูกับสภาพแวดล้อมขององค์กรเพียงเพราะช่วยให้อ่านรหัสผ่านได้ง่าย Seahorse เป็นตัวการสำคัญ แต่ตัวจัดการเครือข่ายก็ตกตะลึง - เชื่อมต่อกับเครือข่ายรับรองความถูกต้อง PEAP ใด ๆ และคุณเพิ่งเก็บรหัสผ่านไว้ในแอปเพล็ตเพื่อให้ทุกคนได้เห็นว่าใครจะยืมแล็ปท็อปของคุณ เห็นได้ชัดว่าการใช้แล็ปท็อปร่วมกันนั้นถือว่าเป็นสิ่งศักดิ์สิทธิ์ในดินแดนลินุกซ์ หลังจากนั้นฉันไม่มีหัวใจที่จะติดต่อ devs ผู้จัดการเครือข่าย
คุณลองแก้ไข/etc/apt/apt.conf
ไหม ฉันใช้สิ่งนี้เพื่อใช้ฉลาดหลัง บริษัท ของเรา
Acquire::http::proxy "http://user:password@host:port/";
ฉันเชื่อว่า apt ใช้ค่านี้ยกเว้นว่ามีการกำหนด $ http_proxy ในสภาพแวดล้อมเชลล์ของคุณ (เช่น $ http_proxy มีความสำคัญกว่า)
apt.conf
ยังควรใช้ apt-config dump
คุณสามารถดูการกำหนดค่าการตั้งค่าที่ฉลาดคิดว่ามันมีการตั้งค่าโดยใช้
หากคุณต้องการเรียกใช้“ sudo apt-get update” ผ่านพร็อกซีใน commandline ใช้คำสั่งด้านล่าง
sudo apt-get -o Acquire::http::proxy="http://user:password@host:port/" update;