如何为wget设置代理?


224

我想wget使用代理下载一些内容:

HTTP Proxy: 127.0.0.1
Port: 8080

代理不需要用户名和密码。

我怎样才能做到这一点?


15
哈基姆-我注意到您没有接受任何答案。这是否意味着它们是错误的,我不应该听从给出的建议?如果是这样,您是否用其他方法解决了问题?
jww 2013年

Answers:


413

对于通过/etc/wgetrc或的系统的所有用户,或者仅对于具有~/.wgetrc文件的用户:

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

或通过-eURL后面的选项:

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

4
我的wget说一定是use_proxy=on这样use_proxy=yes。否则效果很好。
barfuin 2014年

4
已检查。它与wget -e <http_proxy> = 127.0.0.01:8080 < download > ...一起使用,省略了“ use_proxy = yes”命令参数。谢谢!
alejandrob

3
@Thomas Jensen您是正确的wgetrc-manual指出它应该是onoff,但实际上是在尝试一个伪指令:-e use_proxy=bnwgives wget: use_proxy: Invalid boolean ‘bnw’; use 'on' or 'off'.while =yes不会给出这样的错误,因此似乎被非正式地允许。
mxmlnkn

1
http_proxy=http://<user>:<password>@127.0.01:8080同样。否则,你可能同时呼吁wget的(参考-明确地养活这些askubuntu.com/a/429943/350255
parasrish

1
如何关闭它?
Tessaracter

83

在命令行中输入:

$ export http_proxy=http://proxy_host:proxy_port

对于经过身份验证的代理,

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

然后运行

$ wget fileurl

对于https,只需使用https_proxy而不是http_proxy。您也可以将这些行放在〜/ .bashrc文件中,这样就不必每次都执行此操作。


如何删除代理
Tessaracter

1
$ unset http_proxy
shivshnkr '18

38

以下可能的配置位于/etc/wgetrc注释和使用中...

# 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使用环境变量在命令行上可以正常工作:

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"

它对自制也有帮助!
Miao1007

16

在尝试了许多教程以在经过身份验证的代理后面配置我的Ubuntu 16.04 LTS之后,它可以执行以下步骤:

编辑/etc/wgetrc

$ sudo nano /etc/wgetrc

取消注释以下行:

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

更改http://proxy.yoyodyne.com:18023/http://username:password@domain:port/

重要提示:如果仍然不能正常工作,请检查您的密码包含特殊字符,例如#@,...如果是这样的话,他们逃脱(例如,更换passw@rdpassw%40rd)。




5

在Debian Linux中,可以将wget配置为通过环境变量和wgetrc使用代理。在这两种情况下,用于HTTP和HTTPS连接的变量名都是

http_proxy=hostname_or_IP:portNumber
https_proxy=hostname_or_IP:portNumber

请注意,文件/ etc / wgetrc优先于环境变量,因此,如果系统中配置了代理,并且您尝试使用环境变量,则它们似乎无效!


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

要么

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

正如所有其他此处所解释的那样,这些环境变量有助于传递代理。

注意:但是请不要这样,如果密码包含任何特殊字符,则需要将其配置为%<hex_value_of_special_char>

示例:如果密码为pass#123,则需要像pass%23123上面的导出命令一样使用。


2

在Windows中-对于Fiddler说-使用环境变量:

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

2

如果只需要使用代理执行一次wget,最简单的方法是使用单线执行此操作:

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

或使用https目标网址:

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


0

使用tsocks通过socks5代理启动wget :

  1. 安装tsocks: sudo apt install tsocks
  2. 配置tsocks

    # vi /etc/tsocks.conf
    
    server = 127.0.0.1
    server_type = 5
    server_port = 1080
  3. 开始: tsocks wget http://url_to_get
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.