Làm cách nào để buộc wget sử dụng máy chủ proxy mà không sửa đổi tệp hệ thống?


23

Tôi muốn biết một tương đương với wget cho phép tôi đặt proxy trong khi gọi lệnh (như wget --proxy=$http_proxy).

Có ý kiến ​​gì không?

Câu trả lời:


25

Nếu không sửa đổi các tệp hệ thống của /etc/wgetrcbạn, bạn có thể tạo một tệp tại thư mục chính của bạn ~/.wgetrc. Nó sẽ cho phép bạn sửa đổi cài đặt wget cục bộ ở cấp độ người dùng. Bây giờ hãy viết như sau ~/.wgetrcđể sử dụng wget đằng sau máy chủ proxy:

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/

Nếu bạn không có tên người dùng và mật khẩu proxy, chỉ cần viết địa chỉ proxy và cổng ở mọi nơi như,

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

Điều này nên làm việc. Tôi giả sử bạn đã có cài đặt proxy cho tất cả các ứng dụng khác.


38

Các -etùy chọn cho phép bạn để cung cấp các lệnh như trong wgetrc tại dòng lệnh, do đó bạn không cần phải thay đổi một tập tin ...

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

Rực rỡ. Bạn đã cứu được rất nhiều rắc rối, đơn giản vì câu trả lời này là.
tự đại diện

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

3

Bạn cần chỉnh sửa wgetrctập tin nằm ở /etc/wgetrc.

Sử dụng trình soạn thảo văn bản yêu thích của bạn, tức là: nano /etc/wgetrcđể chỉnh sửa nó

Tìm kiếm thẻ http_proxy và xóa # ở phía trước thẻ, thêm máy chủ proxy sau dấu = , nghĩa là:

http_proxy=http://foo.proxy:8080

Sau đó tìm kiếm thẻ use_proxy và xóa # ở phía trước của nó, lưu tệp.

wget sau đó sẽ sử dụng máy chủ proxy được chỉ định.

Nếu bạn không thể thay đổi cấu hình hệ thống với người dùng của mình, bạn có thể sao chép cấu hình hiện tại vào nơi bạn có thể chỉnh sửa cấu hình đó, tức là: cp /etc/wgetrc ~và sử dụng --config=~/wgetrctùy chọn để buộc wget sử dụng cấu hình bạn đã thay đổi thay vì cấu hình chung.


Tôi biết khả năng này, nhưng tôi không thể sửa đổi tập tin cấu hình.
fxm

Hãy nghĩ rằng đây là lựa chọn duy nhất bạn có với wget.
Bruno Pereira

Đó là lý do tại sao tôi đang tìm kiếm một tương đương với wget như tôi đã chỉ ra trong tiêu đề.
fxm

Tôi đã chỉnh sửa tiêu đề để phản ánh điều đó, rõ ràng ở nơi đầu tiên bạn đang cố gắng làm gì.
Bruno Pereira

Kiểm tra đoạn cuối của câu trả lời.
Bruno Pereira

1

Tùy chọn không được đề cập, nhưng nên được đề cập: Sử dụng các biến môi trường (tùy thuộc vào bản phân phối của bạn):

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

hoặc đơn giản

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

Giống với:

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

Bạn có thể bao gồm tên người dùng và mật khẩu, nếu bạn có các ký tự đặc biệt trong mật khẩu của mình, hãy chắc chắn bao gồm '-s.

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

Ví dụ:

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

1

Từ dòng lệnh chỉ tôi đã tìm thấy thành công trước wgetlệnh với http_proxythông tin mà không cần sử dụng các biến môi trường. Ví dụ:

'$ http_proxy=<proxy-server-ip>:<port> wget http://www.example.com/'
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.