FTP服务搭建和配置

一、FTP介绍

我们之前传输文件所用的是rzsz命令,可以简单明了的就把我们所需的文件下载或者上传。但是有个缺陷,不可以上传或者下载大体积的文件。FTP就可以解决这个问题!

1.1 FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。

FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。

小公司用的多,大企业不用FTP,因为不安全。大多数的企业使用git。


二、使用vsftpd搭建ftp服务

2.1 安装服务:

[root@zhdy-03 ~]# yum install -y vsftpd

2.2 创建用户:

[root@zhdy-03 ~]# useradd -s /sbin/nologin ftpuser
这儿可能会有疑问,我们创建了这个用户为什么不可以nologin呢?然后我们就用到了如下虚拟用户:

2.3 配置虚拟用户:

[[email protected]03 ~]# vim /etc/vsftpd/vsftpd_login //奇数行为用户名,偶数行为密码,多个用户就写多行!

[[email protected]03 ~]# vim /etc/vsftpd/vsftpd_login
//用户为zhdy密码为asd9577;zhdy02密码为asd9772
zhdy
asd9577
zhdy02
asd95772

2.4 授权:

[[email protected]03 ~]# chmod 600 /etc/vsftpd/vsftpd_login    //为了安全,不允许其他人修改,我们设置为600

[[email protected]03 ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db     //再次把密码文件转换为计算机可以识别的配置文件。

2.5 创建用户配置目录:

[[email protected]03 ~]# mkdir /etc/vsftpd/vsftpd_user_conf    //创建配置文件
[[email protected]03 ~]# cd /etc/vsftpd/vsftpd_user_conf

2.6 创建用户配置文件(一定要和你创建的用户名字一致。)

vim zhdy //加入如下内容

local_root=/home/ftpuser/zhdy       //虚拟用户的家目录
anonymous_enable=NO     //是否允许匿名用户
write_enable=YES        //是否允许可写
local_umask=022     //创建新目录和文件的权限
anon_upload_enable=NO       //是否允许匿名用户上传
anon_mkdir_write_enable=NO      //是否允许匿名用户可创建
idle_session_timeout=600    //连接后没有任何操作的超时时间
data_connection_timeout=120     //数据传输超时时间
max_clients=10  //最大允许连接的clients

2.7 配置虚拟用户家目录:

[root@zhdy-03 vsftpd_user_conf]# mkdir /home/ftpuser/zhdy

[root@zhdy-03 vsftpd_user_conf]# touch /home/ftpuser/zhdy/zhdy.txt

[root@zhdy-03 vsftpd_user_conf]# chown -R ftpuser.ftpuser /home/ftpuser/

2.8 配置认证的路径+文件

[[email protected] vsftpd_user_conf]# vim /etc/pam.d/vsftpd

#%PAM-1.0
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required     pam_shells.so
auth       include      password-auth
account    include      password-auth
session    required     pam_loginuid.so
session    include      password-auth

-----------------------------------------------------------
//在最前面加上
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

2.9 配置vsftpd的主配置文件:

[[email protected]03 vsftpd_user_conf]# vim /etc/vsftpd/vsftpd.conf

将anonymous_enable=YES 改为 anonymous_enable=NO

将#anon_upload_enable=YES 改为 anon_upload_enable=NO 

将#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO

//再最低下增加如下内容:
chroot_local_user=YES
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES

user_config_dir:定义user用户的配置路径。

2.10 启动并查看启动状态:

[[email protected]03 vsftpd_user_conf]# systemctl start vsftpd
[[email protected]03 vsftpd_user_conf]# ps aux | grep vsftpd
root       4603  0.0  0.0  52708   564 ?        Ss   18:00   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root       4605  0.0  0.0 112664   972 pts/0    S+   18:00   0:00 grep --color=auto vsftpd
[[email protected]03 vsftpd_user_conf]# netstat -lntp

tcp6       0      0 :::21                   :::*                    LISTEN      4603/vsftpd

21端口FTP; 22端口SSHD; 23端口TELNET


三、客户端测试

3.1 服务器端安装;

[root@zhdy-03 ~]# yum install -y lftp

3.2 查看服务端的文件

[[email protected]03 ~]# lftp [email protected]127.0.0.1
Password: 
lftp [email protected]127.0.0.1:~> ls

输入 ? 是用来查看操作的命令。

使用 get+文件名 来下载一个文件到根目录!


四、使用xshell来传输

其原理就是:使用sftp模式登录服务器,然后我们可以按照正常的操作,进入到指定的目录,直接:

sftp:/tmp> cd /usr/local/src/
sftp:/usr/local/src> ls
drwxr-xr-x    7 root     root         4096 Aug 19 21:53 .
drwxr-xr-x   15 root     root          172 Aug 19 13:48 ..
-rw-r--r--    1 root     root     314581668 Jul 25 21:28 mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
-rw-r--r--    1 root     root     15732452 Jun  7 16:00 php-7.1.6.tar.bz2
drwxrwxr-x   18 justin   justin       4096 Aug 18 22:18 php-7.1.6
-rw-r--r--    1 root     root       981093 Aug 18 22:55 nginx-1.12.1.tar.gz
drwxr-xr-x    9 mysql    mysql         186 Aug 19 13:46 nginx-1.12.1
-rw-r--r--    1 root     root      8641990 Aug 19 07:32 wordpress-4.8.1-zh_CN.tar.gz
drwxr-xr-x    5 nobody   nfsnobody     4096 Aug  4 15:54 wordpress
-rw-r--r--    1 root     root     10636707 Aug 19 07:35 Discuz_X3.4_SC_GBK_0802.zip
-rw-r--r--    1 root     root     10094435 Aug 19 17:09 DedeCMS-V5.7-GBK-SP2-Full.tar.gz
drwx------    4 501      20             33 Apr 30  2012 DedeCMS-V5.7-GBK-SP2-Full
drwxr-xr-x   12 root     root         4096 Aug  2 11:07 upload

sftp:/usr/local/src> get nginx-1.12.1.tar.gz
Fetching /usr/local/src/nginx-1.12.1.tar.gz to nginx-1.12.1.tar.gz
sftp: received 958 KB in 0.08 seconds

然后回到桌面就找到我们下载的nginx.tar.gz


本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏cloudskyme

apache synapse使用(1)

一.Synapse介绍 Synapse 是一个简单的 XML 和 Web 服务管理与集成代理,可用于构成 SOA 和企业服务总线(ESB)的基础。Synapse...

4337
来自专栏猿天地

Elastic-Job动态添加任务

背景 在使用Elastic-Job的过程中,有很多人遇到了这么一个问题,就是如何动态的去添加任务? 在官方的文档中也有对此作出回答,如下: 动态添加作业这个概念...

5577
来自专栏云计算教程系列

如何将Ubuntu从16.04升级到18.04

Ubuntu 18.04是一个长期支持(LTS)版本,LTS 版本每两年发布一次,而 Ubuntu 18.04 是自 2016 年以来的第一个长期支持版本。Ub...

2.9K4
来自专栏菩提树下的杨过

64位centos 下编译 hadoop 2.6.0 源码

64位os下为啥要编译hadoop就不解释了,百度一下就能知道原因,下面是步骤: 前提:编译源码所在的机器,必须能上网,否则建议不要尝试了 一. 下载必要的组件...

2475
来自专栏JMCui

Hybris安装和各个Extention简单介绍

前言:突然想好好梳理一下这几个月所学的内容了,顺便让自己的知识有一个系统的框架。这种安装仅仅适用于开发环境,不适于生产环境。 一、  安装JDK 请安装最新的O...

51511
来自专栏JadePeng的技术博客

Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目

前文使用Docker搭建Jenkins+Docker持续集成环境我们已经搭建了基于docker+jenkins的持续集成环境,并构建了基于maven的项目。这一...

6637
来自专栏慎独

如何在Github上给别人的项目贡献代码

1414
来自专栏无题

分布式Session一致性解决方案

在分布式架构或微服务架构下,必须保证一个应用服务器上保存Session后,其它应用服务器可以同步或共享这个Session Web应用在单机部署的情况下,Ses...

4286
来自专栏乐沙弥的世界

PXC 5.7 mysqldump: Error 2013

最近在mysqldump时,遭遇mysqldump: Error 2013错误。以为是常见的参数设置有问题,调整之后,也没有任何成效。原来发生了OOM,以下是其...

1100
来自专栏流柯技术学院

LR常见问题整理

  当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以用下面的方法来解决。

4754

扫码关注云+社区

领取腾讯云代金券