常用软件安装及使用目录

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) Microsoft Corporation。保留所有权利。 C:\Users\89723>cd C:\ali\kong #切换目录到笔记本客户端的工作目录,随便创建的一个目录 C:\ali\kong>ftp 192.168.132.5
连接到 192.168.132.5。
(vsFTPd 2.2.)
Always in UTF8 mode.
用户(192.168.132.5:(none)): vftpuser
Please specify the password.
密码:
Login successful.
ftp> dir
PORT command successful. Consider using PASV.
Here comes the directory listing.
-rw-r--r-- Feb : mcw.txt
Directory send OK.
ftp: 收到 字节,用时 .00秒 .67千字节/秒。
ftp> ls #ls显示服务器ftp的用户主目录内容
PORT command successful. Consider using PASV.
Here comes the directory listing.
mcw.txt
Directory send OK.
用户vftpuser,用户的主目录是/usr/www/ftptest目录
ftp: 收到  字节,用时 .00秒 .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> ls
PORT command successful. Consider using PASV.
Here comes the directory listing.
.txt
.txt
.txt
.txt
mcw.txt
xiaoma.txt
Directory send OK.
ftp: 收到 字节,用时 .02秒 .89千字节/秒。
ftp> get .txt .txt #get 同时两个文件,只下载了第二个文件
PORT command successful. Consider using PASV.
Opening BINARY mode data connection for .txt ( bytes).
Transfer complete.
ftp> mget .txt .txt .txt #mget三个文件,每个下载前都提示输入y,有交互。
Switching to ASCII mode.
mget .txt? y
PORT command successful. Consider using PASV.
Opening BINARY mode data connection for .txt ( bytes).
Transfer complete.
mget .txt? y
PORT command successful. Consider using PASV.
Opening BINARY mode data connection for .txt ( bytes).
Transfer complete.
mget .txt? y
PORT command successful. Consider using PASV.
Opening BINARY mode data connection for .txt ( bytes).
Transfer complete.

pwd,cd命令

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

rename,delete命令

ftp> ls
mcw01.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=
# 把传输记录的日志保存到/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上,给出别人一个链接去下载。)

window下安装FTP服务器

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> dir
200 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

ftp部署及使用的更多相关文章

  1. 使用git代替FTP部署代码到服务器的例子

    这篇文章主要介绍了使用git代替FTP部署代码到服务器的例子,这种方法可以节省流量.节省时间,需要的朋友可以参考下 本地开发完成后,通常会在服务器上部署,有人会使用ftp,有人会使用scp, ftp和 ...

  2. FTP ftp部署遇到问题

    FTP  ftp部署遇到问题 一. 二.

  3. Linux上FTP部署:基于mariadb管理虚拟用户

    FTP原理 FTP 采用 Internet 标准文件传输协议 FTP 的用户界面, 向用户提供了一组用来管理计算机之间文件传输的应用程序.图1 FTP 的基本模型 FTP 是基于客户---服务器(C/ ...

  4. 使用ansible结合FTP部署zabbix_agent

    想要达到的效果:一条命令,快速对多台主机部署zabbix_agent 实现思路:从源码编译编译出zabbix_agentd,准备好安装脚本,将安装脚本和编译出的agent一起上传到FTP服务器,在an ...

  5. FTP部署与使用

    1.1 环境检查 [root@www ~]# cat /etc/redhat-release #系统版本,6系列等区别不大,都可以 CentOS Linux release 7.5.1804 (Cor ...

  6. 文件上传----FTP部署

  7. Linux下FTP环境部署梳理(vsftpd和proftpd)

    在日常运维工作中,常部署到的FTP是vsftpd和proftd.之前写了Linux下FTP虚拟账号环境部署总结,下面简单说下本地用户下的FTP环境部署过程: 简单梳理下FTP主动和被动两种工作模式: ...

  8. 用持续集成工具Travis进行构建和部署

    用持续集成工具Travis进行构建和部署 用持续集成工具Travis进行构建和部署 摘要:本文简单说明了如何使用持续集成工具Travis进行构建和部署的过程. 1. 概述 持续集成(Continuou ...

  9. java遍历ftp文件夹下所有文件(或指定文件下的文件)

    import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import org.apach ...

随机推荐

  1. Error: Couldn't find preset "env" relative to directory "/Users/user/ethereumjs-vm"

    运行npm run build时遇见这个问题,解决办法是安装: npm install --save-dev babel-preset-env 就解决了

  2. Spring源码分析(三)容器核心类

    摘要:本文结合<Spring源码深度解析>来分析Spring 5.0.6版本的源代码.若有描述错误之处,欢迎指正. 在上一篇文章中,我们熟悉了容器的基本用法.在这一篇,我们开始分析Spri ...

  3. (转)添加Template(模板)并基于模板部署应用

    通过Template,可以定义一个或多个需要部署的镜像,定义依赖的对象,定义可供用户输入的配置参数项. 以cakephp-mysql.json为例. # oc create -f https://ra ...

  4. nagios 在nrpe中自定义脚本

    监控第三方端口(22000) #!/bin/bash#author:xiaoweige#check 140 22000 result=`sleep 1|telnet 10.2.1.140 22000| ...

  5. MAC & Xcode 快捷键的使用

    "磨刀不费砍材工",在熟悉了MAC 和 Xcode 快捷键后一定可以帮助我们更快捷方便的开发程序 MAC 快捷键: command + Q = 退出应用程序 command + c ...

  6. Redis全方位讲解--主从复制

    前言 前面介绍了redis持久化和容灾备份,这篇会介绍redis主从复制和redis持久化在主从复制中的一些应用.因为本人没有那么多服务器或机器,所以这里主要介绍下如何在docker容器中搭建主从复制 ...

  7. R语言文本挖掘+词云显示(jiebaR包+wordcloud2包)

    利用2018年政府工作报告的例子向大家展示一下R语言如何进行文本挖掘的~用到的包有jiebaR和wordcloud2. 1.安装并加载jiebaR install.packages("jie ...

  8. c++ 标准流文件

    一.标准流stdin,stdout,stderr   标准输入流stdin: 是程序可以读取其输入的位置.缺省情况下,进程从键盘读取 stdin . fscanf(stdin,"%d%d%f ...

  9. 学习OpenCV——SVM

    学习OpenCV——SVM 学习SVM,首先通过http://zh.wikipedia.org/wiki/SVM, 再通过博客http://blog.csdn.net/yang_xian521/art ...

  10. 01- ajax, 登录验证,json数据,文件上传

    1.ajax简介 1.向服务器发送请求的途径 # 向服务器发送请求的途径 1. 浏览器地址栏,默认get请求 2. form表单: get请求 post请求 3. a标签,默认get请求 4. Aja ...