CentOS7下安装FTP服务
1、安装vsftp
1.1、安装vsftp,测试安装的vsftpd的版本是:vsftpd.x86_64 0:3.0.2-11.el7_2
yum -y install vsftpd
1.2、修改配置文件
vi /etc/vsftpd/vsftpd.conf
保证下面3项为YES
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
1.3、设置vsftpd开机启动
systemctl enable vsftpd.service
1.4、启动并查看vsftpd服务状态,systemctl启动服务成功不会有任何提示,绿色的active表示服务正在运行
systemctl start vsftpd.service
systemctl status vsftpd.service
2、本地验证ftp是否可以正常访问
2.1、安装ftp
yum -y install ftp
2.2、使用anonymous登陆,无需密码
ftp localhost
220表示服务正常,可以登陆;230表示登陆成功。
2.3、查看FTP服务器文件夹信息
3、 外部证ftp是否可以正常访问
3.1、关闭防火墙(也可以设置防火墙规则,得再百度了)
systemctl stop firewalld.service
为防止机器重启后防火墙服务重新开启,可将防火墙服务永久关闭。
systemctl disable firewalld.service
3.2、在window上输入ftp://IP地址,可看到ftp下的目录(pub为系统预设的)
4、文件读写。
到上面为止,我们发现ftp目录下并不能读写文件,这是由文件夹权限和selinux引起的。
4.1、设置文件夹权限,将pub文件夹的权限设置为777
chmod 777 -R /var/ftp/pub
4.1、关闭selinux服务
vi /etc/selinux/config
将SELINUX=enforcing改为:SELINUX=disabled
4.3、系统重启,让配置生效
shutdown -r now
4.4、上传文件
至此,ftp完全安装完成,若需为FTP配置用户权限,可自行百度。
【服务控制】
服务控制的意思就是,怎么开启、重启、停止 ftp 服务器,看下面的命令
查看服务状态:service vsftpd status
启动vsftpd服务:service vsftpd start
停止vsftpd服务:service vsftpd stop
重启vsftpd服务:service vsftpd restart
【问题解决】
1、如果链接时,等待一会儿后,提示“错误:连接超时(或者无法连接到服务器)”。
可能是由于你的服务器开启了防火墙,测试时建议先关掉防火墙,然后再试试。
2、连接成功后,可以下载文件,但是无法上传文件,并提示“550 Permission denied”。
这个错误说明匿名账号访问时,没有对服务器目录的写权限。此时我们可以在 /var/ftp/ 目录下建立一个目录,并将其读写权限设置为 777 (chmod 777 /var/ftp/pub ),然后就可以将文件上传至 ftp 服务器的 /var/ftp/pub 目录了
windows访问vsftp服务器出现200,227错误
ftp服务器有两种工作模式,port和pasv(主动和被动)
这两种模式都是客户端先向服务器端发出请求,服务器建立链接,以服务器为对象,当传输数据时,如果是服务器从20端口向客户端空闲端口发送请求建立链接,就是port(主动),反之,如果是客户端向服务器空闲端口请求建立链接,就是pasv(被动)
当连接出现,如图错误时:
打开IE浏览器:选择设置—-internet—–高级—-使用被动FTP(为防火墙和DSL调制解调器兼容性)”前面的勾去掉
如图:
出现错误的原因是:port方式在传输数据时,是Server端链接client端,有一个条件它必须有一个公网ip,如果client处于防火墙或net网关后面,server就找不到client端,就会报错,
所有的ftp客户端软件都支持两种传输方式,
FCMA==/dissolve/70/gravity/SouthEast)
出现错误的原因是:port方式在传输数据时,是Server端链接client端,有一个条件它必须有一个公网ip,如果client处于防火墙或net网关后面,server就找不到client端,就会报错,
所有的ftp客户端软件都支持两种传输方式,
IE默认是port(主动)