天天看点

FTP网络主机间文件传输指令简介使用方法使用FTP指令远程下载文件遇到的问题

FTP网络主机间文件传输指令

  • 简介
  • 使用方法
    • 指令
      • 登录ftp服务器
      • 进入ftp协议后的常用Linux指令均可正常使用
      • dir指令
      • 指定文件传输类型
      • get
      • mget
      • put
      • 关闭与ftp登录后建立的连接
        • 保留ftp协议,仅与当前下载文件的服务器关闭FTP会话,可继续使用ftp协议与其他文件服务器建立FTP对话
        • 结束与服务器的FTP会话并退出FTP环境
        • 待补
    • 示例
  • 使用FTP指令远程下载文件遇到的问题
    • 提示`Consider using PASV`
      • FTP中的两种模式

简介

使用方法

在本地主机(Windows系统)中使用指令从远程主机(Linux系统)下载文件到本地,如下所示。

注意事项有二:

  • 若本地主机(Windows系统)与远程主机(Linux系统)所处两个局域网,则需使用VNP先保证两个局域网间网络畅通。
  • 要是用

    cd

    lcd

    来调整当前ftp当前路径和远程(另一端)路径。待进行ftp文件传输两端的位置

    cd

    lcd

    完成后,再进行

    mget

指令

以此官方文档为标准,建议大家直接看此文档。

登录ftp服务器

想要【远程服务器下载或向远程服务器上传】文件,需要先登录已安装有ftp服务的远程服务器。

C:\Users\Administrator>ftp 198.126.1.1 //ftp建立连接
Connected to 198.126.1.1
220 (vsFTPd 3.0.3)
User (198.126.1.1:(none)): ljh //输入要登录的该远程主机的用户账号
331 Please specify the password.
Password:					   //输入要登录的该远程主机的用户密码
230 Login successful.		   //提示登录成功
ftp>						   //进入ftp协议
           

进入ftp协议后的常用Linux指令均可正常使用

比如跳转路径、查看当前路径下的文件等等,如下所示。

ftp> cd /XXX/test/			   //在远程主机中跳转目录到要下载的文件所在路径下,有博客提到“一般情况下用户都会被限制目录的访问权限,只可在当前目录下进行操作”
250 Directory successfully changed.
ftp> ls						   //查看远程主机当前路径下的文件列表
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
abc.xml						   //远程主机当前路径下的文件有“abc.xml”
226 Directory send OK.
ftp: 74 bytes received in 0.00Seconds 74.00Kbytes/sec.
           

dir指令

ftp>!dir					   //查看当前使用ftp协议的另一端所处位置下的目录和文件列表,实质是检查要传输的文件是否从远程主机传到了另一端(本地),还可以检查传输的文件是否下载到了此处。
           

指定文件传输类型

将文件传送类型设置为二进制。用于传送文件?

ftp>binary

           

get

有博客提到是用于下载单个文件,待确认。

get 要从远程服务器下载的文件名 下载到本地之后的文件名(此参数若空,则下载到本地之后的文件名取原名)
           

mget

有博客提到是用于批量下载多个文件,待确认。

mget 要从远程服务器下载的第一个文件名 要从远程服务器下载的第二个文件名 //以此类推,将所有需要下载的文件名列在此处,批量下载即可
           

put

put 要上传的文件名
           

关闭与ftp登录后建立的连接

保留ftp协议,仅与当前下载文件的服务器关闭FTP会话,可继续使用ftp协议与其他文件服务器建立FTP对话

ftp> close //保留ftp协议,但结束与当前下载文件的服务器的FTP会话
ftp>
           

结束与服务器的FTP会话并退出FTP环境

ftp> quit
C:\Users\Administrator>		   //回到了本机位置,如下行所示
           

待补

ftp> bye : 退出ftp会话过程
           

示例

随后,在本地主机(Windows系统)打开命令提示行,如下指令即可。

C:\Users\Administrator>ftp 198.126.1.1 //ftp建立连接
Connected to 198.126.1.1
220 (vsFTPd 3.0.3)
User (198.126.1.1:(none)): ljh //输入登录该远程主机的用户账号
331 Please specify the password.
Password:					   //输入登录该远程主机的用户密码
230 Login successful.		   //提示登录成功
ftp> cd /XXX/test/			   //在远程主机中跳转目录到要下载的文件所在路径下,有博客提到“一般情况下用户都会被限制目录的访问权限,只可在当前目录下进行操作”
250 Directory successfully changed.
ftp> ls						   //查看远程主机当前路径下的文件列表
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
abc.xml						   //远程主机当前路径下的文件有“abc.xml”
226 Directory send OK.
ftp: 74 bytes received in 0.00Seconds 74.00Kbytes/sec.
ftp> lcd C:\Users\peter\	   //在当前使用ftp协议的另一端(本地,非远程主机)进行cd操作,实质是设置ftp下载文件到本地的路径目录,
ftp> mget  文件全名*.xml			   //【将“cd到的路径下的符合该命名规范的文件”下载到“lcd到的另一端的当前路径”下,好像不对= =】。文件名称为“文件全名”的文件,虽然加了“*”,其实是为了防止不同操作系统间文件名称编码的问题。若此方法还是不行,直接使用mget *.xml全下载。
200 Switching to ASCII mode.
mget lvdsDma_20220718_112036.dat? Y	//输入“Y”或“y”确认下载该文件;输入“N”或“n”取消下载该文件
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for abc.xml (3210788 bytes).
226 Transfer complete.		   //下载完成,Windows系统作为接收方时,文件默认下载到了C:\Users\Administrator(当前登录账户)\
ftp: 321074688 bytes received in 153.15Seconds 2096.51Kbytes/sec.
ftp>!dir					   //查看当前使用ftp协议的另一端所处位置下的目录和文件列表,实质是检查要传输的文件是否从远程主机传到了另一端(本地),还可以检查传输的文件是否下载到了此处。
ftp>close                      //保留ftp协议,但结束与当前下载文件的服务器的FTP会话
ftp>quit					   //退出ftp协议,回到本地位置,如下行所示
C:\Users\Administrator>		   //回到了本地位置,如下行所示
           

使用FTP指令远程下载文件遇到的问题

提示

Consider using PASV

指令切换使用PASV模式:``。

FTP中的两种模式

  • PORT

    :即

    standard

    标准模式,主动模式。【需要在接上TCP 21端口后,服务器通过自己的TCP 20来发出数据。并且需要建立一个新的连接来传送档案。而PORT的命令包含一些客户端没用的资料,所以有了PASv的出现。——其意思类似于使用了TCP协议,使用固定端口建立持久连接?】
  • PASV

    :Passive的简写,被动模式。PASV模式就拥有PORT模式的优点及去掉一些PORT的缺点。PASV运行方式就是当服务器接收到PASV命令时,就会自动从端口1024到5000中随机选择,而且还会使用同一个端口来传送数据,不用建立新的连接。

    两种模式详见

继续阅读