前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ubuntu下部署FTP服务器

ubuntu下部署FTP服务器

作者头像
dogfei
发布2020-07-31 10:39:54
2.4K1
发布2020-07-31 10:39:54
举报
文章被收录于专栏:devops探索devops探索

FTP简单介绍

FTP是TCP/IP协议组中的协议之一,即文件传输协议,工作在TCP模型的第四层(应用层),使用TCP传输使用交互式的访问,允许客户端指定文件类型和格式,一般为ASCII码和文本格式。

FTP连接模式

FTP有两个端口,一个端口是作为控制连接端口,即21号端口,该端口用于发送指令给服务器以及等待服务器相响应;两一个端口是数据传输端口,端口号为20,用来建立数据传输通道;所以FTP的连接模式有两种,主动和被动,也就是PORT和PASV,这都是相对于服务器而言,类似zabbix的主动与被动。

PORT模式

主动模式FTP客户端把自己的高位端口和FTP服务器的TCP的21端口建立连接通道,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令,告诉服务端,客户端用什么端口接收数据,从而服务端收到客户端的端口信息后,就通过自己的20端口和客户端的指定随机高位端口进行连接,数据链路建立。

PASV模式

被动模式是当客户端发送数据请求后,服务端也会发信息给客户端,告诉客户端,服务端在它本地打开了一个高位端口,让客户端来连吧,当客户端收到服务端的信息后,就去连接服务端的高位随机端口,数据链路建立。

区别

两种模式主要是数据链路建立的不同,主动模式是客户端在本地打开一个高位端口等待服务端建立连接,被动模式是服务端打开一个高位端口等待客户端去建立一个数据连接。

知道这些对于理解FTP就差不多了,下面开始介绍在ubuntu下如何搭建FTP的主动和被动

搭建

安装FTP

1

sudo apt install vsftpd

创建FTP跟目录和用户

1 2 3 4 5

$ sudo mkdir -p /data/storage $ sudo adduser www $ sudo adduser ftpadmin --ingroup www $ sudo chown -R www.www /data/storage $ sudo chmod g+w /data/storage

这里说一下创建的这两个用户的作用:www用户是我们的web普通用户,所有的应用程序都是用此用户控制的;ftpadmin是FTP用户

配置主动模式

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES #主动模式进行数据传输时是否使用20端口 xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=NO chroot_local_user=YES allow_writeable_chroot=YES write_enable=YES local_root=/data/storage local_umask=0 file_open_mode=0666 port_enable=YES  #主动模式开启

配置完成后重启vsftpd即可,主动模式即开启

被动模式配置

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=NO chroot_local_user=YES allow_writeable_chroot=YES write_enable=YES local_root=/data/storage local_umask=0 file_open_mode=0666 pasv_enable=YES #开启被动模式 pasv_min_port=10001 pasv_max_port=10250 pasv_promiscuous=YES #关闭被动模式时的安全检查

测试

使用filezilla或者浏览器直接访问ftp://ftp地址即可,我们这里使用curl进行上传与下载

1)创建多个文件

1

for i in `seq 1 100`;do echo "num: $i" > upload_$i.log;done

2)上传多个文件

1

for i in `seq 1 100`;do curl -u ftpadmin:Tccm2008 -T upload_$i.log ftp://10.0.3.111 ;done

3)下载多个文件

1

for i in `seq 1 100`;do curl ftp://10.0.3.111/upload_$i.log -u ftpadmin:Tccm2008 -o download_$i.log ;done

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • FTP简单介绍
  • FTP连接模式
    • PORT模式
      • PASV模式
        • 区别
        • 搭建
          • 安装FTP
            • 创建FTP跟目录和用户
              • 配置主动模式
                • 被动模式配置
                  • 测试
                  相关产品与服务
                  SSL 证书
                  腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档