ftp服务器在Ubuntu 16.04上 安装


在xshell下查看是否安装ftp服务器

sudo apt-get update;sudo apt-get install vsftpd

查看ftp是否安装:

find / -name vsftpd*  或者用 rpm -qa | grep ftp

查看设置的端口,确认是否成功 

netstat -utlpn | grep vsftp  

netstat -na ftp 21

执行完该步骤,vsftpd服务已经安装


1、向文件中添加如下内容:


(a)修改ftp的配置文件

sudo vi /etc/vsftpd.conf

限制ftp用户只能在其主目录下的活动范围,详解(http://blog.csdn.net/bluishglc/article/details/42398811)

#所有用户都被限制在其主目录vsftpd.chroot_list下

chroot_local_user=YES

#是否可以添加特例,即在/etc/vsftpd.chroot_list下的用户不会被限制

chroot_list_enable=YES

# (default follows)

chroot_list_file=/etc/vsftpd.chroot_list


userlist_enable和userlist_deny两个配置项的解释http://blog.csdn.net/bluishglc/article/details/42273197


#开启允许登录的用户 vsftpd.user_list

userlist_enable=YES

userlist_deny=NO #user_list是一个白名单,为YES是一个黑名单

userlist_file=/etc/vsftpd.user_list

seccomp_sandbox=NO

local_enable=YES #设置文件上传 write_enable=YES #使用utf8

utf8_filesystem=YES

allow_writeable_chroot=YES

#设置根目录

local_root=/home/ftproot  #要开启该目录的读写权限 sudo chmod -R 777 /home/ftproot 


 ftp服务器在Ubuntu 16.04上 安装

使文件中的"local_enable=YES"保存。

(b)新建用户(我的用户名ftpuser) (删除用户sudo userdel -r wttftp 

第一步:新建目录/home/uftp作为用户主目录

sudo mkdir /home/ftpuser

ftp服务器在Ubuntu 16.04上 安装
   
第二步:新建用户uftp,制定用户主目录和所用shell,并设置密码    

sudo useradd -d /home/ftpuser -s /bin/bash ftpuser

sudo passwd ftpuser

ftp服务器在Ubuntu 16.04上 安装然后将目录/home/uftp的所属者和所属组都改为uftp:

sudo chown ftpuser:ftpuser /home/ftpuser


(c)新建/etc/vsftpd.user_list文件和/etc/vsftpd.chroot_list

在ect目录下,sudo touch vsftpd.user_list

编辑 sudo vi /etc/vsftpd.user_list

用于存放允许访问ftp的用户,那么输入用户1  用户2-->保存OK!以后还有其它用户使用ftp时直接添加用户名就可以了!


在ect目录下,sudo touch vsftpd.chroot_list

编辑 sudo vi /etc/vsftpd.chroot_list

添加不会被限制在主目录下的用户ftpwtt和uftp,那么输入ftpwtt,uftp-->保存以后还有其它用户使用ftp时直接添加用户名就可以了!


(d)使用gedit查看/etc/ftpusers文件中的内容(黑名单文件)

sudo vi /etc/ftpusers


该文件保存的是黑名单用户,不想在黑名单中,就去掉


2. 启动停止重启服务

sudo /etc/init.d/vsftpd start

sudo /etc/init.d/vsftpd stop

sudo /etc/init.d/vsftpd restart

3. 访问ftp服务器

sudo ftp 127.0.0.1


浏览器访问 

ftp://127.0.0.1 


或者 

ftp://localhost


远程访问时使用实际ip:  ftp://your_ip 

4. windows下简单有效地访问ftp服务器

我们有三种方式可以访问(假设服务器ip地址是:172.16.23.33)

(1)浏览器

在浏览器中输入ftp://172.16.23.33,运行结果如下:

ftp服务器在Ubuntu 16.04上 安装

(2)使用文件传输软件(比如8uftp):

ftp服务器在Ubuntu 16.04上 安装

按道理讲,访问权限仅限于xuanxufeng这个用户的主目录,但是这个软件真特么的强大,它竟然能越过我的主目录,访问整个系统!好怕怕=。=

另外,这里有乱码的问题,由于本篇文章的重点不在这,我也懒得管这个了,有兴趣的读者可以自己去试着去解决一下。

(3)最后,我来介绍一个最方便的方法~ Windows其实还挺方便的,也不是一无是处哈~

双击“计算机”,在地址栏输入:ftp://172.16.23.33/,然而并没有什么卵用....

ftp服务器在Ubuntu 16.04上 安装

不要着急嘛~ 右击一下,选择登陆~~~

ftp服务器在Ubuntu 16.04上 安装

 ftp服务器在Ubuntu 16.04上 安装

ftp服务器在Ubuntu 16.04上 安装

现在是不是进来了呢?这个其实就对应Linux下xuanxufeng这个用户的主目录了!剩下的文件上传和下载就和Windows下文件操作一样了,是不是很方便!

 

---------------------------------我是分割线---------------------------------

 

好了,服务器搭建基本完成,以后服务器每多一个用户,就创建一个用户,然后在/etc/allowed_users中把这个用户添加进来就OK啦!



安装过程遇到问题及解决方法:

1.如果配置文件中有空格,将会报错,例子,etc/vsftpd.conf文件中有空格,执行sudo /etc/init.d/vsftpd start   ftp服务器无法启动,解决方法执行/usr/sbin/vsftpd 会提示在哪一行报错


2. vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误的解决方法

http://blog.csdn.net/bluishglc/article/details/42399439

当我们限定了用户不能跳出其主目录之后,使用该用户登录FTP时往往会遇到这个错误:从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。

 要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列两项中的一项:

allow_writeable_chroot=YES