文件服务之ftp

一.什么是ftp?

简介:ftp是(文件传输协议),是tcp/ip协议族中,应用层的一个协议。

功能:提供客户机和服务器之间下载和上传文件。

         服务器<---------------->客户机
        文件从服务器传到客户机------下载
         客户机把文件传到服务器-----上传

程序:ftp对应的应用程序(软件包)vsftp

端口在tcp传输层,用来标记程序,表示什么程序对外提供服务
控制端口:21(验证用户名和密码的输入)
数据端口:20(传数据)

二.ftp服务实战应用

  • 下载功能

服务端:192.168.1.158

客户端:192.168.1.168

目的:实现客户端和服务端的文件传输。服务端提供文件服务,让客户可以在服务器上下载文件,同时又可以把文件上传到服务器。

服务端操作:

1.安装ftp对应的软件包vsftpd

yum install vsftpd -y

 2.创建要分发的文件资源(可以让客户端去下载,可以是文件,图片,视频等)

#:/var/ftp/   是ftp服务的主目录,客户端在此目录下载文件资源,这是对匿名用户的,如果是用不登录就去用户家目录下下载。

touch  /var/ftp/abc.txt

注意:pub是安装ftp自己创建的目录,如果服务器上的文件太多就放到此目录下 

 3.重启ftp服务器

systemctl start vsftpd
systemctl enable vsftpd        #:开机自启 


4.关闭防火墙和selinux
systemctl  stop firewalld
getenforce  #:查看selinux状态
setenforce 0   #:临时关闭selinux
vim /etc/selinux/config   #:永久关闭
修改内容:SELINUX=diabled

 客户端操作:

安装lftp工具(可以在ftp服务器进行下载和上传)

yum install lftp -y

已经安装过,没有就自行安装 

 客户端下载文件

1.在一个Centos机器用lftp去服务器下载:

[root@localhost ~]# lftp 192.168.1.158          #:lftp 服务器ip,去ftp的主目录下载文件。
lftp 192.168.1.158:~> ls                                   #:进入一个交互模式,ls可以看到主目录下的内容
-rw-r--r--    1 0        0               0 Aug 07 10:49 abc.txt
drwxr-xr-x    2 0        0               6 Jun 09 16:15 pub
lftp 192.168.1.158:/> get abc.txt                      #:get 文件名  下载文件
lftp 192.168.1.158:/> mirror pub                      #:mirror  目录名   下载目录
Total: 1 directory, 0 files, 0 symlinks
lftp 192.168.1.158:/> exit                                 #:exit 退出

测试:(注意客户机ltp连接时在哪个目录就会把文件下载到哪个目录)
[root@localhost ~]# ls                                      #:ls可以看到服务器的内容已经下载过来
abc.txt  anaconda-ks.cfg  pub 

2.用windows真机客户端去访问服务器:(主机浏览器默认只能下载不能上传)

去浏览器输入下载地址

 

 把abc.txt下载到windows桌面

 

 

 3.用wget工具去服务器下载

我们在服务器上放入一个文件(就是在/var/ftp下创建文件)

在客户端机器wget下载

说明:wget ftp://192.168.1.58是下载地址,然后后面的/表示在ftp服务器的根目录(这是一个假的根目录对于服务器来说就是/var/ftp这个目录,但是客户端认为/就是ftp服务器的根),33.txt是要下载的文夹。 

 扩展:******************************************
wget参数实例:
wget ftp://192.168.1.158/pub/2.txt    -O  /tmp/   #:-O参数指定下载目录

**************************************************************************************************************

  •  上传功能:

配置文件:/etc/vsftpd/vsftpd.conf(用户设置ftp服务器的功能)

1.检查匿名访问是否开启:

目的:如果开启客户端就可以不用输入账号和密码直接匿名下载,否则就要输入服务器的里面的一个用户信息才可以进行下载

 anonymous_enable=YES    #:yes就可以进行下载

现在我们把YES改为NO看看

systemctl restart  vsftpd

然后用windows客户端下载(可以看到要输入服务器账号和密码,就不能直接下载了)

 这个账号和密码就是服务器里面的一个用户的账号和密码

现在服务器上创建一个用户

useradd zhansan

passwd zhansan

  客户端可以用此账号登录去服务器下载文件。一旦开启认证,服务器就把用户家目录当做ftp服务的根目录(此时服务器的ftp目录就会变成/home/zhansn,会在此目录下,下载文件,是针对用户的,而/var/ftp所有客户端都看得见)

我们先在服务器上放下文件资源

 

 然后进行测试:

 2.服务器配置上传指令

vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES   #:启动可以上传文件的能力
anon_mkdir_write_enable=YES  #:启动可以上传文件夹的能力


systemctl restart vsftpd   重启服务

在客户机上进行上传
3.服务器上创建上传目录
mkdir /var/ftp/shangchuan    #:在/var/ftp下创建一个目录,接收客户端上传(直接放在/var/ftp 会很乱)

chmod 777 /var/ftp/shangchuan



4.客户端测试
在客户端创建一个要上传的文件。(kkk 目录111和目录下的文件222)

 

开始连接服务器进行上传:

 

 [root@localhost ~]# lftp 192.168.1.158
lftp 192.168.1.158:~> cd shangchuan/                       #:选择我们要上传的目录
lftp 192.168.1.158:/shangchuan> put kkk                    #:上传文件
lftp 192.168.1.158:/shangchuan> mirror -R 111          #:上传目录和目录下的文件
Total: 1 directory, 1 file, 0 symlinks
New: 1 file, 0 symlinks

客户端测试:(可以看到已经上传成功)

 

 拓展:因为浏览器,不能上传,所以windows想要上传就先把数据放到linux,再由linux上传。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值