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

sch*_*one 3 linux ftp proxy fedora

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

我可以使用GUI客户端(即Filezilla)使用以下设置连接到FTP Fine:

Proxy Settings
--------------
FTP Proxy : USER@HOST
Proxy Host: proxy.domain.com
Proxy User: blank
Proxy Pass: blank
Run Code Online (Sandbox Code Playgroud)

代理设定

FTP Settings
------------
Host : 200.200.200.200
Port : 21
User : foo
Pass : bar
Run Code Online (Sandbox Code Playgroud)

FTP设置

我似乎无法做的是在基于文本的ftp客户端(例如ftp,lftp等)中复制这些设置。有人可以帮助您设置此脚本吗?

提前致谢!

Mik*_*kel 5

根据docslftp应支持ftp_proxy环境变量,例如

ftp_proxy=ftp://proxy.domain.com lftp -c "cd /upload; put file" ftp://200.200.200.200
Run Code Online (Sandbox Code Playgroud)

如果可行,可以放

export ftp_proxy=ftp://proxy.domain.com
Run Code Online (Sandbox Code Playgroud)

在您的Shell配置文件中,或

set ftp:proxy=ftp://proxy.domain.com
Run Code Online (Sandbox Code Playgroud)

在您的〜/ .lftprc中。

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

上传文件

USER ...@...
PASS ...
PUT ...
Run Code Online (Sandbox Code Playgroud)

并使用运行它-s

lftp -s upload.lftp 200.200.200.200
Run Code Online (Sandbox Code Playgroud)

或者尝试curl -Tdocsncftpputdocs)。

就像是:

FTP_PROXY=ftp://proxy.domain.com curl -T uploadfile -u foo:bar ftp://200.200.200.200/myfile
Run Code Online (Sandbox Code Playgroud)

可能有用。