参考:http://www.cnblogs.com/likwo/p/3154868.html
实验环境:Ubuntu 14.04 VMware虚拟机1. 安装
apt-get install vsftpd
2. 创建用户、目录
创建FTP目录
# mkdir /srv/ftp/data
注:/srv/ftp/ 默认创建
创建FTP用户
# useradd -d /srv/ftp/data/ -s /usr/sbin/nologin -M pwftp
注:
-d :指定用户家目录,
-s:指定用户登入后所使用的shell,/usr/sbin/nologin即为不允许登录,
-M:不要自动建立用户的登入目录,即不复制默认用户文件等。
添加密码
# passwd pwftp
更改分享目录所属
# chown -R pwftp.pwftp /srv/ftp/data/
3. 配置vsftp
# vi /etc/vsftpd.conf
将配置文件中”anonymous_enable=YES “改为 “anonymous_enable=NO”
取消如下配置前的注释符号:
local_enable=YES
write_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
保存退出
编辑/etc/vsftpd.chroot_list文件,将ftp的账户名(pwftp)添加进去,保存退出.
注意:每个账户名独占一行。
若无此文件,则创建
# vi /etc/vsftpd.chroot_list
pwftp
4. 配置防火墙
在配置文件/et/vsftpd.conf中,有这样的配置:
所以,需要同时开启20,21两个端口。
# ufw allow 20
# ufw allow 21
此命名同时开启20,21的tcp和udp协议的端口,也可执行协议端口。
# ufw allow 21/tcp
5. 修改shell配置
编辑/etc/shells,如果该文件里没有/usr/sbin/nologin 或者/sbin/nologin(具体看当前系统配置)则追加进去
# vi /etc/shells
5. 重启服务
# service vsftpd restart
6. 客户端连接
1)Linux
以本机为例:
# ftp localhost
连接本机ftp服务。提示登录用户名,及其密码。
输入:pwftp 及密码
输入:
pwd :查看当前目录
ls : 查看目录
上传文件:put local-file [remote file]
在/tmp/下,存在文件test
ftp> put /tmp/test /srv/ftp/data/test
其他命令,请自行查阅
2)Windows
使用Xftp、WinSCP、Filezila等客户端进连接。下以Xftp为例:
打开终端
点击上图按钮,新建或打开已有会话。
选项注解:
名称:即为会话名称,以区分其他连接
主机:即为目标主机的主机名或IP
协议:即为使用的协议,默认FTP,SFTP建立在SSH基础之上,加密传输。
端口:FTP使用21,SFTP使用22
代理服务器:无
说明:对该会话连接做说明
登录选型:
匿名登录: 需要主机配置,在主机配置文件中/etc/vsftpd.conf中。
默认不允许,不安全。
方法:默认为Password,密码登录
用户名:即上述创建的用户,pwftp
密码:即为用户pwftp的密码
参考下图,实际配置:
连接后,显示内容:
测试:
在主机分享目录(/srv/ftp/data)下创建文件,Xftp中显示。如下图所示:
在分享目录中创建文件text.txt,同时在Xftp会话中刷新,即可看见新建文件。
如有不当之处,请不吝指正!!