2017-02-09 86 views
1

我目前陷入了一个问题,我认为如果我使用代理,wget会尝试通过http而不是ftp连接到服务器。因为我不能发布完整的设置,我会后的行为我看到的例子:通过代理使用wget访问ftp

访问FTP服务器不使用代理服务器使用该命令的作用:

wget -r --user=username --password=mypassord ftp://ftp.myadress.com/ 

按预期工作。

访问FTP服务器

wget -r --ftp-user=username --ftp-password=mypassord ftp://ftp.myadress.com/ 

工作过。

访问与代理服务器和

wget -r --ftp-user=username --ftp-password=mypassord ftp://ftp.myadress.com/ 

导致

401 Unauthorized 

错误。

使用

wget -r --user=username --password=mypassord ftp://ftp.myadress.com/ 

导致要创建一个index.html。不幸的是,ftp服务器在文件夹中没有任何index.html文件。通过代理通过代理访问文件的完整路径

wget --user=username --password=mypassord ftp://ftp.myadress.com/test/test.txt 

按预期下载文件。

通过相同的代理服务器,它与命令的每个文件夹中的一个index.html访问不同的FTP服务器:

wget -r --user=username2 --password=mypassord2 ftp://ftp.myadress2.com/ 

工作正常。

那么我如何强制wget通过代理使用ftp协议?

在此先感谢

+0

更新:它似乎代理不能将它从FTP服务器retrives到一个index.html的.listing。因此,它创建了一个index.html,它只与父目录有关。我可以用curl重现这种行为,所以我认为这是一个代理问题。 – Thorsten

回答

0

您是否尝试过把代理设置成.wgetrc文件呢? 它应该包含类似的东西:

use_proxy=yes http_proxy=127.0.0.1:8080

+0

代理服务器始终在.wgetrc中使用。如上所述,我确信代理本身正在工作,因为如果我指定了完整路径,我可以下载文件,或者如果ftp服务器在index.html文件中包含文件列表,那么就是recrusive。 – Thorsten

+0

你是否也在.wgetrc文件中提到了FTP代理,例如'ftp_proxy = 127.0.0.1:8080'? – SaWo