一、安装并配置vsftpd

  在Linux中,可供我们选择的FTP服务器种类众多。但如果我们想在树莓派上 搭建一个安全、

  高性能且稳定性好的FTP服务器,那么就非vsftpd莫属了。Vsftpd 的全称是Very Secure FTP

  Daemon(非常安全的FTP进程),是一个基于GPL发布的类UNIX类操作系统上运行的FTP服务

  器,可以运行在Linux、BSD、Solaris、 HP-UX以及Irix等系统上面。同时,vsftpd也支持很多其

  他传统的FTP服务器不支持的良好特性,用八个字概括其特点就是“小巧轻快,安全易用”。

  安装 vsftpd 软件:

  liu@hncloud-ubuntu18:~$ sudo apt install -y vsftpd

  备份vsftpd的默认配置文件:

  liu@hncloud-ubuntu18:~$ cd /etc/

  liu@hncloud-ubuntu18:/etc$ sudo mv vsftpd.conf vsftpd.conf.orig

  使用vi命令编辑新的FTP配置文件如下,该配置文件使能了本地用户登陆同时也使能匿名账号免密

  登陆,并指定默认的登陆路径为 /srv/ftp。

  liu@hncloud-ubuntu18:/etc$ sudo vim vsftpd.conf

   # 匿名登录用户免密登录,并且不能上传文件

    anonymous_enable=YES
    anon_mkdir_write_enable=NO
    no_anon_password=YES
    # 上传文件更改用户名
    chown_uploads=YES
    chown_username=guowenxue
    # 上传文件失败就删除文件
    delete_failed_uploads=YES
    # 使能本地用户登录和上传文件,并指定登录的工作路径
    local_enable=YES
    local_root=/srv/ftp
    allow_writeable_chroot=YES
    anon_root=/srv/ftp/
    write_enable=YES
    local_umask=022
    # 设置FTP监听的端口为默认的21号端口
    listen=YES
    listen_ipv6=NO
    listen_port=21
    # 设置vsftpd的日志和

   登录提示

    ftpd_banner=Welcome to LingYun IoT system studio FTP server.
    xferlog_enable=YES
    xferlog_file=/var/log/vsftpd.log
    # 是否限制本地所有用户切换根目录的权限,YES为开启限制,即登录后的用户
    # 不能访问ftp根目录以外的目录
    chroot_local_user=YES
    pam_service_name=vsftpd
    # 是否启动userlist为通过模式,YES的话只有存在于userlist文件中的用户才能登录ftp
    #(可以理解为userlist是一个白名单),NO的话,白名单失效,和下面一个参数配合使用
    userlist_enable=YES
    # 是否启动userlist为禁止模式,YES表示在userlist中的用户禁止登录ftp(黑名单),
    # NO表示黑名单失效,我们已经让userlist作为一个白名单,所以无需使用黑名单功能。
    userlist_deny=NO
    # 指定哪个文件作为userlist文件,我们稍后编辑这个文件
    userlist_file=/etc/vsftpd.userlist
    # 本地用户登录的配置文件夹,可以分别指定每个用户的登录路径。
    user_config_dir=/etc/vsftpd/userconfig
    添加允许登陆FTP服务器的 匿名用户(anonymous) 和 本地用户(guowenxue):
    guowenxue@hncloud-ubuntu18:/etc$ sudo vim /etc/vsftpd.userlist
    anonymous
    liu

  二、匿名用户登陆测试vsftpd

  创建FTP服务器匿名用户和本地用户的默认工作根路径和测试文件,把FTP根目录的所有者权限给

  本地用户(liu)并修改文件权限755。注意匿名用户(anonymous)也在该路径下,该目录

  不能给777的权限,否则匿名用户不能登录!:

  liu@hncloud-ubuntu18:/etc$ sudo mkdir -p /srv/ftp/

  liu@hncloud-ubuntu18:/etc$ sudo touch /srv/ftp/test.txt

  liu@hncloud-ubuntu18:/etc$ sudo chown -R guowenxue.ftp /srv/ftp/

  liu@hncloud-ubuntu18:/etc$ sudo chmod 755 /srv/ftp

  重启vsftpd服务并检查其是否正常运行:

  liu@hncloud-ubuntu18:/etc$ sudo service vsftpd restart

  liu@hncloud-ubuntu18:/etc$ sudo netstat -tlnp | grep vsftpd

  tcp 0 0

  0.0.0.0:21 0.0.0.0:* LISTEN 9209/vsftpd

  在访问之前,最好使用,先使用ping命令测试本机与Linux服务器之间是否连通,如果不通的话先

  解决网络问题:

  如果是虚拟机,则可以使用ifconfig命令查看自己虚拟机的IP地址,用这个IP地址访问;

  如果是云服务器主机且没有域名,则可以使用云服务器公网IP地址访问;

  如果是云服务器主机且没有域名,但想要用域名实现访问,则可以修改本地域名配置文件

  (C:\Windows\System32\drivers\etc\hosts)实现;

  如果是云服务器主机且配置好域名了,则可以直接使用域名访问;

   `二、匿名用户登陆测试vsftpd

    创建FTP服务器匿名用户和本地用户的默认工作根路径和测试文件,把FTP根目录的所有者权限给
    本地用户(guowenxue)并修改文件权限755。注意匿名用户(anonymous)也在该路径下,该目录
    不能给777的权限,否则匿名用户不能登录!:
    liu@hncloud-ubuntu18:/etc$ sudo mkdir -p /srv/ftp/
    liu@hncloud-ubuntu18:/etc$ sudo touch /srv/ftp/test.txt
    liu@hncloud-ubuntu18:/etc$ sudo chown -R guowenxue.ftp /srv/ftp/
    liu@hncloud-ubuntu18:/etc$ sudo chmod 755 /srv/ftp 
    重启vsftpd服务并检查其是否正常运行:
    liu@hncloud-ubuntu18:/etc$ sudo service vsftpd restart
    liu@hncloud-ubuntu18:/etc$ sudo netstat -tlnp | grep vsftpd
    tcp 0 0
    0.0.0.0:21 0.0.0.0:* LISTEN 9209/vsftpd
    在访问之前,最好使用,先使用ping命令测试本机与Linux服务器之间是否连通,如果不通的话先
    解决网络问题:
    如果是虚拟机,则可以使用ifconfig命令查看自己虚拟机的IP地址,用这个IP地址访问;
    如果是云服务器主机且没有域名,则可以使用云服务器公网IP地址访问;
    如果是云服务器主机且没有域名,但想要用域名实现访问,则可以修改本地域名配置文件
    (C:\Windows\System32\drivers\etc\hosts)实现;
    如果是云服务器主机且配置好域名了,则可以直接使用域名访问;
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210116170656746.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTIwOTMzMQ==,size_16,color_FFFFFF,t_70#pic_center)
    使用Chrome浏览器,地址栏输入: ftp://Linux服务器地址 或 ftp://iotcraft.cn 即可匿名登陆访问FTP服务器了:

最后修改:2024 年 08 月 04 日
如果觉得我的文章对你有用,请随意赞赏