Ubuntu下公认最易上手的ftp软件是vsftpd,既然标题都说了是“简易”的,那么必然是用最大众的。。下面是正题

目标需求:搭建一个允许匿名/本地登录的FTP,并且支持上传/下载/修改功能,同时FTP的端口可自主决定,FTP的根目录可自主决定。

PS:部署过程中遇到任何问题可以先看看本文最下方的Note部分,也许你现在遇到的问题正是我曾经遇到而且解决了的^。。^

步骤一:安装vsftpd

sudo apt-get update   # 更新源

sudo apt-get install vsftpd   # 安装(安装后vsftpd默认立即启动,通过 ps -ef | grep vsftpd 看到已经启动的vsftpd)

这里补充一个 sudo apt-get purge vsftpd 用于彻底卸载vsftpd,以便不小心改乱的时候可以干净地重来

步骤二:准备FTP根目录

mkdir -p /xx/xx/foldername   # 创建文件夹,比如 mkdir -p /home/milk/FtpRootFolder

chmod 755 /xx/xx/foldername   # 将准备作为FTP根目录的文件夹使用权限改为755,这一步很关键,

# 因为vsftpd出于安全考虑不允许根目录权限完全开放,777会导致不显示

mkdir -p /xx/xx/foldername/games

chmod 777 /xx/xx/foldername/games   # 在FTP根目录文件夹下创建一个权限为777的文件夹,以后上传下载(游戏)都在这里进行

步骤三:开放防火墙端口

UFW 控制着一切的内外数据交互,必须过防火墙这一关,以下两法子而选一

(1)sudo ufw disable  #  推荐神经大条的使用,把防火墙废了,直截了当

(2)sudo ufw allow 20 以及 sudo ufw allow 21   # 允许ftp的两个经典端口通行

步骤四:编写vsftpd配置文件 vsftpd.conf

PS:vsftpd的配置选项相当多,下面只列出满足上面基本需求的必选项,有兴趣或者有其他特别需求的可以查看本文最下方的Reference列表

配置文件在 /etc/vsftpd.conf 建议在改动前先备份,原版配置文件只给出了一些常用的选项,其余大部分选项需要另外去查找并添加,下面是为了满足上面的要求的必须选项,有少数选项是原始配置文件里没有的,注意核对

listen=YES   # 开启独立监听模式

#listen_ipv6=YES    # 这个选项不能和listen同时为YES,这里因为不需要所以注释掉不管,具体功用请行google,很多地方都讲到

anonymous_enable=YES   #允许匿名访问

local_enable=YES   #允许本地访问

write_enable=YES   #允许本地访问者有写权限

local_umask=000   #本地访问者权限掩码最小化(相当与对于无权限限制,但是不等于直接开放权限)
anon_umask=000   #匿名用户权限掩码最小化

anon_upload_enable=YES   #匿名用户拥有上传权限

anon_mkdir_write_enable=YES   # 匿名用户拥有创建文件夹权限

anon_other_write_enable=YES   # 匿名用户拥有其他写权限,比如说删除

anon_world_readable_only=YES   # 匿名用户拥有完全的查看权限

dirmessage_enable=YES   # 动态目录信息

connect_from_port_20=YES   # 保证FTP数据交互接口为Port 20 (记得让 ufw 允许端口出入)

ftpd_banner=Welcome to blah FTP service.   # 欢迎标语,推荐有礼貌的使用

anon_root=/xx/xx/foldername   # 设置匿名用户的FTP根目录(所谓根目录就是等上来第一眼看到的目录。。)

local_root=/xx/xx/foldername   # 设置本地用户的FTP根目录 (默认目录貌似在。。。请另行google)

# listen_port=4783   # 设置监听端口(默认是端口21)

# listen_address=127.0.0.1   #设置本地监听IP,不是多网卡一般用不着

步骤五:开启/重启vsftpd服务使配置文件生效

sudo service vsftpd start   # 必须使用sudo,开启vsftpd服务(就是开启ftp嘛)

sudo service vsftpd restart   # 重启vsftpd服务,相当与先关闭再打开

sudo service vsftpd stop   #关闭vsftpd服务(ftp也要下班的)

PS:可以通过 netstat | grep :21 查看指定的FTP端口是否打开,通过 ps -ef | grep vsftpd 查看服务进程是否启动

步骤六:Share your small action movies with chick friends via vsftpd

Note:

1. 为什么报错说什么 not ... binding ipv4/ipv6 socket... 未能绑定ipv6和listen_ipv6=YES有关,至于ipv4嘛,貌似不影响使用

2. 运行 sudo service vsftped stop 结果爆出 stop: not instance: 其实你的vsftpd已经关了,用ps -ef | grep vsftpd 看看

3. sudo vsftpd 同样能启动vsftpd服务

4. 怎么无法上传也无法创建更无法删除?请仔细检查FTP文件夹的权限,给一个神经大条的建议:FTP根目录权限755,其余统统777,同时别忘了检查配置文件关于访问者权限的选项是否设置正确,啊啊啊,还有就是ufw防火墙也看看

Reference:

1. vsftpd 配置选项大全:http://blog.sina.com.cn/s/blog_590262b40101flrp.html 以及 http://os.51cto.com/art/200901/106622.htm

2. 关于查看进程和网络:http://forum.ubuntu.org.cn/viewtopic.php?t=463243

3. 关于设置本地访问用户账户:http://www.while0.com/36.html

4. 关于FTP根目录文件权限设置:http://m.blog.csdn.net/blog/li_yaya/7747052

5. 高级应用详细配置:http://blog.chinaunix.net/uid-526789-id-3773984.html

Ubuntu 14.10下搭建简易FTP服务器[vsftpd]的更多相关文章

  1. Ubuntu 14.10下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具)

    Ubuntu 14.10下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具) 最近因为项目关系,收朋友之托,想制作秀场网站,但是因为之前一直没有涉及到这 ...

  2. Ubuntu 14.04 下搭建SVN服务器 svn://

    Ubuntu 14.04 下搭建SVN服务器 svn:// 安装软件包: sudo apt-get install subversion 之后选择SVN服务文件及配置文件的放置位置.我放在了/srv下 ...

  3. Ubuntu 14.04 下搭建SVN服务器 (转载自 http://www.linuxidc.com/Linux/2015-01/111956.htm)-------------我所用到是红色字体

    http://www.linuxidc.com/Linux/2015-01/111956.htm Ubuntu 14.04 下搭建SVN服务器 svn:// 安装软件包: sudo apt-get i ...

  4. Ubuntu 14.10 下安装Ganglia监控集群

    关于 Ganglia 软件,Ganglia是一个跨平台可扩展的,高性能计算系统下的分布式监控系统,如集群和网格.它是基于分层设计,它使用广泛的技术,如XML数据代表,便携数据传输,RRDtool用于数 ...

  5. Ubuntu 14.10 下安装java反编译工具 jd-gui

    系统环境,Ubuntu 14.10 ,64位 1 下载JD-GUI,网址http://221.3.153.126/1Q2W3E4R5T6Y7U8I9O0P1Z2X3C4V5B/jd.benow.ca/ ...

  6. Ubuntu 14.10 下ZooKeeper+Hadoop2.6.0+HBase1.0.0 的HA机群高可用配置

    1 硬件环境 Ubuntu 14.10 64位 2 软件环境 openjdk-7-jdk hadoop 2.6.0 zookeeper-3.4.6 hbase-1.0.0 3 机群规划 3.1 zoo ...

  7. Ubuntu 14.10 下Hive配置

    1 系统环境 Ubuntu 14.10 JDK-7 Hadoop 2.6.0 2 安装步骤 2.1 下载Hive 我第一次安装的时候,下载的是Hive-1.2.1,配置好之后,总是报错 [ERROR] ...

  8. Ubuntu 14.10 下DokuWiki安装

    环境说明: Ubuntu 14.10 64位 1 下载DokuWiki:http://download.dokuwiki.org/ 2 解压到 /var/www/html下面 3 如果没有安装Apac ...

  9. Ubuntu 14.10 下Hadoop FTP文件上传配置

    最近老板提出一个需求,要用Hadoop机群管理生物数据,并且生物数据很多动辄几十G,几百G,所以需要将这些数据传到HDFS中,在此之前搭建了HUE用来图形化截面管理HDFS数据,但是有个问题,上面使用 ...

随机推荐

  1. Linux文件权限查看及修改命令chmod

    查看权限 Linux文件访问权限分为可读,可写和可执行三种. 可用ls -l命令查看,例: ls -l或者 ll 显示为 -r--r--r--. 1 root root 21 Jan 5 23:02 ...

  2. angular遇到问题

    一.一个js中只有一个angunlar.module,但可以有多个controller,从而控制多个不同的作用域,每个作用域都有独立的$scope.不同作用域之间又有$rootScope这个桥梁 二. ...

  3. Android中View类OnClickListener和DialogInterface类OnClickListener冲突解决办法

    Android中View类OnClickListener和DialogInterface类OnClickListener冲突解决办法 如下面所示,同时导入这两个,会提示其中一个与另一个产生冲突. 1i ...

  4. ubuntu-kylin16.04搭建lamp环境。

    首先下载安装apache2 输入:sudo apt-get install apache2 安装完毕后,在浏览器中输入:localhost 显示如下图,说明安装正确. 紧接着安装php7.0 输入:s ...

  5. cf#382div2

    A. 题意:字符串长度n,每次可向左向右跳k个格子.要求不能在障碍物处停留('#'),可以在空地处停留(' . ').给出字符串,从G开始,问能不能到达T. 分析:直接从G处开始向两边搜,如果能到T则 ...

  6. jmeter ForEach Controller学习

    ForEach Controller: foreach一般和用户定义变量一起使用,在用户定义变量中定义3个变量 foreach中输出变量名称(vname),这种方式可以生成一个vname的变量,点击运 ...

  7. mongodb语法备份(转)

    mongodb语法 MongoDB的好处挺多的,比如多列索引,查询时可以用一些统计函数,支持多条件查询,但是目前多表查询是不支持的,可以想办法通过数据冗余来解决多表查询的问题. 查询colls所有数据 ...

  8. scala 宏

    Scala开发团队正在将实验版宏指令加入到即将发行的2.10版中.Scala宏指令提供了编译时元编程的高级形式.Scala宏网站描述道: “宏指令显著简化了代码分析和代码生成,这使得它们成为处理大量现 ...

  9. restful 部署 PUT,DELETE 请求发生405 谓词Http不允许

    在部署Restful服务的时候,发现中间有个PUT请求的服务,报405 谓词HTTP 不允许解决方法:卸载WebDav 如果不行可以尝试下另一种方式:

  10. daydayup2 codeforces143C

    题意:给你n= (A - 1) × (B - 2) × (C - 2),求A*B*C的最大值和最小值 思路:要用好的姿势暴力 #include "stdio.h" #include ...