参考链接:https://blog.csdn.net/sky__man/article/details/78574380
ftp 文件传输协议:工作在应用层,他是由tcp 实现的
ftp : tcp 两条连接
1,控制连接、命令连接 监听端口:21/tcp
2,数据连接
主动模式:命令连接成功之后,服务器端(20号端口)主动向客户端传输数据
比如,客户端2001号端口向服务器发出数据请求,服务器端默认向客户端的2002端口发送数据
那如果,2002端口被占用,则向2003发送,依次向后累加
但是这种服务器向客户端主动发送数据的模式面临着一个问题,客户端的防火墙有可能将服务器的数据
拒之门外、(绝大多数客户端并不开启多种服务端口)
被动模式:命令连接成功后,服务器向客户端发送一个报文,告诉客户端自己现在 打开了一个的端口(现在不一定是20号端口,一般大于1024或者5000)让客户端主动连接自己,那么客户端现在连接服务端新通知过来的新端口,同时向这个端口请求数据连接,服务器端自然可以向发起请求的客户端端口发送数据
数据传输模式 遵循文件本身的格式
1、二进制
2、文本
服务器端程序
vsftpd :Very Secure Ftp Daemo :简单精悍 :着重于安全
proftpd 功能强大
pureftpd
Filezilla window linux 都有
客户端程序
命令行模式 CLI
ftp
lftp
图形模式GUI
gftpd
flashfxp
cuteftp
filezilla
vsftpd:
/etc/vsftpd:配置文件目录
/etc/init.d/vsftpd:服务脚本
/usr/sbin/vsftpd: 主程序
ftp : 是linux 系统的一个系统用户,其实也就是一个虚拟用户,因为我们可以看到,这个用户的他是没有权限登陆系统的 /sbin/nologin ,但是/var/ftp 是他的根目录 这个用户对/var/ftp 拥有权限
[root@VM_0_4_centos ftp]# grep ftp /etc/passwd
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
如何开启vsftpd服务
在centos7以上的版本上 :systemctl start vsftpd.service
但同时要关闭防火墙
如果敲入命令:iptables -L -n 发现一下几行简单的信息说明防火墙是关闭的
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
而且SELinux 不能处于enforing 模式
可以通过编辑/etc/selinux/config文件,将SELINUX= 改为disabled 同时需要重启服务器
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
#SELINUX=disabled
SELINUX=permissive
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
ftp 服务的具体配置参考/etc/vsftpd/vsftpd.conf
1、通过浏览器 在网页中输入ftp:\\ip地址 (匿名用户登陆)
如果通过linux系统用户登陆 ftp:用户名:用户名密码@ip地址
eg 一个名为user的用户使用密码为tiankong登陆 ftp:user:tiankong@ip地址 同时此用户将进入自己的家目录而不是/var/ftp
2、通过windows 进入cmd,输入ftp ip地址
3、专用的客户端ftp软件