FTP 文件传输协议
通过ftp 协议可以实现多台机器共享文件
ftp的连接模式:
- 主动连接
- 被动连接
访问ftp的连接模式取决于客户端的访问
ftp 服务会产生两个端口:
- 21/tcp 命令连接
- 20/tcp 数据连接
主动连接:
客户端 -----> 访问ftp 默认是走的命令连接 eg:lsftp 命令连接传输一些ftp的命令
ftp ------> 客户端 ftp 会启动一个数据连接,会拿20端口连接客户端
Eg:
被动连接:
客户端----> ftp 客户端和ftp 端口21 建立好连接时,服务器本地会随机生成一个 数据连接的端口,端口生成后会把生成的端口通过21口告知客户端,客户端通过生成的端口号建立数据连接
如何让ftp 共享的文件是我们指定的目录或文件那?
FTP根目录-------ftp共享的目录(不指定FTP根目录,默认的家目录)
访问方式:
- 匿名用户 其实是ftp自动会生成一个ftp 用户,匿名用户用的ftp用户身份访问
ftp://192.168.1.105 192.168.1.105 代表的是/var/ftp
- 用户认证
FTP 配置:
安装ftp
[root@study-server ~]# yum install vsftpd lftp
检查ftp有没有开启
[root@study-server ~]# ss -antp | grep vsftpd
LISTEN 0 32 :::21 :::* users: (("vsftpd",pid=8256,fd=4))
这是匿名访目录问,这个ftp的家目录在/var/ftp 下 而且匿名用户默认是不允许上传东西的
如何允许匿名用户上传文件
- 开启匿名用户上传的权限
- 确保匿名用户对本地有w的权限
ftp 配置文件
[root@study-server ~]# ls /etc/vsftpd/vsftpd.conf
/etc/vsftpd/vsftpd.conf
12 anonymous_enable=YES 允许匿名用户访问
19 write_enable=YES 允许上传的
29 anon_upload_enable=YES 允许匿名用户上传文件
上传文件
出现问题:
FTP搭建好之后无法上传文件centos vsftpd 553 Could not create file解决方法
解决:
这个问题是由selinux引起的
[root@study-server ~]# getsebool -a | grep ftpd
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
[root@study-server ~]# setsebool allow_ftpd_full_access on