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. 我们为什么要在C++中使用虚函数

    类中的成员函数分为静态成员函数和非静态成员函数,而非静态成员函数又分为普通函数和虚函数. 至于为什么虚函数必须是非静态成员函数,可以看一下:http://blog.csdn.net/leiming32 ...

  2. 利用General框架进行三层架构开发

    三层架构是企业信息管理系统中一种比较流行的架构方式,如大家所知,三层架构将信息系统分为数据访问层(DAL).业务逻辑层(BLL).界面表示层(UI)三部分,三层架构的好处是根据系统中代码所处的层次将系 ...

  3. noi.ac day6t3 color

    传送门 分析 将询问离线,枚举右端点.新加入一个右端点i时,假设离i第t近的同色位置为p,t+1近的是q,则当i是右端点时,(q,p]的点可以作为左端点. 注意对于一个点离它第t近的同色点可以用队列维 ...

  4. Shell表达式,如${file##*/}

    Shell表达式,如${file##*/} 2017年10月26日 15:24:40 阅读数:343 今天看一个脚本文件的时候有一些地方不太懂,找了一篇文章看了一些,觉得不错,保留下来. 假设我们定义 ...

  5. centos中JDK版本冲突的问题

    在centos环境下,我JDK版本安装了jdk6,jdk7.系统还自带了一个JDK7. 我在查看JDK版本是,发现不是我在/etc/profile中配置的. 1:which java 查看Java的命 ...

  6. Unknown storage engine 'InnoDB'

    报错情况:在导入数据时候发现找不到InnoDB这个错误,之前查看博客时候明白了IsAsm数据库和InnoDB这两个的区别了. 解决方案: 尝试一:将my.ini配置文件的isasm改成InnoDB.这 ...

  7. 对C语言中static的理解

    对C语言中的static关键字的深入理解 在一次面试的时候面试官问我static全局变量与全局变量的区别,之前虽然用过但是并没仔细去搞懂他,这次来细心的学习一下. 基本概念 使用static有三种情况 ...

  8. CentOS使用NTFS-3G加载NTFS硬盘

    CentOS使用NTFS-3G加载NTFS硬盘 CentOS 挂载NTFS格式硬盘时会报错unknown filesystem type 'ntfs',这时就需要用到第三方的插NTFS-3G来加载NT ...

  9. scikit-learn 机器学习库

    一 介绍 scikit-learn是Python的一个开源机器学习模块,它建立在NumPy,SciPy和matplotlib模块之上.值得一提的是,scikit-learn最先是由David Cour ...

  10. 使用Shader Graph实现《塞尔达传说:旷野之息》风格的着色器

    https://mp.weixin.qq.com/s/19Xq6wYuXP0gQJDvC9Fh0g