首页 > 其他分享 >ftp常用命令

ftp常用命令

时间:2022-11-22 23:10:25浏览次数:53  
标签:ftp 被动模式 文件 端口 常用命令 服务器 客户端


   

       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

      

ftp常用命令_ftp常用命令

       设置被动模式的高端口范围为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 使修改马上生效

      

ftp常用命令_ftp配置_02

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

6、vsftpd服务相关操作

       #systemctl start vsftpd      # 启动

       #systemctl stop vsftpd      # 停止

       #systectl status vsftpd       # 查看

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

       #systemctl disable vsftpd    # 禁用vsftpd服务

ftp常用命令

1. 登录ftp服务器

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

      

ftp常用命令_ftp配置_03

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

      

ftp常用命令_ftp协议_04

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

      

ftp常用命令_ftp常用命令_05

       进入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常用命令_ftp协议_06

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

      

ftp常用命令_客户端_07

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

      

ftp常用命令_客户端_08

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

版权声明

作者:码农有道

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

标签:ftp,被动模式,文件,端口,常用命令,服务器,客户端
From: https://blog.51cto.com/u_13748800/5878685

相关文章

  • Redis 常用命令
    1.登入dockerexec-itredisredis-cliauth密码dockerexec-it redis redis-cli-a密码2.选择数据库(16个,需要需要选择一个)select24.操作返回类型......
  • Docker常用命令
    Docker常用命令1、帮助启动类命令启动docker:systemctlstartdocker停止docker:systemctlstopdocker重启docker:systemctlrestartdocker查看docker状态:systemctlsta......
  • CentOS7没有ftp命令的解决方法
    文章目录​​1、找到ftp命令所在的软件包​​​​2、安装ftp软件包​​​​3、验证​​​​4、获取视频教程​​​​5、文章版权​​在CentOS中,输入ftp命令,提示commandnot......
  • Linux常用命令之cd与pwd(中秋福利:奉上一只追赶鼠标的小猫咪的命令)
    cd命令cd:changedirectory的简写,其功能是更改当前的工作目录,也是用户最为常用的命令之一注意:Linux所有目录和文件名都是大小写敏感的命令含义cd切换到当前用户的主目录......
  • Linux常用命令之ls
    这篇文章主要介绍ls(list)的主要用法.ls命令说明:以.开头的文件为隐藏文件,需要-a参数才能显示.代表当前目录..代表上一级目录参数含义-a显示指定目录下所有子目录和文件,......
  • Linux常用命令介绍
    接下来依次展开学习内容,因为博客就是我每天学习的东西的总结,目前还没有创新性的东西,但是我会不断挖掘创新的点子.非常常用的七个命令:序号命令对应英文作用01lslist查看......
  • linux常用命令
    文件解压#压缩tar-czvftinyproxy.tar.gztinyproxy/#解压tar-zxvftinyproxy.tar.gz/usr/local/tinyproxy/软链接#ln-s文件或目录软链接的名称ln-s/va......
  • ftpClient.makeDirectory(path) 一直返回false
    ftpClient.makeDirectory(path)切换路径一直返回false由于使用的是普通账号登录,所以一开始就设置chroot_local_user=YES,将用户禁锢在了宿主目录。解决方法:将vsftpd.con......
  • Djnago常用命令
    创建新项目 django-adminstartproject[项目名称]创建新应用pythonmanage.pystartapp[app名称]django-adminstartapp[APP名称]检测模型变化,生成新的数......
  • docker简介、部署及常用命令。
    百度网盘链接:https://pan.baidu.com/s/15t_TSH5RRpCFXV-93JHpNw?pwd=8od3 提取码:8od31docker简介1.1docker是什么?Docker是一个开源项目,诞生于2013年初,最初是dot......