solo_882 发表于 2015-11-6 11:55:26

Ubuntu15.04中FTP-vsftp配置

第一步、用apt-get工具安装vsftpd :
sudo apt-get install vsftpd
第二步、配置FTP
配置是在/etc/vsftpd.config。我们通过下边命令,用vi打开配置文件(ps:当前操作的都是系统文件,命令前要加sudo才可以修改)。
sudo vi /etc/vsftpd.conf
或者使用gedit打开:
sudo gedit /etc/vsftpd.conf

查找到下面的行,并改成下面这种形式:
local_enable=yes //允许本地用户登录
write_enable=yes //允许上传文件

anonymous_enable=YES//允许匿名访问

保存并退出。
  第三步、重启FTP服务,使修改后的配置文件有效
  重启服务的命令:
  sudo /etc/init.d/vsftpd restart
  报错:sudo:/etc/init.d/vsftpd: command not found.
  原因:Ubuntu14.04以上版本使用命令 sudo restart vsftpd 代替上述命令。
  结果还是报错:Start: Unable To Connect To Upstart: Failed To Connect To Socket /Com/Ubuntu/Upstart: ConnectionRefused
这跟upstart有关系。找了不少博客帖子,找到了解决方法:

命令如下:
sudo dpkg-divert --local --rename --add /sbin/initctl
sudo ln -s /bin/true /sbin/initctl
然后,重启ftp服务:
sudo restart vsftpd
成功。
关于命令sudo:/etc/init.d/vsftpd: command not found.为何无法使用及 sudo restart vsftpd命令报错原因参考博客http://blog.iyunv.com/quqi99 ,我就不再一一叙述。
第四步、测试ftp服务器


新建"/home/ftp"目录作为用户主目录
打开"终端窗口",输入"sudo mkdir /home/ftp"-->回车-->输入"sudo ls /home"-->回车-->有一个ftp目录,目录新建成功。
添加用户ftpuser,打开"终端窗口",输入"sudo useradd -d /home/ftp -s /bin/bash ftpuser"
输入"sudo passwd ftpuser"设置ftpuser用户的密码。
输入命令:ftp 127.0.0.1 结果报错如图:


尝试了很多解决方法,最终才找到原因(可能你跟我的出错原因不同),解决办法:
启动服务:
sudo service vsftpd start         

sudovsftpd & //查看是否在跑进程

  报错:
  http://blog.iyunv.com/u014552726/article/details/

  提示配置文件里的listen未打开,那么就打开配置文件将listen=NO改为
  listen=YES

  继续sudo vsftpd &//查看是否在跑进程

  报错:
  http://blog.iyunv.com/u014552726/article/details/

  提示说ipv4和ipv6两个都在运行500错误,说实话我不懂怎么让ipv4和ipv6同时跑,反正我也用不着,果断把ipv6关了找原因。
  listen_ipv6=NO

  
  继续 sudo vsftpd &//查看是否在跑进程

  ok!成功。
http://blog.iyunv.com/u014552726/article/details/

那么我就继续来ftp 127.0.0.1下试试:  http://blog.iyunv.com/u014552726/article/details/

  可以链接了,但是却又出了新错误:
  500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed.
421 Service not available, remote server has closed connection

  打开配置文件,那么可能原因出在这里:
  
#chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list


#说明我们要指定一个userlist,里边放的是允许ftp登陆的本地用户。
userlist_deny=NO
userlist_enable=YES

#记录允许本地登陆用户名的文件
userlist_file=/etc/vsftpd.chroot_list
  好的,那么我就继续来ftp 127.0.0.1下试试:
  
root@server:~$ ftp localhostConnected to localhost.220 (vsFTPd 3.0.2)Name (localhost:root): ftpuser331 Please specify the password.Password:530 Login incorrect.Login failed.ftp> 221 Goodbye.等等,怎么又出错了!530 Login incorrect.  
  再一次找解决办法:
  etc下面有个pam.d文件夹
进去打开vsftpd这个文件, 发现里面对之前的用户进行了限制,
将里面对应的限制注释掉,问题解决。

  # pam_ftp.so.

那好,把它注释掉。重启ftp,ftp localhost 。。。。等等,还是530 Login incorrect. 哦shit!既然有限制,因为ubuntu启用了PAM,所在用到vsftp时需要用到/etc/pam.d/vsftpd 这个文件(默认源码安装的不会有这个文件),因此除了匿名用户外本地用户无法登录。那好,咱就来个狠的,把vsftpd卸载,然后直接删除pam.d中对vsftpd的限制文件,然后重装vsftpd

sudoapt-get remove vsftpdsudorm/etc/pam.d/vsftpdsudoapt-getinstallvsftpd  
再次启动服务:
sudo service vsftpd start      

sudo vsftpd &//查看是否在跑进程
结果提示:无法绑定到ipv4的套接字,这应该是上一次的ftp服务没有终止,21端口已经被绑定的缘故,那我就直接重启吧,省事。
重启后,继续测试ftp127.0.0.1,输入用户名密码 OK! 成功!




         版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: Ubuntu15.04中FTP-vsftp配置