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 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 上传成功

浙公网安备 33010602011771号