凌峰创科服务平台

linux 设置ftp服务器

在Linux系统中设置FTP服务器是一个常见的需求,通常用于文件传输和共享,以下是详细的步骤和配置方法,以vsftpd(very secure FTP daemon)为例进行说明,vsftpd是Linux系统中广泛使用的FTP服务器软件,以其安全性和稳定性著称。

linux 设置ftp服务器-图1
(图片来源网络,侵删)

确保系统已安装vsftpd,在基于Debian或Ubuntu的系统上,可以使用apt命令安装,执行sudo apt update更新软件包列表后,运行sudo apt install vsftpd即可完成安装,对于基于CentOS或RHEL的系统,则需使用yum命令,执行sudo yum install vsftpd,安装完成后,启动vsftpd服务并设置开机自启,命令分别为sudo systemctl start vsftpdsudo systemctl enable vsftpd

进行基本配置,vsftpd的主配置文件位于/etc/vsftpd.conf,使用sudo nano /etc/vsftpd.conf打开文件进行编辑,以下是一些关键配置项及其说明:

  • anonymous_enable=NO:禁用匿名登录,提高安全性;
  • local_enable=YES:允许本地用户登录;
  • write_enable=YES:允许本地用户上传文件;
  • chroot_local_user=YES:将用户限制在其主目录下,防止访问系统其他文件;
  • allow_writeable_chroot=YES:允许被限制在主目录下的用户有写权限(需配合chroot_local_user使用);
  • pasv_enable=YES:启用被动模式,便于客户端通过防火墙连接;
  • pasv_min_port=10000pasv_max_port=10100:设置被动模式使用的端口范围,避免与其他服务冲突;
  • user_sub_token=$USERlocal_root=/home/$USER/ftp:为每个用户创建独立的FTP目录,例如用户test的FTP目录为/home/test/ftp

配置完成后,保存文件并退出,创建FTP用户目录并设置权限,为用户test创建目录,执行sudo mkdir -p /home/test/ftp,并设置所有者为test用户,命令为sudo chown -R test:test /home/test/ftp,确保目录权限为755,执行sudo chmod -R 755 /home/test/ftp

防火墙配置也是重要环节,在Ubuntu系统中,使用sudo ufw allow 20:21/tcp开放FTP默认端口20和21,以及被动模式端口范围,执行sudo ufw allow 10000:10100/tcp,在CentOS系统中,则需使用sudo firewall-cmd --permanent --add-port=20:21/tcpsudo firewall-cmd --permanent --add-port=10000:10100/tcp,然后执行sudo firewall-cmd --reload重新加载防火墙规则。

重启vsftpd服务使配置生效,命令为sudo systemctl restart vsftpd,可以使用FTP客户端工具(如FileZilla)测试连接,输入服务器IP地址、用户名和密码,若能成功登录并传输文件,则说明配置成功。

以下为vsftpd常用配置项及作用说明表:

配置项 作用 推荐值
anonymous_enable 是否允许匿名用户登录 NO
local_enable 是否允许本地用户登录 YES
write_enable 是否允许文件写入 YES
chroot_local_user 是否将用户限制在主目录 YES
pasv_enable 是否启用被动模式 YES
pasv_min_port 被动模式最小端口 10000
pasv_max_port 被动模式最大端口 10100

相关问答FAQs:

  1. 问题:如何禁止特定用户访问FTP服务器? 解答:可以通过编辑/etc/vsftpd.user_list文件实现,确保/etc/vsftpd.conf中配置了userlist_enable=YESuserlist_file=/etc/vsftpd.user_list,然后编辑/etc/vsftpd.user_list文件,将需要禁止的用户名添加到文件中,每行一个用户名,保存后重启vsftpd服务即可。

  2. 问题:FTP连接时提示“530 Login incorrect”错误怎么办? 解答:此错误通常由用户名或密码错误导致,首先检查用户名和密码是否正确,确认用户是否已创建且具有登录权限,检查/etc/vsftpd.conf中的local_enable是否设置为YES,若问题仍未解决,可查看/var/log/vsftpd.log日志文件,根据错误信息进一步排查,例如是否因防火墙或SELinux阻止了连接。

分享:
扫描分享到社交APP
上一篇
下一篇