基于文本的FTP客户端设置代理

问题描述:

我需要创建一个bash脚本,它将连接到FTP服务器,上传文件并关闭连接。通常这将是一件容易的事,但我需要指定一些特定的代理设置,这使得它变得困难。基于文本的FTP客户端设置代理

我可以使用GUI客户端即FileZilla中使用以下设置连接到FTP罚款:

Proxy Settings 
-------------- 
FTP Proxy : [email protected] 
Proxy Host: proxy.domain.com 
Proxy User: blank 
Proxy Pass: blank 

Proxy Settings

FTP Settings 
------------ 
Host : 200.200.200.200 
Port : 21 
User : foo 
Pass : bar 

FTP Settings

我似乎什么不能做是复制这些设置在基于文本的ftp客户端即ftp,lftp等任何人都可以帮助设置此脚本?

在此先感谢!

根据docs,lftp应该支持ftp_proxy环境变量,例如,

ftp_proxy=ftp://proxy.domain.com lftp -c "cd /upload; put file" ftp://200.200.200.200 

如果这样的作品,你可以把

export ftp_proxy=ftp://proxy.domain.com 
在你的shell配置文件

,或者

set ftp:proxy=ftp://proxy.domain.com 

你的〜/ .lftprc。

或者,尝试运行您的GUI FTP客户端正在运行的命令,例如,

upload.lftp

USER [email protected] 
PASS ... 
PUT ... 

而且使用-s运行:

lftp -s upload.lftp 200.200.200.200 

或者尝试curl -Tdocsncftpputdocs)。

喜欢的东西:

FTP_PROXY=ftp://proxy.domain.com curl -T uploadfile -u foo:bar ftp://200.200.200.200/myfile 

可能会奏效。

+0

Mikel:试过两种方法没有任何运气,他们只是超时。我希望添加一些截图然后可以帮助? – schone 2011-03-17 02:35:10

+0

@schone:啊,看起来它使用的是FTP代理,而不是HTTP代理。你可以尝试使用'ftp_proxy = ftp://proxy.domain.com lftp ...'? – Mikel 2011-03-17 03:07:29

+0

Brillant!有用!我做了如下: $ export ftp_proxy = proxy.domain.com $ lftp user:[email protected] :)谢谢! – schone 2011-03-17 03:38:26