linux-基础FTP 协议传输

FTP   文件传输协议

通过ftp 协议可以实现多台机器共享文件

ftp的连接模式:

  1. 主动连接   
  2. 被动连接

 

 

访问ftp的连接模式取决于客户端的访问

 

ftp 服务会产生两个端口:

  1. 21/tcp     命令连接
  2. 20/tcp   数据连接

 

主动连接:

客户端 -----> 访问ftp 默认是走的命令连接 eglsftp   命令连接传输一些ftp的命令

ftp   ------>  客户端   ftp 会启动一个数据连接,会拿20端口连接客户端

Eg

 

 

 

被动连接:

客户端----> ftp    客户端和ftp 端口21 建立好连接时,服务器本地会随机生成一个 数据连接的端口,端口生成后会把生成的端口通过21口告知客户端,客户端通过生成的端口号建立数据连接

 

 

 

如何让ftp 共享的文件是我们指定的目录或文件那?

FTP根目录-------ftp共享的目录(不指定FTP根目录,默认的家目录)

 

访问方式:

  1. 匿名用户      其实是ftp自动会生成一个ftp 用户,匿名用户用的ftp用户身份访问

 

ftp://192.168.1.105        192.168.1.105 代表的是/var/ftp

 

  1. 用户认证

 

 

 

 

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 下    而且匿名用户默认是不允许上传东西的

  

 

 

如何允许匿名用户上传文件

  1. 开启匿名用户上传的权限
  2. 确保匿名用户对本地有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

原文地址:https://www.cnblogs.com/yk0625/p/14301111.html