Linux CentOS7中搭建FTP服务器
安装ftp服务器
-
首先检查是否安装了vsftpd服务
- 在终端中输入"rpm -q vsftpd"
- 如未安装输入"yum install -y vsftpd"进行安装
- 注意:
需要切换到root用户才能进行安装,否则权限不够 - 等待安装完成…
- 在终端中输入"rpm -q vsftpd"
配置
- 修改配置文件
-
/etc/vsftpd/vsftpd.conf 是主配置文件,核心配置文件
-
使用 vim vsftpd.conf 打开并编辑主配置文件
-
注意:一般模式下输入":set nu"显示行号以便查找,按i或a进入编辑模式
主要更改配置如下:
- anonymous_enable=YES
- anon_upload_enable=YES
- anon_mkdir_write_enable=YES
末尾增加下列内容
-
anon_other_write_enable=YES
-
anon_world_readable_only=NO
-
anon_root=/home/vsftpd
:wq 保存并退出
-
配置登录用户
//创建用户,myftp为用户名
useradd myftp
//为用户myftp设置密码
passwd myftp
- 配置防火墙
- 添加FTP到白名单
firewall-cmd --add-service=ftp --permanent firewall-cmd --reload
- 放宽SELinux的控制权限,即更改SELinux为Permissive模式
//查看当前SELinux模式 getenforce //更改当前模式为Permissive模式 setenforce 0
- 修改SELinux对FTP的控制权限
//使用getsebool -a | grep -i ftp查看相关权限,on表示允许,off表示不允许 //开启匿名上传 setsebool -P ftpd_anon_write=1
- 开放端口号 21、20
//开放21端口号 firewall-cmd --zone=public --add-port=21/tcp --permanent //开放20端口号 firewall-cmd --zone=public --add-port=20/tcp --permanent //查看已开放的端口号 firewall-cmd --list-ports
- 修改完成后重启防火墙和vsftpd服务
//重启防火墙 firewall-cmd --reload //重启vsftpd服务 systemctl start vsftpd
vsftpd常用命令:
状态 systemctl status vsftpd.service
启动 systemctl start vsftpd.service
关闭 systemctl enable vsftpd.service
重启 systemctl restart vsftpd.service
开机启动 systemctl enable vsftpd.service
解决Windows端无法访问的问题:
打开控制面板—>网络和共享中心—>(左侧)Internet选项—>高级
去掉“使用被动FTP”
使用命令"systemctl stop firewalld.service"关闭Linux防火墙