1.FTP介绍:

FTP (File Transfer Protocol,文件传输协议)主要用来文件传输,尤其适用于大文件传输,提供上传下载功能

FTP官方网站:https://filezilla-project.org/

FTP服务器根据服务对象分为两种:一种Linux系统用户下控制的FTP服务器,另一种匿名FTP服务器

2.FTP工作模式

FTP采用C/S架构的服务,分为客户端和服务器端。使用TCP做为底层传输协议,使用标准端口20,21: 20端口作为数据端口,21端口作为指令端口

2.1主动FTP

  • 客户端从任意一个非授权端口,即大于1024的端口N,连接到FTP服务器命令端口21,
  • 然后客户端开始监听端口N+1,并发送FTP命令“PORT N+1”到FTP服务器
  • 接着服务器再从自己的数据端口(20端口)连接到客户端指定的数据端口(N+1)

2.2被动FTP

在被动模式中,命令连接于数据连接都有客户端发起,这样解决了服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题

  • 客户端的命令端口与服务器的命令端口建立连接,并发送命令“PASV”
  • 然后服务器返回命令"PORT 2024",告诉客户端(服务器)用哪个端口侦听数据连接
  • 客户端初始化一个从自己的数据端口到服务器端指定的数据端口的数据连接
  • 最后服务器在给客户端的数据端口返回一个"ACK"响应。

3.FTP命令行

  • open host[port]:建立指定ftp服务器连接,可指定连接端口
  • quit:同bye,退出ftp会话
  • cdup:进入远程主机目录的父目录
  • close:中断与远程服务器的ftp会话(与open对应)
  • mdelete[remote-file]:删除远程主机文件。
  • mkdir: 在远程主机中建一目录
  • get remote-file[local-file]: 将远程主机的文件remote-file传至本地硬盘的local-file
  • put local-file[remote-file]:将本地文件local-file传送至远程主机
  • mget remote-files:传输多个远程文件
  • mput local-file:将多个文件传输至远程主机
  • modtime file-name:显示远程主机文件的最后修改时间
  • pwd:显示远程主机的当前工作目录
  • ascii:使用ascii类型传输方式
  • bin:使用二进制文件传输方式
  • help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
pub
226 Directory send OK.
ftp: 收到 8 字节,用时 0.00秒 2.00千字节/秒。
ftp> get pub /desktop
200 PORT command successful. Consider using PASV.
550 Failed to open file.
ftp> pwd #ftp用户无权限
257 "/"
ftp> mkdir 0331
550 Permission denied.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
pub
226 Directory send OK.
ftp: 收到 8 字节,用时 0.00秒 8000.00千字节/秒。

 4.Linux下安装FTP

在Linux命令行执行ftp 显示没有此命令则进行安装:

yum install ftp -y

5.FTP环境搭建

5.1 安装VSFTPD

先查看是否安装vsftpd:rpm -qa |grep vsftpd

[root@H0f ~]# rpm -qa |grep vsftpd
vsftpd-2.2.2-24.el6.x86_64
1. rpm -e  vsftpd         进行卸载
2. yum install -y vsftpd   安装vsftpd

 5.2 启动VSFTPD

[root@H0f ~]# chkconfig vsftpd on   #加到开机自启动
[root@H0f Desktop]# /etc/init.d/vsftpd status #查看服务是否启动
vsftpd (pid 21318) is running...
[root@H0f Desktop]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]

 5.3 SELinux设置

[root@H0f ~]# getenforce
Enforcing #强制执行
[root@H0f ~]# setenforce 0 #降低SELinux安全级别
[root@H0f ~]# getenforce #宽容模式
Permissive

 5.4防火墙设置

1.允许所有FTP模式连接

iptables -A INPUT  -p tcp --dport 21 -m state --state ESTABLISHED -j ACCEPT
iptabels -A OUTPUT -p tcp --sport 21 -m state --state NEW,ESTABLISHED -j ACCEPT

2.主动模式设置

iptabels -A INPUT -p tcp --dport 20 -m state --state ESTABLISHED,RELATED  -j ACCEPT
iptables -A OUTPUT -p tcp --sport 20 -m state --state ESTABLESHED -j ACCEPT

3.被动模式设置

iptables -A INPUT -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1024:65535 --deport 1024:65535 -m state --state ESTABLESHED,RELATED -j ACCEPT

linux下FTP服务搭建(1)的更多相关文章

  1. 《Linux下FTP服务器搭建及FTP使用》

    .LOGAndy:mxtd114 <Linux下FTP服务器搭建> 0.root登录 1.安装ftp # yum -y install ftp 2.安装vsftpd # yum -y in ...

  2. linux之FTP服务搭建 ( ftp文件传输协议 VSFTPd虚拟用户)

    FTP服务搭建 配置实验之前关闭防火墙 iptables -F iptables -X iptables -Z systemctl stop firewalld setenforce 0 1.ftp简 ...

  3. linux下FTP服务器搭建教程1

    你买了个主机就像是买了块地皮,搭建FTP就像是盖房子,我在地皮上建房子,然后创建的用户就像是钥匙,我给谁钥匙(权限),谁就可以到我家去玩,去放东西,拿东西. 虽然我们买不起现实的房子,但是我们可以买互 ...

  4. Linux下FTP服务(一)—— Ubuntu安装

    参考:http://www.cnblogs.com/likwo/p/3154868.html 实验环境:Ubuntu 14.04 VMware虚拟机1. 安装 apt-get install vsft ...

  5. linux下ftp服务器搭建

    1.yum install vsftpd  使用yum安装ftp 2.创建并授权ftp文件目录   mkdir -P /ftp/ftpadmin       chmod -R 777 /ftp/ftp ...

  6. <Linux下FTP服务的搭建>

    默认安装好ftp软件包匿名用户是可以下载的.匿名以后可以上传:anon_upload_enable=YES# getsebool -a | grep ftpallow_ftpd_anon_write ...

  7. linux下Ftp服务安装

    安装vsftp 使用yum命令安装vsftp #yum install vsftpd -y 如果yum安装不成功,可以到 http://pkgs.org/centos-6/centos-x86_64/ ...

  8. linux下svn服务搭建

    安装svn需要依赖apr和apr-util这两个软件,所以先安装这两个软件 下载安装APR wget http://apache.fayea.com//apr/apr-1.5.2.tar.gz .ta ...

  9. Linux下samba服务搭建

    参考: https://www.cnblogs.com/lxyqwer/p/7271369.html https://www.cnblogs.com/liulipeng/p/3406352.html ...

随机推荐

  1. 蓝桥杯【入门训练】 Fibonacci数列

    问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少. 输入格式 输入包含一个整数n ...

  2. Ubuntu重启关机命令使用

    如果你想保持当前用户的登录而且使用root用户执行命令 可以输入:su root,输入密码 可以运行,shutdown 命令 重启命令: 1.reboot 2.shutdown -r now 立刻重启 ...

  3. SDUT 3377 数据结构实验之查找五:平方之哈希表

    数据结构实验之查找五:平方之哈希表 Time Limit: 400MS Memory Limit: 65536KB Submit Statistic Problem Description 给定的一组 ...

  4. WordCount优化-第四周小组作业

    一.基本功能 GITHUB项目地址:https://github.com/LongtermPartner/ExtendWordCount PSP表格填写: PSP2.1 PSP阶段 预估耗时 (分钟) ...

  5. Python--详解TKinter类库

    为了学习python3.5的tkinter,于是我去官网找了找相关部件的一些文档,读起来有点绕口,觉得还是自己来实践实践,看看视频感觉用处会更大,然后就有了下面的一部分常用的总结, 查看tkinter ...

  6. 共享库so

    so文件在linux中为共享库,与windows下的dll类似. so文件中的函数可供多个进程调用,最大可能的提供二进制代码的复用. 共享库可以使代码的维护工作大大简化,当修正了一些错误或者添加了新特 ...

  7. WebGoat系列实验AJAX Security

    WebGoat系列实验AJAX Security DOM Injiction 实验对象是一个接受激活密钥后允许你访问的系统,实验目标是尝试将激活按钮变得可以点击. 直接修改页面代码激活按钮,Chrom ...

  8. Axure RP7.0移动互联网产品原型设计 中文pdf扫描版

    移动互联网原型设计,简单来说,就是使用建模软件制作基于手机或者平板电脑的App,HTML 5网站的高保真原型.在7.0 之前的版本中,使用Axure RP进行移动互联网的建模也是可以的.比如,对于桌面 ...

  9. javascript 获取标签内的内容

    js 获取标签内的内容 参考:这篇博客给了我很大的启发. http://www.cnblogs.com/breakdown/archive/2012/10/09/2716221.html 我遇到的问题 ...

  10. Python 利用循环画散点图

    import pandas as pd data = pd.read_csv('D:/suning/iris.csv') data = data.iloc[:,1:] ###2维散点图 import ...