ฉันจะบังคับให้ wget ใช้พร็อกซีเซิร์ฟเวอร์โดยไม่ต้องแก้ไขไฟล์ระบบได้อย่างไร


23

ฉันต้องการทราบว่าเทียบเท่ากับ wget ทำให้ฉันสามารถตั้งค่าพร็อกซีในขณะที่เรียกคำสั่ง (เช่นwget --proxy=$http_proxy)

ความคิดใด ๆ

คำตอบ:


25

โดยไม่ต้องแก้ไขไฟล์ระบบของ/etc/wgetrcคุณคุณสามารถสร้างไฟล์ที่โฮมไดเร็กตอรี่ของคุณ~/.wgetrcได้ มันจะช่วยให้คุณสามารถแก้ไขการตั้งค่า wget ในระดับผู้ใช้ ตอนนี้เขียนต่อไปนี้ที่~/.wgetrcเพื่อใช้ wget หลังพร็อกซีเซิร์ฟเวอร์:

use_proxy = on
http_proxy =  http://username:password@proxy.server.address:port/
https_proxy =  http://username:password@proxy.server.address:port/
ftp_proxy =  http://username:password@proxy.server.address:port/

หากคุณไม่มีชื่อผู้ใช้และรหัสผ่านของพร็อกซี่เพียงเขียนที่อยู่พร็อกซีและพอร์ตทุกหนทุกแห่งเช่น

http_proxy =  http://proxy.server.address:port/

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


38

-eตัวเลือกที่ช่วยให้คุณสามารถที่จะให้คำสั่งในขณะที่ wgetrc ที่บรรทัดคำสั่งเพื่อให้คุณไม่จำเป็นต้องเปลี่ยนไฟล์ ...

wget -e use_proxy=yes -e http_proxy=$proxy http://askubuntu.com

สุกใส คุณได้บันทึกปัญหามากมายแล้วง่าย ๆ เหมือนคำตอบนี้
สัญลักษณ์แทน

ฉันจะปิดได้อย่างไร
Tessaracter

3

คุณจำเป็นต้องแก้ไขไฟล์อยู่ที่wgetrc/etc/wgetrc

ใช้โปรแกรมแก้ไขข้อความที่คุณชื่นชอบเช่น: nano /etc/wgetrcเพื่อแก้ไข

ค้นหาแท็กhttp_proxyและลบ# ที่อยู่ข้างหน้าเพิ่มพร็อกซีเซิร์ฟเวอร์หลังเครื่องหมาย=เช่น:

http_proxy=http://foo.proxy:8080

จากนั้นค้นหาแท็กuse_proxyและลบ#ด้านหน้าแท็กบันทึกไฟล์

wget จะถูกใช้พร็อกซีเซิร์ฟเวอร์ที่ระบุ

หากคุณไม่สามารถเปลี่ยนการกำหนดค่าระบบด้วยผู้ใช้ของคุณคุณสามารถคัดลอกการกำหนดค่าปัจจุบันไปยังสถานที่ที่คุณสามารถแก้ไขได้เช่น: cp /etc/wgetrc ~และใช้--config=~/wgetrcตัวเลือกเพื่อบังคับให้ wget ใช้การตั้งค่าที่คุณเปลี่ยนแปลงแทนการกำหนดค่าทั่วโลก


ฉันตระหนักถึงความเป็นไปได้นี้ แต่ฉันไม่สามารถแก้ไขไฟล์กำหนดค่าได้
fxm

คิดว่านี่เป็นตัวเลือกเดียวที่คุณมีกับ wget
Bruno Pereira

นั่นเป็นเหตุผลที่ฉันกำลังมองหา wget เทียบเท่ากับที่ฉันระบุไว้ในชื่อ
fxm

ฉันได้แก้ไขชื่อเพื่อสะท้อนให้เห็นว่ามันชัดเจนในสถานที่แรกที่คุณพยายามทำ
Bruno Pereira

ตรวจสอบวรรคสุดท้ายของคำตอบ
Bruno Pereira

1

ตัวเลือกที่ไม่ได้กล่าวถึง แต่ควรกล่าวถึง: ใช้ตัวแปรสภาพแวดล้อม (ขึ้นอยู่กับ distro ของคุณ):

http_proxy=http://<proxy-server-ip>:<port>
export http_proxy

หรือเพียงแค่

export http_proxy=http://<proxy-server-ip>:<port>

เหมือนกันสำหรับ:

https_proxy=http://<proxy-server-ip>:<port>
ftp_proxy=http://<proxy-server-ip>:<port>

คุณสามารถใส่ชื่อผู้ใช้และรหัสผ่านหากคุณมีอักขระพิเศษในรหัสผ่านของคุณต้องแน่ใจว่าได้รวม '-s

http_proxy='http://<username>:<password>@<proxy-server-ip>:<port>'

ตัวอย่าง:

export http_proxy=http://172.16.1.100:8080
export https_proxy='http://johndoe:ABC!123@172.16.1.100:8080'

1

จากบรรทัดคำสั่งเท่านั้นฉันพบว่าประสบความสำเร็จก่อนหน้าwgetคำสั่งด้วยhttp_proxyข้อมูลโดยไม่จำเป็นต้องใช้ตัวแปรสภาพแวดล้อม ตัวอย่างเช่น:

'$ http_proxy=<proxy-server-ip>:<port> wget http://www.example.com/'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.