前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FTP服务搭建和配置

FTP服务搭建和配置

作者头像
老七Linux
发布2018-05-09 16:34:16
1.7K0
发布2018-05-09 16:34:16
举报

一、FTP介绍

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

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

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

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


二、使用vsftpd搭建ftp服务

2.1 安装服务:

代码语言:javascript
复制
[root@zhdy-03 ~]# yum install -y vsftpd

2.2 创建用户:

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

2.3 配置虚拟用户:

代码语言:javascript
复制
[[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 授权:

代码语言:javascript
复制
[[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 创建用户配置目录:

代码语言:javascript
复制
[[email protected]03 ~]# mkdir /etc/vsftpd/vsftpd_user_conf    //创建配置文件
[[email protected]03 ~]# cd /etc/vsftpd/vsftpd_user_conf

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

代码语言:javascript
复制
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 配置虚拟用户家目录:

代码语言:javascript
复制
[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 配置认证的路径+文件

代码语言:javascript
复制
[[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的主配置文件:

代码语言:javascript
复制
[[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 启动并查看启动状态:

代码语言:javascript
复制
[[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 服务器端安装;

代码语言:javascript
复制
[root@zhdy-03 ~]# yum install -y lftp

3.2 查看服务端的文件

代码语言:javascript
复制
[[email protected]03 ~]# lftp [email protected]127.0.0.1
Password: 
lftp [email protected]127.0.0.1:~> ls

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

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


四、使用xshell来传输

mark
mark
mark
mark

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

代码语言:javascript
复制
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


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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、FTP介绍
  • 二、使用vsftpd搭建ftp服务
  • 三、客户端测试
  • 四、使用xshell来传输
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档