Làm cách nào để đặt proxy cho wget?


224

Tôi muốn tải xuống một cái gì đó bằng wgetcách sử dụng proxy:

HTTP Proxy: 127.0.0.1
Port: 8080

Proxy không cần tên người dùng và mật khẩu.

Tôi có thể làm cái này như thế nào?


15
Hakim - Tôi nhận thấy bạn không chấp nhận bất kỳ câu trả lời nào. Điều đó có nghĩa là họ sai và tôi không nên làm theo lời khuyên? Nếu vậy, bạn đã giải quyết vấn đề với cái gì khác?
jww

Câu trả lời:


413

Đối với tất cả người dùng của hệ thống thông qua /etc/wgetrchoặc cho người dùng chỉ với ~/.wgetrctệp:

use_proxy=yes
http_proxy=127.0.0.1:8080
https_proxy=127.0.0.1:8080

hoặc thông qua -ecác tùy chọn được đặt sau URL:

wget ... -e use_proxy=yes -e http_proxy=127.0.0.1:8080 ...

4
Wget của tôi nói rằng nó phải use_proxy=on, không phải use_proxy=yes. Hoạt động tốt khác.
barfuin

4
Đã kiểm tra. Nó hoạt động với wget -e <http_proxy> = 127.0.0.01: 8080 < download > ..., bỏ qua tham số lệnh "use_proxy = yes". Cảm ơn!
alejandrob

3
@Thomas Jensen Bạn nói đúng các hướng dẫn sử dụng wgetrc rằng nó nên onhoặc off, nhưng thực sự đang thử một lệnh không có thật: -e use_proxy=bnwđưa ra wget: use_proxy: Invalid boolean ‘bnw’; use 'on' or 'off'.trong khi =yeskhông có lỗi như vậy, vì vậy nó dường như được cho phép không chính thức.
mxmlnkn

1
http_proxy=http://<user>:<password>@127.0.01:8080Và tương tự. nếu không, bạn có thể phải cho chúng ăn một cách rõ ràng trong khi gọi wget (tham khảo - askubfox.com/a/429943/350255 )
ký sinh vào

1
Làm thế nào để tôi tắt nó?
Tessaracter

83

Nhập dòng lệnh:

$ export http_proxy=http://proxy_host:proxy_port

cho proxy xác thực

$ export http_proxy=http://username:password@proxy_host:proxy_port

và sau đó chạy

$ wget fileurl

đối với https, chỉ cần sử dụng https_proxy thay vì http_proxy. Bạn cũng có thể đặt các dòng này trong tệp ~ / .bashrc để không cần phải thực hiện điều này mọi lúc.


Cách xóa proxy
Tessaracter 26/07/18

1
$ unset http_proxy
shivshnkr

38

các cấu hình có thể có sau đây được đặt trong /etc/wgetrcuncomment và sử dụng ...

# You can set the default proxies for Wget to use for http, https, and ftp.
# They will override the value in the environment.
#https_proxy = http://proxy.yoyodyne.com:18023/
#http_proxy = http://proxy.yoyodyne.com:18023/
#ftp_proxy = http://proxy.yoyodyne.com:18023/

# If you do not want to use proxy at all, set this to off.
#use_proxy = on

19

wget sử dụng các biến môi trường một số thứ như thế này tại dòng lệnh có thể hoạt động:

export http_proxy=http://your_ip_proxy:port/
export https_proxy=$http_proxy
export ftp_proxy=$http_proxy
export dns_proxy=$http_proxy
export rsync_proxy=$http_proxy
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"

Nó cũng giúp về homebrew!
Miao1007

16

Sau khi thử nhiều hướng dẫn để định cấu hình Ubuntu 16.04 LTS của tôi đằng sau một proxy được xác thực, nó đã hoạt động với các bước sau:

Chỉnh sửa /etc/wgetrc:

$ sudo nano /etc/wgetrc

Bỏ ghi chú những dòng này:

#https_proxy = http://proxy.yoyodyne.com:18023/
#http_proxy = http://proxy.yoyodyne.com:18023/
#ftp_proxy = http://proxy.yoyodyne.com:18023/
#use_proxy = on

Thay đổi http://proxy.yoyodyne.com:18023/thànhhttp://username:password@domain:port/

QUAN TRỌNG: Nếu nó vẫn không làm việc, kiểm tra nếu mật khẩu của bạn có ký tự đặc biệt, chẳng hạn như #, @, ... Nếu đây là trường hợp, thoát khỏi chúng (ví dụ, thay thế passw@rdbằng passw%40rd).




5

Trong Debian Linux, wget có thể được cấu hình để sử dụng proxy cả thông qua các biến môi trường và qua wgetrc. Trong cả hai trường hợp, tên biến được sử dụng cho kết nối HTTP và HTTPS là

http_proxy=hostname_or_IP:portNumber
https_proxy=hostname_or_IP:portNumber

Lưu ý rằng tệp / etc / wgetrc được ưu tiên hơn các biến môi trường, do đó nếu hệ thống của bạn có proxy được cấu hình ở đó và bạn cố gắng sử dụng các biến môi trường, chúng dường như không có tác dụng!


3
export http_proxy=http://proxy_host:proxy_port/
export https_proxy=https://proxy_host:proxy_port/

hoặc là

export http_proxy=http://username:password@proxy_host:proxy_port/
export https_proxy=https://username:password@proxy_host:proxy_port/

Như tất cả những người khác đã giải thích ở đây, các biến môi trường này giúp truyền các proxy.

Lưu ý: Nhưng xin lưu ý rằng nếu mật khẩu chứa bất kỳ ký tự đặc biệt nào thì cần phải được cấu hình là %<hex_value_of_special_char>.

Ví dụ: Nếu mật khẩu là pass#123, cần phải được sử dụng như pass%23123trong các lệnh xuất ở trên.


2

Trong Windows - đối với Fiddler nói - sử dụng các biến môi trường:

set http_proxy=http://127.0.0.1:8888
set https_proxy=http://127.0.0.1:8888

2

Nếu bạn cần thực thi wget chỉ một lần với proxy, cách dễ nhất là thực hiện với một lớp lót như thế này:

http_proxy=http://username:password@proxy_host:proxy_port wget http://fileurl

hoặc với URL mục tiêu https:

https_proxy=http://username:password@proxy_host:proxy_port wget https://fileurl


0

bắt đầu wget qua SOCKS5 proxy sử dụng tsocks :

  1. cài đặt tsocks: sudo apt install tsocks
  2. cấu hình tsocks

    # vi /etc/tsocks.conf
    
    server = 127.0.0.1
    server_type = 5
    server_port = 1080
  3. khởi đầu: tsocks wget http://url_to_get
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.