博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ftp部署及使用
阅读量:7222 次
发布时间:2019-06-29

本文共 8678 字,大约阅读时间需要 28 分钟。

 

 

 

http://www.jb51.net/article/106604.htm
 

ftp部署

本篇文章主要介绍了CentOS7.0下安装FTP服务的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

一个小插曲,安装一个FTP服务,便于和远程服务器的文件沟通。后续我们会讲到如何使用Capistrano配合git完成服务器的代码部署以及发布流程。现在,代码先走FTP吧,挺稳。

FTP简介

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。

在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。

用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

FTP安装

首先检查一下你的远程服务器是否已经安装了FTP服务。

1
#rpm -qa | grep vsftpd

如果啥都没显示,恭喜你,没有安装ftp服务,你可以安心的进行下面的动作了。如果有vsftpd的版本,跳过这一步!

那我们首先安装vsftpd。

vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。

运行下面的命令就可以完成vsftpd的安装

1
#yum -y install vsftpd

安装完成再次利用上面的rpm命令检查一下是否完成安装,如果完成安装,那就可以继续。

开启vsftpd服务

1
#service vsftpd start

在centos 中使用 systemctl start vsftpd

检查vsftpd服务

1
#service vsftpd status

 

注意,ftp服务使用的是21端口,有时候也使用20端口。我们之前设置的iptables防火墙服务阻止了这一端口,所以也要添加下面的代码到/etc/sysconfig/iptables里去。

1
A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT

重启防火墙服务

1
#systemctl restart iptables.service

好的,到这里,我们的默认ftp服务就已经开始运作啦,让我们来测试一下吧。

1
#ftp localhost

用户名称那一栏输入anonymous(匿名)

得到下面的信息就标识你的vsftp服务安装已完成。

 

 

在ftp>后面输入bye,先暂时和ftp告别,因为我们还有一些事没干呢。

配置vsftpd服务

打开vsftpd服务的配置文件

1
#vim /etc/vsftpd/vsftpd.conf

改变这几个属性的值,具体是啥意思呢,当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。为了以后好控制,我们先打开这几个配置。

保存退出,我们新建一个chroot_list文件

1
#touch /etc/vsftpd/chroot_list

重启vsftp服务

1
#service vsftpd restart

新增ftp用户

1
#/usr/sbin/adduser -d /usr/www/ftptest -g ftp -s /sbin/nologin vftpuser

新增用户vftpuser,用户的主目录是/usr/www/ftptest目录,用户组是ftp,不能登录的账户。

设置vftpuser密码

1
#passwd vftpuser

修改/usr/www/ftptest的目录权限

1
#chmod 755 /usr/www/ftptest/

重启vsftp服务

1
#/sbin/service vsftpd restart

设置权限

查看SElinux策略内ftp相关权限

1
#getsebool -a | grep ftp

打开ftp权限

1
#setsebool allow_ftpd_full_access 1

重启vsftp服务

1
#/sbin/service vsftpd restart

现在,可以在本机ftp远程服务器啦。

将vsftpd卸载(yum remove vsftpd)后,结果如下:

重新安装后又能使用vftpuser用户在电脑本地连接了。

 

问题1:SElinux未关闭导致无法访问,可以尝试将selinux策略先行关闭。

1
#vim /etc/selinux/config

将SELINUX一栏设置为disable即可

 ftp使用

在window下按window + r可打开DOS命令窗口,然后就可以输入FTP命令了。
1. 登录FTP服务器
     方法一:直接输入ftp加ip地址ftp 192.168.10.xxx
     方法二:直接输入ftp,进入ftp服务后输入open加ip地址open 192.168.10.xxx
     当连接成功后会让你进行身份验证,在输入密码时屏幕上没有任何显示,不用管,直接输完密码敲回车键即可。
2. 查看FTP服务器上的文件
 (一般情况下用户都会被限制目录的访问权限,只可在当前目录下进行操作)
     dir:显示服务器目录和文件列表
     ls:显示服务器简易的文件列表
     cd:进入服务器指定的目录
dir命令可以使用通配符“”和“?”,比如,显示当前目录中所有扩展名为jpg的文件,可使用命令 dir .jpg。
cd命令中必须带目录名。比如 cd main 表示进入当前目录下的main子目录
3. 下载文件
     上传和下载文件时应该使用正确的传输类型,FTP的传输类型分为ASCII码方式和二进制方式两种,对.txt、.htm等文件应采用ASCII码方式传输,对.exe或图片、视频、音频等文件应采用二进制方式传输。在默认情况下,FTP为ASCII码传输方式。
     type:查看当前的传输方式
     ascii:设定传输方式为ASCII码方式
     binary:设定传输方式为二进制方式 
     (以上命令都不带参数)
     get:下载指定文件get filename [newname](filename为下载的FTP服务器上的文件名,newname为保存在本都计算机上时使用的名字,如果不指定newname,文件将以原名保存。
get命令下载的文件将保存在本地计算机的工作目录下。该目录是启动FTP时在盘符C:后显示的目录。如果想修改本地计算机的工作目录,可以使用 lcd 命令。比如:lcd d:\ 表示将工作目录设定为D盘的根目录。
mget:下载多个文件mget filename [filename ....](mget命令支持通配符“”和“?”,比如:mget .mp3 表示下载FTP服务器当前目录下的所有扩展名为mp3的文件。)
4. 上传文件
 put:上传指定文件put filename [newname]
 send:上传指定文件send filename [newname]
 (filename为上传的本地文件名,newname为上传至FTP服务器上时使用的名字,如果不指定newname,文件将以原名上传。)
上传文件前,应该根据文件的类型设置传输方式,本机的工作目录也应该设置为上传文件所在的目录。
这里的send和put方法用法都基本相同,但是上传速度send却要比put快很多,有兴趣的人可以去研究下。
 5. 结束并退出FTP
 close:结束与服务器的FTP会话
 quit:结束与服务器的FTP会话并退出FTP环境
 6. 其它FTP命令
 pwd:查看FTP服务器上的当前工作目录
 rename filename newfilename:重命名FTP服务器上的文件
 delete filename:删除FTP服务器上的文件
 help[cmd]:显示FTP命令的帮助信息,cmd是命令名,如果不带参数,则显示所有FTP命令
 

cmd连接ftp服务端的实例,ls,dir,put,get使用

Microsoft Windows [版本 10.0.17134.590](c) 2018 Microsoft Corporation。保留所有权利。C:\Users\89723>cd C:\ali\kong    #切换目录到笔记本客户端的工作目录,随便创建的一个目录C:\ali\kong>ftp 192.168.132.5连接到 192.168.132.5。220 (vsFTPd 2.2.2)200 Always in UTF8 mode.用户(192.168.132.5:(none)): vftpuser331 Please specify the password.密码:230 Login successful.ftp> dir200 PORT command successful. Consider using PASV.150 Here comes the directory listing.-rw-r--r--    1 0        0               4 Feb 23 15:05 mcw.txt226 Directory send OK.ftp: 收到 68 字节,用时 0.00秒 22.67千字节/秒。ftp> ls    #ls显示服务器ftp的用户主目录内容200 PORT command successful. Consider using PASV.150 Here comes the directory listing.mcw.txt226 Directory send OK. 用户vftpuser,用户的主目录是/usr/www/ftptest目录
ftp: 收到 12 字节,用时 0.00秒 12000.00千字节/秒。 ftp> get mcw.txt bmcw.txt   #get下载,bmcw.txt是新文件名,缺省为不改原文件名 200 PORT command successful. Consider using PASV. 150 Opening BINARY mode data connection for mcw.txt (4 bytes). 226 Transfer complete. ftp: 收到 4 字节,用时 0.00秒 4.00千字节/秒。

 

ftp> put bxiaoma.txt xiaoma.txt             #put将笔记本客户端文件上传到ftp服务端,xiaoma.txt为新文件名,缺省是不改文件名。

200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
ftp: 发送 10 字节,用时 0.00秒 10.00千字节/秒。

 

 

 

 

 get,mget的使用

 
ftp> ls200 PORT command successful. Consider using PASV.150 Here comes the directory listing.1.txt2.txt3.txt4.txtmcw.txtxiaoma.txt226 Directory send OK.ftp: 收到 52 字节,用时 0.02秒 2.89千字节/秒。ftp> get 1.txt 2.txt                                          #get 同时两个文件,只下载了第二个文件200 PORT command successful. Consider using PASV.150 Opening BINARY mode data connection for 1.txt (0 bytes).226 Transfer complete.ftp> mget 1.txt 3.txt 4.txt                                      #mget三个文件,每个下载前都提示输入y,有交互。200 Switching to ASCII mode.mget 1.txt? y200 PORT command successful. Consider using PASV.150 Opening BINARY mode data connection for 1.txt (0 bytes).226 Transfer complete.mget 3.txt? y200 PORT command successful. Consider using PASV.150 Opening BINARY mode data connection for 3.txt (0 bytes).226 Transfer complete.mget 4.txt? y200 PORT command successful. Consider using PASV.150 Opening BINARY mode data connection for 4.txt (0 bytes).226 Transfer complete.

 pwd,cd命令

ftp> pwd                                                                 #显示所在的服务器端的目录257 "/usr/www/ftptest"ftp> cd mcw                                 #切换目录250 Directory successfully changed.ftp> pwd257 "/usr/www/ftptest/mcw"ftp> cd /root/                            #访问ftp服务端家目录以外的目录失败550 Failed to change directory.

rename,delete命令 

ftp> lsmcw01.txt mcw02.txt ftp> rename mcw01.txt  mcw_modify.txt 350 Ready for RNTO. 250 Rename successful. ftp> ls mcw02.txt mcw_modify.txt ftp> delete mcw02.txt 250 Delete operation successful. ftp> ls mcw_modify.txt

 

/etc/vsftpd/vsftpd.conf配置文件详解

安装后在etc目录会有vsftpd文件夹存在,需要配置vsftpd.conf配置文件   #进入vsftpd配置文件    vim /etc/vsftpd/vsftpd.conf     # 禁止匿名用户anonymous登录    anonymous_enable=NO    # 允许本地用户登录    local_enable=YES    # 让登录的用户有写权限(上传,删除)    write_enable=YES    # 默认umask    local_umask=022    # 把传输记录的日志保存到/var/log/vsftpd.log    xferlog_enable=YES    xferlog_file=/var/log/vsftpd.log    xferlog_std_format=NO    # 允许ASCII模式上传    ascii_upload_enable=YES     # 允许ASCII模式下载    ascii_download_enable=YES    # 使用20号端口传输数据    connect_from_port_20=YES    # 欢迎标语    ftpd_banner=Welcome to use my test ftp server.    # 接下来的三条配置很重要    # chroot_local_user设置了YES,那么所有的用户默认将被chroot,    # 也就用户目录被限制在了自己的home下,无法向上改变目录。    # chroot_list_enable设置了YES,即让chroot用户列表有效。    # ★超重要:如果chroot_local_user设置了YES,那么chroot_list_file    # 设置的文件里,是不被chroot的用户(可以向上改变目录)    # ★超重要:如果chroot_local_user设置了NO,那么chroot_list_file    # 设置的文件里,是被chroot的用户(无法向上改变目录)    chroot_local_user=YES    chroot_list_enable=YES    # touch /etc/vsftpd/chroot_list 新建    chroot_list_file=/etc/vsftpd/chroot_list    use_localtime=YES    # 以standalone模式在ipv4上运行    listen=YES    # PAM认证服务名,这里默认是vsftpd,在安装vsftpd的时候已经创建了这个pam文件,    # 在/etc/pam.d/vsftpd,根据这个pam文件里的设置,/etc/vsftpd/ftpusers    # 文件里的用户将禁止登录ftp服务器,比如root这样敏感的用户,所以你要禁止别的用户    # 登录的时候,也可以把该用户追加到/etc/vsftpd/ftpusers里。    pam_service_name=vsftpd

 

 

ftp浏览器访问,windows软件访问

将ftp根目录用rsync+inotify同步到开启auto的站点目录下。

(思考:是否可以Windows客户端连接到ftp服务器主目录,在将主目录实时同步到nginx开启auto的站点目录下,就可以有人直接下载文件了呢。可以用这种方法将我电脑上要共享的文件放到我的ecs上,给出别人一个链接去下载。)

 

ftp客户端在windows上的安装以及使用

1、在控制面板-程序-启用或关闭Windows功能-点击开启tftp客服端

 

 

 

2、访问ftp服务器默认的主目录/var/ftp/

 

在ftp服务端创建文件mcw02.txt,在Windows的ftp客户端会刷新出来

 

 之前的主目录是ftp用户组里一个用户的家目录,而不是ftp服务器端默认的主目录

 3、Windows客户端用户登陆

 

 

 3.1在主目录中右击选择新建文件夹报错权限问题

3.2右击属性可看到如下信息

 3.2右击让后选择登陆,输入用户密码

3.3进入ftp用户组对应的一个用户的家目录下。

3.4在ftp服务端创建一个文件mcw.txt,在Windows客户端可以刷新出来。在Windows客户端右击然后可以创建文件夹,在ftp服务的可以看到目录生成了。

 3.5右击文件和文件夹,点击复制到笔记本另一个文件夹,可以成功下载ftp服务端文件到笔记本。

3.6复制电脑本地文件或文件夹,粘贴到Windows客户端的目录下,就能将它们传输到ftp服务器对应用户的家目录。

 3.7访问目录下的文件,会以浏览器的方式打开。并且需要登陆。(访问失败,有时间再看这个问题,怎么解决)

 

 4、下载Windows版的ftp客户端软件,连接ftp服务器

 

 

安装好软件进行连接ftp服务器

成功连接到远程ftp,并列出用户vftpuser的家目录文件。

双击文件就完成复制。

 

 

 问题汇总

问题一:防火墙阻挡,425 Failed to establish connection.

ftp> dir200 PORT command successful. Consider using PASV.425 Failed to establish connection.

  

 

 

 

参考:

https://blog.csdn.net/qq_38526635/article/details/82147980

https://blog.csdn.net/renliang01/article/details/79327251

 

转载于:https://www.cnblogs.com/machangwei-8/p/10424270.html

你可能感兴趣的文章
软件的发布格式
查看>>
nginx
查看>>
第三章 栈与队列笔记整理
查看>>
javascript闭包以及闭包的作用
查看>>
[Nescafé 20] 玉蟾宫
查看>>
python高级之网络编程
查看>>
python *args and * kwargs
查看>>
tail的用法
查看>>
使用STL仿函数和判断式来降低复杂性并改善可读[转]
查看>>
数据库的事务的特性及隔离级别
查看>>
Eziriz.Net.Reactor使用注意事项
查看>>
charme浏览器 jquery1.9.1min.js 报脚本错误 无jquery.min.map 文件
查看>>
数据类型
查看>>
菜鸟调错(四)——Spring与DWR集成,配置文件报错
查看>>
struts2中怎样处理404?
查看>>
C# 获取文件名及扩展名
查看>>
博客作业04--树
查看>>
【汇总】flash单个文件上传
查看>>
Aop实现SqlSugar自动事务
查看>>
自适应网页设计(Responsive Web Design)
查看>>