Linux平台下快速搭建FTP服务器
检查安装vsftpd软件
使用如下命令
rpm -qa |grep vsftpd(如果返回空白则说明没有安装)
1.安装vsftpd组件
- yum install vsftpd -y
(删除vsftpd组件命令 rpm -e vsftpd)
可以用下面命令查看用户
-
cat /etc/passwd
默认ftp服务是没有启动的,用下面命令启动
-
service vsftpd start
如果报错: 则
启动ftp命令
#/bin/systemctl start vsftpd.service
停止ftp命令
#/bin/systemctl stop vsftpd.service
重启ftp命
#/bin/systemctl restart vsftpd.service
2.安装ftp客户端组件(用来验证是否vsftpd)
-
yum -y install ftp
执行命令尝试登录
-
ftp localhost
输入用户名ftp,密码随便(因为默认是允许匿名的)
登录成功,就代表ftp服务可用了。
但是,外网是访问不了的,所以还要继续配置。
3.取消匿名登陆
-
vi /etc/vsftpd/vsftpd.conf
把第一行的 anonymous_enable=YES ,改为NO
重启
-
service vsftpd restart (/bin/systemctl restart vsftpd.service)
4.创建ftp 用户组及用户:
# groupadd ftpgroup
# useradd ftpuser -g ftpgroup -d /ftp -m
# passwd ftpuser
输入密码2遍
/ftp是ftp 用户访问的文件夹
5.开放21端口
因为ftp默认的端口为21,而centos默认是没有开启的,所以要修改iptables文件
-
vi /etc/sysconfig/iptables
在行上面有22 -j ACCEPT 下面另起一行输入跟那行差不多的,只是把22换成21,然后:wq保存。
或者:
firewall-cmd --permanent --zone=public --add-port=21/tcp linux打开端口号
firewall-cmd --reload
还要运行下,重启iptables
-
service iptables restart (/bin/systemctl restart vsftpd.service)
外网是可以访问上去了,可是发现没法返回目录,也上传不了,因为selinux作怪了。
6.修改selinux
-
getsebool -a | grep ftp
执行上面命令,再返回的结果看到两行都是off,代表,没有开启外网的访问
-
....
-
ftpd_full_access off
-
....
-
....
-
ftp_home_dir off
只要把上面都变成on就行
执行
# vi /etc/selinux/config
-
将
SELINUX=XXX -->XXX代表级别
改为
SELINUX=disabled
或者
setsebool -P ftpd_disable_trans on
或者
setsebool -P ftp_home_dir on
如果不能执行,提示“Could not change active booleans: Invalid boolean ”
可以执行以下命令
setsebool allow_ftpd_full_access 1
setsebool allow_ftpd_use_cifs 1
setsebool allow_ftpd_use_nfs 1
setsebool ftp_home_dir 1
setsebool httpd_enable_ftp_server 1
再重启一下vsftpd service vsftpd restart (/bin/systemctl restart vsftpd.service)
这样应该没问题了
如果ftp连不上则可能是防火墙问题
- systemctl stop firewalld.service
- #停止firewall
- systemctl disable firewalld.service
- #禁止firewall开机启动
如果你不愿意关闭防火墙,需要防火墙添加FTP服务。
- firewall-cmd --permanent --zone=public --add-service=ftp
- firewall-cmd --reload
http://blog.csdn.net/qq_29945729/article/details/62882624