当前位置: 首页 > news >正文

centos中安装并设置vsftpd

vsftpd是一个可安装在linux上的ftp服务器软件。

一、安装

安装前保证服务器能上互联网。如果不能上网,看看能不能设法利用局域网代理上网。

sudo yum -y install vsftpd

二、配置

1、修改配置文件

cd /etc/vsftpd
#修改之前记得备份!!!
sudo cp vsftpd.conf vsftpd.conf.bak
sudo vi vsftpd.conf

修改内容:

#取消匿名访问
anonymous_enable=NO
#添加以下内容
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

#通过搭配能实现以下几种效果: 
#①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。 
#②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。 
#③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。 
#④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

#不添加下面这个会报错? 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
allow_writeable_chroot=YES
#ftp端口设为50021
listen_port=50021

#启动被动式联机(passivemode)
pasv_enable=YES
#上面两个是与passive mode 使用的 port number 有关,如果您想要使用55400到55410 这 11 个 port 来进行被动式资料的连接,可以这样设定
pasv_min_port=55400
pasv_max_port=55410

#FTP访问目录
local_root=/home/admin/ftp/

#禁用DNS反向解析,防止FTP登录时间太长而失败
reverse_lookup_enable=NO

参考文章:Centos7安装搭建FTP服务器(最简便方法)

2、开放端口

在操作系统命令行中,

#添加主端口
sudo firewall-cmd --zone=public --add-port=50021/tcp --permanent
#添加被动端口
sudo firewall-cmd --zone=public --add-port=55400-55410/tcp --permanent
#刷新
sudo firewall-cmd --reload

确认一下端口是否已经开通了

sudo firewall-cmd --query-port=50021/tcp
sudo firewall-cmd --list-ports

3、设置开机启动vsftpd

sudo systemctl enable vsftpd.service
sudo systemctl start vsftpd.service
sudo systemctl status vsftpd.service

4、启动与重启vsftpd

如果要手动启动或重启vsftpd,可以采用如下命令:

sudo systemctl start vsftpd.service
sudo systemctl restart vsftpd.service

5、创建账号

创建一个名为“FTP_USER”的账号,该账号的主目录为“/home/admin/ftp/”,并且它没有登录权限(不能通过 shell 登录):限制它的登录 shell 为 /sbin/nologin。

#创建账号
sudo useradd -d /home/admin/ftp/ -s /sbin/nologin FTP_USER
#设置密码
sudo passwd FTP_USER
#输入和确认密码

“/sbin/nologin”并非系统提供的shell,我们要手动加进去。打开/etc/shells,在最后加入一行:/sbin/nologin

sudo vi /etc/shells

注: “/sbin/nologin” 这个名字能不能换还是另有玄机,不清楚,没有做测试。

6、ftp文件夹赋权

sudo chmod 755 /home/admin
sudo chmod 755 /home/admin/ftp
sudo chown -R FTP_USER /home/admin/ftp
sudo cp user_list chroot_list

三、测试

随便用一个ftp客户端访问测试是否连接成功即可!我用的是FileZilla Client。
在这里插入图片描述

四、登录FTP时间太长的问题

刚搭建好vsftpd时,我在本地局域网内连接,虽然登录有点慢,但能成功连接。而外网用户通过ftp客户端软件却无法登录,不过用IE可以连接上,而时间就非常慢。后来将在vsftpd.conf中加入一句,问题解决:

#禁用DNS反向解析
reverse_lookup_enable=NO

原因是与ssh一样,vsftp的配置文件默认开启了DNS反向解析,禁用就好了。当然,这句话我是抄过来的,还不明白是什么意思。
参考文章:
vsftp登录时间太长的解决办法

相关文章:

  • 摄像头数据分别传入两个bram中 Verilog代码
  • A45 STM32_HAL库函数 之 SMARTCARD通用驱动 -- A -- 所有函数的介绍及使用
  • git使用摘樱桃的方式,实现特定需求进行提交合并
  • SpringBoot接入RS-232串口通讯实现数据交互
  • ORA-12560: TNS:协议适配器错误
  • java遇到问题 不行就 重启项目 清理缓存 在别人电脑试试
  • MySQL常见面试题自测
  • 062、Python 解决命名冲突的两种方式
  • 游戏心理学Day18
  • Rocketmq的坑又来了
  • 全网最全 Kimi 使用手册,看完 Kimi 效率提升 80%
  • 持续总结中!2024年面试必问 20 道设计模式面试题(三)
  • 我用chatgpt写了一款程序
  • 算法训练营day51
  • git pull的使用方法
  • 程序性能优化——接口性能优化总结和思考
  • HTML 颜色名
  • 为什么选择Python作为AI开发语言
  • Anvil Empires/铁砧帝国操作没反应、频繁掉线怎么办?
  • Python第二语言(十二、SQL入门和实战)
  • 工程院院士葛世荣获聘任为江西理工大学校长
  • 竞彩湃|霍芬海姆看到保级曙光,AC米兰专注于意大利杯
  • 陈丹燕:赤龙含珠
  • 马上评|不再提“智驾”,新能源车企回归理性
  • 金球看淡,不服就干!这是抬不起腿却昂着头的劳塔罗
  • 央行:将支持资本市场两项货币政策工具的额度合并使用