linux文件服务----FTP

实验环境:

  系统:CentOS Linux release 7.9.2009 (Core)

  内核:3.10.0-1160.11.1.el7.x86_64

 

一、安装

  1、准备工作:搭建yum源环境

    由于系统默认的yum源地址是国外的,速度会比较慢,所以换成国内的阿里云yum源地址

优化基础的yum源文件
CentOS 6
wget -O /etc/yum.repos.d/CentOS- Base.repo https://mirrors.aliyun.com/repo/Centos-6.repo
CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

优化扩展的yum源文件(某些特殊软件会用到扩展yum源)
epel(RHEL 6)
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
epel(RHEL 7)
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

 检查可用的yum源
yum repolist

[root@host2 ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
repo id repo name status
base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 10,072
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,517
extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 448
updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 1,216
repolist: 25,253

 

 

  2、安装软件

    ftp软件全名叫vsftp,通过搜索yum列表可查询

      yum list |grep ftp
    

    进行安装

    yum install -y  ftp

    提示Complete!则安装完成

  3、默认配置

    想试下ftp是否可用,最简单的方法是通过浏览器访问ftp服务

    首先在ftp的家目录中创建文件(内容随便写),ftp的家目录默认为 /var/ftp/

    创建文件:touch  /var/ftp/1.txt

    写入内容~

 

    然后关闭防火墙和selinux

    关闭防火墙:systemctl stop firewalld.service

    设置开机关闭:systemctl disable firewalld.service

 

    关闭selinux

    setenforce 0        临时关闭

    

    [root@host1 ~]# cat /etc/selinux/config |grep SELINUX=
    # SELINUX= can take one of these three values:
    SELINUX=disabled

    永久关闭:更改后要重启后生效(最好先重启,不然后面会遇到报错)

    

    查询selinux的状态

    [root@host1 ~]# sestatus

    SELinux status: disabled

 

    最后启动ftp服务(ftp程序全名叫vsftpd)

    systemctl start vsftpd 

    现在可以访问它了

  

 

 

  这里看到的根就是/var/ftp 目录

 

  4、上传文件

  到这步可能就会遇到许多报错~

  FTP服务器的配置文件默认为  /etc/vsftpd/vsftpd.conf(对配置文件进行修改时,最好先备份一个原始的配置文件)

 

    开启匿名用户可登录(就是不需要账号密码直接可以登录,比较方便,这里先不考虑安全问题)

  vim /etc/vsftpd/vsftpd.conf

  anonymous_enable=YES   ---yes为开启匿名登录(默认配置是开启的,一般不用修改)

  注:如果设置为NO,则需要账号登录,系统下创建的所有用户可以登录(包括管理员和普通用户)

 

  配置上传指令

  anon_upload_enable=YES  启动上传文件功能

  anon_mkdir_write_enable=YES  允许创建目录(需要另外创建存放上传文件的目录)

  修改配置后记得重启服务:systemctl  restart vsftpd

 

  创建上传目录

  mkdir   /var/ftp/upload

  设置权限

  chmod 777  /var/ftp/upload

 

  客户端测试

  这里在linux的客户端进行测试

  首先安装lftp客户端软件

  yum install -y lftp

 

  登录ftp服务器

  [root@host1 ~]# lftp 192.168.1.156

  lftp 192.168.1.156:~>

  注意:此处即使你登录错ip也不会有报错提示,检查ip是否正确 

 

  从服务器下载文件到客户端

  lftp 192.168.1.156:~> get 1.txt    下载文件1.txt,下载成功默认放在你登录ftp服务器前所在的目录  

  exit退出客户端查看文件是否下载成功

  lftp 192.168.1.156:/> exit 

  [root@host2 opt]# ls

  1.txt

  从客户端上传文件到服务器

  登录

  [root@host1 ~]# lftp 192.168.1.156

  进入之前创建的上传目录upload (必须在此目录)

  lftp 192.168.1.156:~> cd upload/

  lftp 192.168.1.156:/upload>

  尝试上传文件

  lftp 192.168.1.156:/upload> put 1.txt  这里的2.txt也是在你登录之前所在目录下的文件

  put: Access failed: 553 Could not create file. (1.txt)
  这里会遇到一条报错,说明上传失败

  解决方法:( 注意:此报错是由于selinux开启状态下出现的,只要关闭selinux后就不会出现)

查看SELinux设置
[root@host1 ~]# getsebool -a|grep ftp
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_home_dir --> off

解决办法是,需要设置allow_ftpd_full_access为on状态。
[root@host1 ~]# setsebool allow_ftpd_full_access on

再次查看SELinux设置
[root@host1 ~]# getsebool -a|grep ftp
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> on
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_home_dir --> off

重启vsftpd服务,测试可以登录

  再次尝试上传文件

  lftp 192.168.1.156:/upload> put 1.txt

  put: Access failed: 553 Could not create file. (1.txt)

  这里又报错了,这次不是配置的问题,是因为服务器端的upload目录里已经存在1.txt文件了

  

  换一个文件继续上传

  lftp 192.168.1.156:/upload> put 3.txt 

  7 bytes transferred    终于上传成功

  

  验证:在服务器端的upload目录查看

  [root@host1 ~]# ls /var/ftp/upload/
  1.txt 2.txt 3.txt

  

  如何上传下载目录

  首先在客户端创建新的目录

  mkdir -p /var/ftp/pdw

  创建文件

  [root@host1 ~]# echo '123' >> /var/ftp/pdw/ss.txt

  [root@host1 ~]# ls /var/ftp/pdw
  ss.txt

  同样的,客户端登录ftp服务器

  lftp 192.168.1.156:~> mirror pdw/      mirror   下载目录到本地

  Total: 1 directory, 1 file, 0 symlinks
  New: 1 file, 0 symlinks
  4 bytes transferred    下载成功

 

  上传目录

  注意:凡是上传文件或目录一定要先进入upload目录

  lftp 192.168.1.156:/> cd upload/

  lftp 192.168.1.156:/upload> put 4.txt 

  lftp 192.168.1.156:/upload> mirror -R podon/    mirror -R    上传目录

  Total: 1 directory, 1 file, 0 symlinks
  New: 1 file, 0 symlinks
  4 bytes transferred  上传成功

  

  

 

  

  

  

 

 
 

posted @ 2021-01-30 22:42  podon2021  阅读(129)  评论(0)    收藏  举报