VSFTPD配置文件详解

本文详细解析了VSFTPD的配置文件,涵盖默认配置、匿名用户设置、本地用户权限、传输模式、速度限制、超时策略、日志配置、工作模式及端口设定和FTP响应码等内容,为VSFTPD服务器的管理和优化提供全面指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、默认配置

#是否允许匿名用户登录(匿名用户使用的登陆名为ftp或anonymous,口令为空;不能离开匿名用户家目录/var/ftp,且只能下载不能上传)
anonymous_enable=YES

#是否允许本地用户登录(本地用户可以在自 己家目录中进行读写操作;本地用户在允许的情况下可以访问其它目录、上传、下载。)
local_enable=YES

#是否允许登陆用户有写权限,默认值为 YES。
write_enable=YES

2、配置文件格式

vsftpd.conf每一行即为一项设定。若是空白行或是开头为#的一行,将会被忽略。
option1=value1
option2=value2

3、匿名用户(anonymous)设置

#控制是否允许匿名用户登入,YES 为允许匿名登入,NO 为不允许。默认值为 YES。
anonymous_enable=YES/NO(YES)

#是否允许登陆用户有写权限。属于全局设置,默认值为 YES。
write_enable=YES/NO(YES)

#若是启动这项功能,则使用匿名登入时,不会询问密码。默认值为 NO。
no_anon_password=YES/NO(NO)

#定义匿名登入的使用者名称。默认值为 ftp。
ftp_username=ftp

#使用匿名登入时,所登入的目录。默认值为/var/ftp。注意 ftp目录不能是 777的权限属性,即匿名用户的家目录不能有 777的权限。
anon_root=/var/ftp

#如果设为 YES,则允许匿名登入者有上传文件(非目录)的权限,只有在 write_enable=YES时,此项才有效。当然,匿名用户必须要有对上层目录的写入权。默认值为 NO
anon_upload_enable=YES/NO(NO)

#如果设为 YES,则允许匿名登入者下载可阅读的档案(可以下载到本机阅读,不能直接在 FTP服务器中打开阅读)。默认值为 YES。
anon_world_readable_only=YES/NO(YES)

#如果设为 YES,则允许匿名登入者有新增目录的权限,只有在 write_enable=YES时,此项才有效。当然,匿名用户必须要有对上层目录的写入权。默认值为 NO。
anon_mkdir_write_enable=YES/NO(NO)

#如果设为 YES,则允许匿名登入者更多于上传或者建立目录之外的权限,譬如删除或者重命名。(如
果 anon_upload_enable=NO,则匿名用户不能上传文件,但可以删除或者重命名已经存在的文件;如
果 anon_mkdir_write_enable=NO,则匿名用户不能上传或者新建文件夹,但可以删除或者重命名已经
存在的文件夹。)默认值为 NO。
anon_other_write_enable=YES/NO(NO)

#设置是否改变匿名用户上传文件(非目录)的属主。默认值为 NO。
chown_uploads=YES/NO(NO)

#设置匿名用户上传文件(非目录)的属主名。建议不要设置为 root。
chown_username=username

#设置匿名登入者新增或上传档案时的 umask 值。默认值为 077,则新建档案的对应权限为 700。
anon_umask=077

#若是启动这项功能,则必须提供一个档案/etc/vsftpd/banner_emails,内容为 email address。若是
使用匿名登入,则会要求输入 email address,若输入的 email address 在此档案内,则不允许进入。
默认值为 NO。
deny_email_enable=YES/NO(NO)

#此文件用来输入 email address,只有在 deny_email_enable=YES时,才会使用到此档案。若是使用匿名登入,则会要求输入 email address,若输入的 email address 在此档案内,则不允许进入。
banned_email_file=/etc/vsftpd/banner_emails

4、本地用户设置

#控制是否允许本地用户登入,YES 为允许本地用户登入,NO为不允许。默认值为 YES。
local_enable=YES/NO(YES)

#当本地用户登入时,将被更换到定义的目录下。默认值为各用户的家目录。
local_root=/home/username

#是否允许登陆用户有写权限。属于全局设置,默认值为 YES。
write_enable=YES/NO(YES)

#本地用户新增档案时的 umask 值。默认值为 077。
local_umask=022

#本地用户上传档案后的档案权限,与 chmod 所使用的数值相同。默认值为 0666。
file_open_mode=0755

5、传输模式设置

#设置是否启用 ASCII 模式上传数据。默认值为 NO。
ascii_upload_enable=YES/NO(NO)

#设置是否启用 ASCII 模式下载数据。默认值为 NO。
ascii_download_enable=YES/NO(NO)

6、访问速率设置

#设置匿名登入者使用的最大传输速度,单位为 B/s,0 表示不限制速度。默认值为 0。
anon_max_rate=0

#本地用户使用的最大传输速度,单位为 B/s,0 表示不限制速度。预设值为 0。
local_max_rate=0

7、超时时间设置

#设置建立 FTP连接的超时时间,单位为秒。默认值为 60。
accept_timeout=60

#PORT 方式下建立数据连接的超时时间,单位为秒。默认值为 60。
connect_timeout=60

#设置建立 FTP数据连接的超时时间,单位为秒。默认值为 120。
data_connection_timeout=120

#设置多长时间不对 FTP服务器进行任何操作,则断开该 FTP连接,单位为秒。默认值为 300 。
idle_session_timeout=300

8、日志文件设置

#是否启用上传/下载日志记录。如果启用,则上传与下载的信息将被完整纪录在 xferlog_file 所定义的档案中。
xferlog_enable= YES/NO(YES)

#设置日志文件名和路径,默认值为/var/log/vsftpd.log。
xferlog_file=/var/log/vsftpd.log

#是否日志文件将会写成 xferlog的标准格式。
xferlog_std_format=YES/NO(NO)

#若启用此选项,所有的 FTP请求和响应都会被记录到日志中,默认日志文件在/var/log/vsftpd.log。
启用此选项时,xferlog_std_format不能被激活。这个选项有助于调试。默认值为 NO。
log_ftp_protocol=YES|NO(NO)

9、FTP的工作模式与端口设置

FTP工作模式PORT FTP(主动模式)和 PASV FTP(被动模式)。

#设置 FTP服务器建立连接所监听的端口,默认值为 21。
listen_port=21

#指定 FTP使用 20端口进行数据传输,默认值为 YES。
connect_from_port_20=YES/NO

#设置在 PORT方式下,FTP数据连接使用的端口,默认值为 20。
ftp_data_port=20

#若设置为 YES,则使用 PASV工作模式;若设置为 NO,则使用 PORT模式。默认值为 YES,即使用 PASV工作模式。
pasv_enable=YES/NO(YES)

#在 PASV工作模式下,数据连接可以使用的端口范围的最大端口,0 表示任意端口。默认值为 0。
pasv_max_port=0

#在 PASV工作模式下,数据连接可以使用的端口范围的最小端口,0 表示任意端口。默认值为 0。
pasv_min_port=0

10、响应码

110:新文件指示器上的重启标记
120:服务器准备就绪的时间(分钟数)
125:打开数据连接,开始传输
150:打开连接
200:成功
202:命令没有执行
211:系统状态回复
212:目录状态回复
213:文件状态回复
214:帮助信息回复
215:系统类型回复
220:服务就绪
221:退出网络
225:打开数据连接
226:结束数据连接
227:进入被动模式(IP 地址、ID 端口)
230:登录因特网
250:文件行为完成
257:路径名建立
331:要求密码
332:要求帐号
350:文件行为暂停
421:服务关闭
425:无法打开数据连接
426:结束连接
450:文件不可用
451:遇到本地错误
452:磁盘空间不足
500:无效命令
501:错误参数
502:命令没有执行
503:错误指令序列
504:无效命令参数
530:未登录网络
532:存储文件需要帐号
550:文件不可用
551:不知道的页类型
552:超过存储分配
553:文件名不允许
### VSFTPD配置文件参数详解 #### 用户访问控制 对于用户的访问控制,`/etc/vsftpd/user_list` 和 `/etc/vsftpd/ftpusers` 文件起着至关重要的作用。这些文件用于定义哪些用户能够或不能够通过 FTP 访问服务器[^1]。 - `userlist_enable=YES`: 启用此选项后,`user_list` 文件会被用来决定特定用户的访问权限。 - `userlist_deny=YES|NO`: 当设置为 `YES` 时,`user_list` 中列出的用户将被拒绝访问;而设为 `NO` 则意味着只有列表内的用户才能获得访问权。值得注意的是,在某些情况下,匿名用户也需要特别处理以确保其能否正常登录[^5]。 #### 路径解析特性 VSFTPD 支持特殊的路径解析功能,允许使用类似于 Unix 的波浪号 (`~`) 来指代用户的家目录。例如,`~chris/pics` 将指向 Chris 用户下的图片文件夹。不过需要注意的是,这一机制依赖于当前环境中有可用的 `/etc/passwd` 文件来进行用户名到实际路径之间的转换工作[^2]。 #### 数据传输模式设定 为了适应不同的网络条件并解决可能存在的防火墙问题,可以通过调整 `pasv_enable` 参数来开启被动模式 (Passive Mode) FTP 功能。在此模式下,客户端会主动发起一个新的连接请求至服务端指定的一个临时端口号上完成数据交换过程,而非遵循传统的主动模式中由服务器向客户机发送指令的方式[^3]。 ```bash # 示例:启用被动模式FTP pasv_enable=YES ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值