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 条评论
登录 后参与评论

相关文章

  • 部署Java项目(Ⅰ)

    老七Linux
  • 正则三剑客-awk

    awk与前两个不同之处是支持分段处理; #mkdir awk; cp /etc/passwd awk/passwd         //前期准备,创建一个awk...

    老七Linux
  • Cron,Chkconfig,Systemd,Target

    Cron : # cat /etc/crontab //查看设置任务计划的(配置文件)格式 #crontab -e //自定义计划内容 0 3 * * * /b...

    老七Linux
  • 使用vsftpd搭建FTP服务器(Centos 7)

    前提,在你的电脑上已经安装好了xshell或finalshell之类的ssh工具 第一步:查看软件包是否安装

    宸寰客
  • vsftpd搭建自己的ftp服务器

    虽然说现在已经有各种网盘服务,但是图方便的话最好还是有自己的ftp服务器,今天就介绍下在centos下安装vsftpd搭建ftp服务器。 首先更新下系统,可以使...

    用户1188347
  • Linux ftp服务器搭建_vsftpd(1):服务器搭建和配置

    Y大宽
  • vsftpd添加用户并分配不同权限

    安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件。

    秃头哥编程
  • centos搭建ftp服务器

    vsftpd 是一款在Linux发行版中最受推崇的FTP服务器程序,它是一个基于GPL协议的开源程序。vsftpd代表very secure FTP daemo...

    尾尾部落
  • Linux云服务器下搭建FTP服务器

    FTP工作模式简介FTP工作会启动两个通道:控制通道和数据通道。控制通道一般由客户端发起,数据连接分两种:port(主动)和pasv(被动)。PORT模式:在客...

    吴奇
  • Linux服务器上安装vsftpd

    1、首先判断你服务器上是否安装了vsftpd rpm -q vsftpd 2、安装vsftpd yum -y install vsftpd 3、重启vsftpd...

    I Tech You_我教你

扫码关注云+社区

领取腾讯云代金券