linux搭建ftp服务器

1.安装vsftpd

1.1先查看系统是否已安装vsftpd

rpm -q vsftpd

linux搭建ftp服务器

上图表示未安装vsftpd

1.2安装vsftpd

yum install -y vsftpd

安装完成后再查看如下图

linux搭建ftp服务器

1.3启动vsftpd

systemctl start vsftpd

查看服务状态

systemctl status vsftpd.service

linux搭建ftp服务器

1.4设置开机自启动

systemctl enable vsftpd

1.5创建ftp根目录

mkdir -p /user/local/ftp

2.修改配置文件

cd /etc/vsftpd

vim vsftpd.conf


将配置修改为这样,不存在的就添加

#禁止匿名访问
  anonymous_enable=NO
  anon_upload_enable=NO
  anon_mkdir_write_enable=NO
  anon_other_write_enable=NO


  chroot_list_enable=NO           // 不允许用户离开自己的主目录
  chroot_list_file=/etc/vsftpd.chroot_list   // 虚拟用户列表,每行一个用户名
  local_enable=YES               // 允许本地用户访问
  write_enable=YES              // 允许本地用户写入
  local_umask=022              // 上传后的文件的默认掩码
  chroot_local_user=YES            // 禁止本地用户离开自己的主目录
  pam_service_name=vsftpd.vu        // 权限验证需要的加密文件
  guest_enable=YES              // 开启虚拟用户功能
  guest_username=ftp            // 虚拟用户的宿主目录
  virtual_use_local_privs=YES        // 用户登录后操作目录和本地用户权限一样
  user_config_dir=/etc/vsftpd/vconf     // 虚拟用户主目录设置文件
  allow_writeable_chroot=YES        // 允许写入用户主目录,这条特别重要


3.添加用户,创建用户文件

3.1 

新建文件vsftpd.chroot_list

 vim /etc/vsftpd.chroot_list

添加内容,每个用户一行,保存退出

user1

user2

3.2 在ftp根目录下创建用户目录

mkdir -p /usr/local/ftp/user1 /usr/local/ftp/user2

3.3修改用户目录权限

chmod –R 755 /usr/local/ftp/user1 /usr/local/ftp/user2


4.创建用户密码和数据库

4.1 

新建文件vusers.list

vim /etc/vsftpd/vusers.list

添加内容,一行用户名,一行密码,保存退出

user1

123456

user2

123456

4.2 

如果没有db_load这个命令,先安装,安装前先查询一下

yum search db4

linux搭建ftp服务器

安装这个

yum install compat-db47.x86_64

4.3 生成db文件

cd /etc/vsftpd

db_load –T –t hash –f vusers.list vusers.db

生成后可以看到目录下有vusers.db这个文件

设定PAM验证文件,并指定对虚拟用户数据库文件进行读取

chmod 600 vusers.*

5. 指定认证方式

vim /etc/pam.d/vsftpd.vu

注意:这里是新建文件,不是修改vsftpd文件

添加以下内容

#%pam-1.0

auth required pam_userdb.so db=/etc/vsftpd/vusers

account required pam_userdb.so db=/etc/vsftpd/vusers


6.创建虚拟用户个人配置文件

mkdir -p /etc/vsftpd/vconf

cd /etc/vsftpd/vconf

touch user1

vim user1

添加以下内容

local_root=/usr/local/ftp/user1

7.重启服务systemctl restart vsftpd

8.验证

8.1 本机访问

如果提示  -bash: ftp: 未找到命令

先安装

yum -y install ftp

访问

ftp localhost

linux搭建ftp服务器

成功访问如上图,会让你输入用户名和密码

退出ftp命令:exit或quit

8.2 远程访问

可以在windows上的“计算机”的地址栏输入ftp://ip地址

如果访问失败,检查防火墙状态

systemctl status firewalld

linux搭建ftp服务器

上图表示防火墙开启

可以关闭防火墙

systemctl disable firewalld

或者把ftp的端口加入防火墙的白名单

firewall-cmd --zone=public --add-port=21/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)

重启防火墙

firewall-cmd --reload

回到windows上再次访问,可能会出现下面提示

linux搭建ftp服务器

进入IE--Internet选项--高级,把”使用被动FTP(为防火墙和DSL调制解调器兼容性)“前面的勾去掉,再访问,成功

linux搭建ftp服务器