Ubuntu 搭建Ftp服务器

一、搭建服务器

1、准备工作

(1)给服务器创建一个目录

mkdir /home/ftpServer/ftprepository

(2)创建匿名访问目录
新建一个目录anonymous,用来存放用户上传的文件,并修改目录的权限:

cd /home/ftpServer/ftprepository
mkdir anonymous
chmod 755 anonymous

在ftpftprepository目录下创建一个普通文件,用来做下载测试,如test.txt(假如其内容为:HelloWorld):

touch test.txt
echo "HelloWorld' > test.txt

(3)创建用户访问目录

cd /home/ftpServer/ftprepository
mkdir FAE
chmod 777 anonymous

2、安装ftp服务器

apt-get install vsftpd

3、配置vsftpd.conf文件

vi /etc/vsftpd.conf

(1)设置匿名用户
修改以下设置,允许匿名用户:

write_enable=YES
anonymous_enable=YES
no_anon_password=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_root=/home/ftpServer/ftprepository/anonymous

(2)限制用户只能访问有权限的目录

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

(3)开启允许ftp用户访问列表

userlist_enable=YES
userlist_deny=NO

(4)防止报500错误

seccomp_sandbox=NO

(5)保存退出

4、创建登录用户

(1)添加用户

useradd -d /home/ftpServer/ftprepository -s /bin/bash ftpuser

(2)设置用户密码

passwd ftpuser

(3)设置ftp目录用户权限

chown ftpuser:ftpuser /home/ftpServer/ftprepository

(4)添加vsftpd 登录用户
#新建文件/etc/vsftpd.user_list,用于存放允许访问ftp的用户:

touch /etc/vsftpd.user_list 
vim /etc/vsftpd.user_list

在/etc/vsftpd.user_list中添加允许登录ftp的用户ftpuser

(5)添加vsftpd登录用户对目录树的权限
新建文件/etc/vsftpd.chroot_list,设置可列出、切换目录的用户:

touch /etc/vsftpd.chroot_list 
vim /etc/vsftpd.chroot_list

5、重启服务器

重新加载/etc/vsftpd.conf 配置文件

/etc/init.d/vsftpd restart

二、遇到的问题

1、无法登录:ftp: connect: Connection refused

从头到位检查了好几遍,后来发现是,同时ipv4和ipv6同时运行服务器报错。vsftpd.conf文件里的#listen_ipv6=YES被取消注释了。于是将上面那句注释掉,就可以了。我的网是ipv6的,但是注释掉不影响,依然可以ipv4和ipv6都可以。但是如果listen=YES和listen_ipv6=YES同时在就会报错。

2、客户端登录ftp服务器时会报FTP over TLS警告。

登录后状态提示的错误内容。在网上找到了一个回答:在Linux终端中把ftp_home_dir这个状态开启。

apt-get install policycoreutils
setsebool ftp_home_dir = 1
sestatus -b|grep ftp			//执行这步后会看到:ftp_home_dir on
service vsftpd restart

你可能感兴趣的:(开发工具,Linux系统环境,服务器,ubuntu,linux)