Advertisement

安装ftp服务器

阅读量:

安装ftp服务器

参考文档:https://gnu-linux.readthedocs.io/zh/latest/Chapter02/90_vsftpd.html

帆软文档:https://help.fanruan.com/finereport/doc-view-2790.html

基础环境

第一步:安装

复制代码
    编辑`/etc/vsftpd/vsftpd.conf`
    
    
    shell

第二步:配置环境
编辑/etc/vsftpd.conf

匿名用户登录最小配置

复制代码
    # 不以独立模式
    listen=NO
    # 支持 IPV6,如不开启 IPV4 也无法登录
    listen_ipv6=YES
    # 匿名用户登录
    anonymous_enable=YES
    # 系统用户登录
    local_enable=YES
    # 对文件具有写权限,否则无法上传
    write_enable=YES
    # 允许匿名用户上传文件
    anon_upload_enable=YES
    # 允许匿名用户新建文件夹
    anon_mkdir_write_enable=YES
    # 匿名用户删除文件和重命名文件
    anon_other_write_enable=YES
    # 匿名用户的掩码(022 的实际权限为 666-022=644)
    anon_umask=022
    # 匿名用户访问路径
    anon_root=/var/www/html/web
    # 指定端口号
    listen_port=5001
    # 使用主机时间
    use_localtime=YES
    pam_service_name=vsftpd
    
    
    properties
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-13/Qp1HoiUXfnaDlr89yEMLqWTYvAPB.png)

如果希望本地账户也可以登录需要将local_root目录改为:可读可写或者可读可写可执行(chmod 777 目录),这样这个目录就有足够权限去读写

配置相关

复制代码
    # ***********匿名用户相关***********
    # 允许匿名访问
    anonymous_enable=NO
    # 不允许匿名用户上传文件,需要配合write_enable=yes
    anon_upload_enable=NO
    # 允许匿名用户创建目录
    anon_mkdir_write_enable=NO
    # 控制匿名用户对文件和文件夹的删除和重命名(自己添加,没有该配置)
    anon_other_write_enable=NO
    # 匿名用户上传文件权限
    anon_umask=022
    # 允许写入操作,否则不能上传文件
    write_enable=YES
    # 匿名用户的根目录。这个非常重要
    anon_root=/var/www/html/web
    # 匿名用户不要密码就靠这个
    no_anon_password=YES
    # 匿名登录后的使用者
    ftp_username=ftpuser
    
    
    # 是否允许本地用户,如root用户登陆。默认允许
    local_enable=YES
    # 设置本地用户登录所在的目录。默认配置文件中没有该配置项,本地用户登录FTP服务器后所在的目录为所登录用户的主目录,
    # 如:对于root用户,则为/root目录,默认没有的
    local_root=/home/ftpuser
    # 本地用户上传文件权限
    local_umask=022
    
    
    # ******系统日志功能******
    # 是否激活目录欢迎信息功能
    dirmessage_enable=YES
    # 默认日志文件为 /var/log/vsftpd.log
    xferlog_enable=YES
    # 服务器上传、下载的日志存储路径
    xferlog_file=/var/log/vsftpd.log
    # 以 xferlog 格式记录日志文件
    xferlog_std_format=YES
    # 是否将日志写入系统日志中
    syslog_enable=NO
    
    
    # ******系统设置******
    # 指定端口号
    listen_port=2222
    # 是否开启监听
    listen=NO
    # 支持 IPV6,如不开启 IPV4 也无法登录
    listen_ipv6=YES
    # 数据传输中断间隔时间(以秒为单位)
    idle_session_timeout=2
    # 数据连接超时时间(以秒为单位)
    data_connection_timeout=2
    #  vsftpd 需要的非特权系统用户
    pam_service_name=vsftpd
    # 是否使用主机的时间
    use_localtime=YES
    # ftp工具连接成功提示
    ftpd_banner=欢迎使用Bunny FTP
    # 是否启动限制用户的名单。YES为启用,NO禁用。默认禁用,防止切换到root目录这样服务器就是透明的不安全!!!
    chroot_list_enable=NO
    # 所有用户均不能切换到上级目录,如果关闭可以访问服务器中任意文件夹
    chroot_local_user=YES
    # 坑,添加以下配置。不添加此项,文件无法上传。报错:550 Permission denied。
    # 新版本vsftpd加入了安全需求,切根不允许写,要添加这个配置并设置为YES才可以
    allow_writeable_chroot=YES
    # 是否允许递归查询
    ls_recurse_enable=YES
    # 是否阻止 user_list 文件中的用户登录服务器
    userlist_deny=YES
    # 是否阻止 ftpusers 文件中的用户登录服务器
    userlist_enable=YES
    
    
    # 开启主动模式后是否启用默认的 20 端口监听
    # connect_from_port_20=YES
    
    
    properties
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-13/sFMuDJ6mwq0CEhUTV7t4cR1fAjYr.png)

命令行解释

  • anonymous_enable 是否允许匿名登录服务器
  • local_enable 是否允许本地用户登录服务器
  • write_enable 是否允许本地用户具有写权限
  • local_umask 本地用户的文件掩码
  • local_root 系统用户登录路径
  • anon_root 匿名用户登录路径
  • chroot_local_user 是否锁定用户登录目录为其根目录
  • anon_upload_enable 是否允许匿名用户上传文件,须开启 write_enable 选项
  • anon_mkdir_write_enable 是否允许匿名用户创建新文件夹
  • dirmessage_enable 是否激活目录欢迎信息功能
  • xferlog_enable 如果启用此选项,系统将会记录服务器上传和下载的日志文件,默认日志文件为 /var/log/vsftpd.log,也可以通过 xferlog_file 选项设定
  • xferlog_file=/var/log/vsftpd.log 服务器上传、下载的日志存储路径
  • xferlog_std_format 以 xferlog 格式记录日志文件
  • syslog_enable 是否将日志写入系统日志中
  • connect_from_port_20=YES 开启主动模式后是否启用默认的 20 端口监听
  • chown_uploads 是否允许改变上传文件的属主,与下面选项配合使用
  • chown_username 改变上传文件的属主,输入一个系统用户名,whoever:任何人
  • idle_session_timeout 数据传输中断间隔时间
  • data_connection_timeout 数据连接超时时间
  • nopriv_user=ftpsecure vsftpd 需要的非特权系统用户
  • use_localtime 是否使用主机的时间,默认使用 GMT 时间,比北京时间晚 8小时,建议设定为 YES
  • ascii_upload_enable 以 ASCII 方式上传数据
  • ascii_download_enable 以 ASCII 方式下载数据
  • ftpd_banner 登录 FTP 服务器时显示的欢迎信息
  • chroot_list_enable 用户是否具有访问自己目录以外文件的权限,设置为 YES 时,用户被锁定在自己的 home 目录中
  • chroot_list_file=/etc/vsftpd/chroot_list 不能访问自己目录以外的用户名,需要和 chroot_list_enable 配合使用
  • ls_recurse_enable 是否允许递归查询
  • listen 是否让 vsftpd 以独立模式,由 vsftpd 自己监听和处理连接请求
  • listen_ipv6 是否支持 IPV6,不开启IPv4也无法访问
  • userlist_enable 是否阻止 ftpusers 文件中的用户登录服务器
  • userlist_deny 是否阻止 user_list 文件中的用户登录服务器
  • tcp_wrappers 是否使用 tcp_wrappers 作为主机访问控制方式
  • max_client 允许的最大客户端连接数,0 为不限制
  • max_per_ip 同一 IP 允许的最大客户端连接数,0 为不限制
  • local_max_rate 本地用户的最大传输速率(单位:B/s),0 为不限制
  • anon_max_rate 匿名用户的最大传输速率

自定义用户访问

复制代码
    userlist_enable=YES
       # ftpusers 中用户允许访问,user_list 中用户允许访问
    
    userlist_enable=NO
       # ftpusers 中用户禁止访问,user_list 中用户允许访问
    
    userlist_deny=YES
       # ftpusers 中用户禁止访问,user_list 中用户禁止访问
    
    userlist_deny=NO
       # ftpusers 中用户禁止访问,user_list 中用户允许访问
    
    userlist_deny=YES
    userlist_enable=YES
       # ftpusers 中用户禁止访问,user_list 中用户禁止访问
    
    userlist_deny=NO
    userlist_enable=YES
       # ftpusers 中用户禁止访问,user_list 中用户允许访问
    
    
    properties
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-13/VpiWb5QgvO7l3Xz9ReBfcExdNqm0.png)

用户操作

复制代码
    # 添加用户
    useradd ftpuser
    # 为用户设置密码
    passwd ftpuser
    
    
    shell

全部评论 (0)

还没有任何评论哟~