前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux搭建FTP服务器

Linux搭建FTP服务器

原创
作者头像
用户6914340
修改2021-10-09 10:20:56
15.6K0
修改2021-10-09 10:20:56
举报

系统版本:CentOS 8.2

FTP服务端及客户端安装

代码语言:javascript
复制
dnf install vsftpd lftp

启动FTP服务并开机自启动

代码语言:javascript
复制
systemctl enable vsftpd --now

FTP配置文件在/etc/vsftpd/下

注:ftpusers和user_list两个文件可理解为vsftp的黑名单,可在vsftpd.conf中开启userlist_deny参数即可生效,无论如何,我们创建的ftp用户不在这两个文件中即可保证可以正常使用。

创建ftp用户

代码语言:javascript
复制
useradd -s /sbin/nologin/ ftpuser
passwd ftpuser

修改ftp默认共享目录

ftp默认共享目录为:/var/ftp/pub

试验修改为/var/ftp/ftppub目录

  1. 创建ftppub目录

mkdir /var/ftp/ftppub

  1. 修改文件夹属主为ftpuser

chown -R ftpuser:ftpuser /var/ftp/ftppub

编辑vsftpd配置文件

  1. 修改以下配置参数,设置匿名用户和本地用户的登录权限,设置指定例外用户列表文件的路径,并开启监听 IPv4 sockets
代码语言:javascript
复制
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
  1. 在行首添加 #,注释 listen_ipv6=YES 配置参数,关闭监听 IPv6 sockets。
代码语言:javascript
复制
#listen_ipv6=YES
  1. 添加以下配置参数,开启被动模式,设置本地用户登录后所在目录,以及云服务器建立数据传输可使用的端口范围值。
代码语言:javascript
复制
local_root=/var/ftp/ftppub
allow_writeable_chroot=YES      #NO为只读
pasv_enable=YES									#开启被动模式
pasv_address=xxx.xx.xxx.xx 			#修改为云服务器公网 IP
pasv_min_port=40000
pasv_max_port=45000
  1. 保存退出
  2. 执行以下命令,创建并编辑 chroot_list 文件。
代码语言:javascript
复制
vim /etc/vsftpd/chroot_list 

注:将ftp用户名填入此文件后用户即可随意切换目录,删除即会被锁定在自己规定的目录中(用户名填写一行一个)

  1. 重启vsftpd服务
  2. 放通安全组规则

需要放通20、21、还有配置文件中指定的端口范围即可

常见问题:

  1. 点击登录后无限重新弹出此界面,可能是因为客户端没有安装pam安全认证模块导致。

打开/etc/pam.d/vsftpd注释掉下图中两行后重启vsftpd服务即可解决。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档