ftp常用命令

历史文章 专栏收录该内容
58 篇文章 6 订阅

   

       ftp(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议族中的一员。ftp协议包括两个组成部分,其一为ftp服务器,其二为ftp客户端。

       ftp客户端与服务器创建网络连接,请求登录服务器,登录成功后,就可以进行文件传输。

       文件传输的请求由客户端发起,主要包括取文件和发送文件两种操作。

       在linux下,ftp客户端和ftp服务端是操作系统自带的,但不一定缺省安装。

       在windows下,命令提示符下有ftp客户端命令,但很难用,问题很多,也有第三方客户端软件,如FileZilla、 Cuteftp、Ws_ftp、Flashfxp、Leapftp等。windows版的ftp服务端软件要购买,具体不清楚,ServerU。

主动模式和被动模式

1. 通信端口

       利用ftp传输过程中,主要使用到两个端口,一个是控制端口,一个是数据端口,控制端口一般为21,而数据端口不一定是20,这和FTP的应用模式有关,如果是主动模式,就是为20,如果为被动模式,由服务器端和客户端协商而定。

2. 主动模式与被动模式

       FTP具有两种模式,分别是port模式(也叫主动模式)和pasv模式(也叫被动模式),怎么来理解这两种模式呢?

       在主动模式下:客户端给服务器端的21端口发命令说,我要下载什么什么,并且还会说我已经打开了自己的20端口,你就从这里把东西给我吧,服务器收到后就会连接客户端已打开的20端口把东西传给客户端,这就是主动模式,可以理解为服务端主动给客户端传输文件。

       在被动模式下:客户端给服务器端的21端口发命令说,我要下载什么什么,服务器端知道后,就打开一个空闲的高端口,然后告诉客户端,我已经打开了某某端口,你自己进去拿吧,于是客户端就从那个高端口进去拿文件了,这就是被动模式,可以理解为服务端被客户端拿走了东西。

3. 从主动模式到被动模式

       在很久以前没有共享上网这种技术,一个电脑一个ip。但是后来出现了,所以也就有了下面的问题。

       大家都知道,共享上网就是很多台电脑共享一个公网IP去使用internet,再打个比喻吧,某个局域网络出口的公网IP是210.33.25.108,当一个内网用户192.168.1.100去访问外网的FTP服务器时,如果采用主动模式的话,192.168.1.100告诉了FTP服务器我需要某个文件和我打开了20端口之后,由于共享上网的原因,192.168.1.100在出网关的时候自己的IP地址已经被转换成了210.33.25.108这个公网IP,所以服务器端收到的消息也就是210.33.25.108需要某个文件并打开了20端口,FTP服务器就会往210.33.25.108的20端口传数据,这样当然会连接不成功了,因为打开20端口的并不是192.168.1.100这个地址,在这种情况下被动模式就有用了。

       在主动模式中,FTP的两个端口是相对固定的,如果命令端口是n的话,那数据端口就是n-1,也就是说默认情况下,命令端口是21,数据端口就是20,你把命令端口改成了600,那么数据端口就是599。这样使用防火墙就很方便了,只要开通这两个端口就可以了,但是如果客户端是共享上网的话那岂不是不能正常使用FTP了,这样还是不行,一定需要被动模式。

       在被动模式中,默认情况下命令端口是21,但是数据端口是随机的。不过,因为被动模式中数据端口的范围是可以自定义的,因此也可以通过端口范围去配置防火墙。

安装ftp客户端

       #yum -y install ftp

安装ftp服务器

       #yum -y install vsftpd

配置ftp服务器

       Linux操作系统的用户即ftp的用户,也可以配置专用的ftp用户,专用的ftp用户只能用于ftp,不能登录操作系统。

1、防火墙开启 21 端口。

       不同linux版本防火墙的配置有所不同,centos7中的防火墙改成了firewall。

       #firewall-cmd --zone=public --add-port=21/tcp --permanent

       命令含义: 

              --zone               # 作用域 

              --add-port=21/tcp   # 添加端口,格式为:端口/通讯协议 

              --permanent         # 永久生效

       显示success为成功

       如果要采用主动模式,防火墙还要开通20端口。

       #firewall-cmd --zone=public --add-port=20/tcp --permanent

2、配置ftp高端口参数

       # vi /etc/vsftpd/vsftpd.conf

      

       设置被动模式的高端口范围为5500-6000。

3、防火墙开启5500-6000端口

       #firewall-cmd --zone=public --add-port=5500-6000/tcp --permanent

4、关闭 selinux

       #vi /etc/selinux/config

       修改成 selinux=disabled

       执行 setenforce 0 使修改马上生效

      

5、防火墙服务相关操作

       centos7和centos6的服务启停方式也不同,以下是centos7的命令。

       #systemctl restart firewalld.service          # 重启防火墙

       #systemctl stop firewalld.service            # 关闭防火墙

       #systemctl start firewalld.service            # 启动防火墙

       #systemctl status firewalld.service           # 查看防火墙服务状态

       如果防火墙配置不成功,直接关掉它,不用防火墙。

       centos7开机禁用防火墙:systemctl enable firewalld.service

       centos6开机禁用防火墙:chkconfig iptables off

6vsftpd服务相关操作

       #systemctl start vsftpd      # 启动

       #systemctl stop vsftpd      # 停止

       #systectl status vsftpd       # 查看

       #systemctl enable vsftpd    # 开机自动启动vsftpd服务

       #systemctl disable vsftpd    # 禁用vsftpd服务

ftp常用命令

1. 登录ftp服务器

       方法一:输入ftp  ip地址,然后输入用户名和密码,如下图:

      

       方法二:输入ftp,用open连上服务器,再输入用户名和密码,如下图:

      

       方法三:输入ftp -n ip地址,用user命令登录,如下图:

      

       进入ftp服务后输入open加ip地址open 118.89.50.198

       当连接成功后会让你进行身份验证,在输入密码时屏幕上没有任何显示,不用管,直接输完密码敲回车键即可。

2. 查看ftp服务器上的文件

       dir:显示服务器目录和文件列表

       ls:显示服务器目录和文件列表

       cd:进入服务器指定的目录

       lcd:进入本地客户端指定的目录。

       dir命令可以使用通配符“*”和“?”,比如,显示当前目录中所有扩展名为jpg的文件,可使用命令 dir  *.jpg。

       cd命令中必须带目录名。比如 cd /tmp 表示进入/tmp目录

3. 下载文件

       ftp的传输模式分为ASCII码方式和二进制方式两种,二进制方式可以传输任何文件,包括压缩包、可执行程序、图片、视频、音频等,而ASCII码方式只能传输.txt、.htm等ascii码文件。在实际开发中,不管什么文件,都用二进制方式传输文件。

       type:查看当前的传输方式

       ascii:设定传输方式为ASCII码方式

       binary:设定传输方式为二进制方式

       get/recv:下载单个文件get filename [newname](filename为下载的ftp服务器上的文件名,newname为保存在本都计算机上时使用的名字,如果不指定newname,文件将以原名保存。

       get/recv命令下载的文件将保存在本地计算机的工作目录下。该目录是启动ftp客户端时的工作目录目录。如果想修改本地计算机的工作目录,可以使用 lcd 命令。比如:lcd /tmp 表示将工作目录设定/tmp/目录。

       mget:下载多个文件mget filename [filename ....](mget命令支持通配符“*”和“?”,比如:mget  *.jpg 表示下载ftp服务器当前目录下的所有扩展名为jpg的文件。)

       prompt:关闭/打开互交提示。

4. 上传文件

       put/send:上传单个文件put filename [newname]

       filename为上传的本地文件名,newname为上传至ftp服务器上时使用的名字,如果不指定newname,文件将以原名上传。

       mput:上传多个文件mput filename [filename ....]

       mput命令支持通配符“*”和“?”,比如:mput  *.jpg 表示上传客户端服务器当前目录下的所有扩展名为jpg的文件。

       prompt:关闭/打开互交提示。

5. 结束并退出ftp

       bye:结束与服务器的ftp会话并退出ftp环境

6. 其它ftp命令

       pwd:查看ftp服务器上的当前工作目录

       rename filename newfilename:重命名ftp服务器上的文件

       delete filename:删除ftp服务器上一个文件。

       mdelete [remote-files] :删除多个文件。

       mkdir pathname:在服务器上创建目录。

       rmdir pathname:删除服务器上的目录。

       passive:主动模式与被动模式切换。

       nlist:列出服务器目录中的文件名,如:nlist  /home/wucz  /tmp/tmp.list,表示把服务器上/home/wucz目录下的文件列出来,结果输出到本地的/tmp/tmp.list文件中。

       help [cmd]:显示ftp命令的帮助信息,cmd是命令名,如果不带参数,则显示所有ftp命令。

windows登录ftp

       windows的命令提示符下有ftp客户端程序,但是不好用。

       采用资源管理器,输入:ftp://服务器ip,如下图:

      

       在空白的位置点鼠标右键,选择登录菜单,如下图:

      

       输入用户名和密码登录ftp服务器,如下图:

      

       接下来的操作就像windows的目录文件操作一样了。

版权声明

C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。

来源:C语言技术网(www.freecplus.net

作者:码农有道

如果这篇文章对您有帮助,请点赞支持,或在您的博客中转发我的文章,谢谢!!!

如果文章有错别字,或者内容有误,或其他的建议或意见,请您留言指正,非常感谢!!!

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值