自学内容网 自学内容网

Linux搭建FTP服务,一看就懂,不懂请打我!

最近需要搭建FTP服务,实现两个主机之间的文件通讯,折腾了一番,好在最后成功了,记录一下,方便下次部署。本文使用的平台为RK3588(arm架构),amd64也通用

本文的参考链接:linux服务器安装vsftpd_linux安装vsftp-CSDN博客

  • 下载FTP包
    • 可能出现无法定位软件包的情况,大概率为软件源错误,需要更换为ubuntu自带的软件源,软件源如下。更换软件源的位置:/etc/apt/source.list,但是更换时需要进行备份
sudo apt-get install vsftpd

deb http://ports.ubuntu.com/ubuntu-ports/ jammy main restricted multiverse universe
deb http://ports.ubuntu.com/ubuntu-ports/ jammy-backports main restricted multiverse universe
deb http://ports.ubuntu.com/ubuntu-ports/ jammy-proposed main restricted multiverse universe
deb http://ports.ubuntu.com/ubuntu-ports/ jammy-security main multiverse restricted universe
deb http://ports.ubuntu.com/ubuntu-ports/ jammy-updates main multiverse restricted universe
deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy main multiverse restricted universe
deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-backports main multiverse restricted universe
deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-proposed main multiverse restricted universe
deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-updates main multiverse restricted universe
  • 启动、查看FTP服务,并设置开机自启动

    • systemctl start vsftpd :启动服务
    • systemctl enable vsftpd:开机自启动
    • systemctl status vsftpd:重启服务,该命令要熟记,后续使用多次
  • 配置系统本地用户登陆FTP服务(即,创建本地用户和密码)

    • 创建本地登陆用户名和密码

      useradd testUserName    # 创建用户名
      passwd testUserName     # 创建密码。passwd后面跟着要添加密码的用户名,回车后,输入密码。
      
    • 创建FTP传输的根目录,即FTP传输过程中所有操作(上传、下载)所在的目录

      sudo mkdir /home/testUserName/ftpFile    # 创建该文件目录,使得后续FTP传输内容都在该文件目录下
      
    • 修改FTP的本地配置文件,即/etc/vsftpd/vsftpd.conf文件

      • 需要注意的是:vsftpd.conf有时不在/etc/vsftpd文件夹内,而在/etc文件夹内

      • 进入文件内:sudo vim /etc/vsftpd/vsftpd.conf

      • 在文件内添加如下内容:

        local_enable=YES                              开启本地用户登录
        local_root= /home/testUserName/ftpFile        ftp用户访问根目录            
        write_enable=YES                              全局写权限配置
        userlist_enable=YES                           开启用户访问列表
        userlist_deny=NO                              只有列表文件里的用户可以访问ftp    
        userlist_file=/etc/vsftpd/allow_user          自定义用户访问白名单
        
      • 编辑白名单:

        sudo vim /etc/vsftpd/allow_uesr        # 对应上面的userlist_file
        
        testUserName                           # 添加本地用户
        xxx                                    # 添加能够访问FTP的用户
        
      • 限制FTP用户只能在根目录下操作(防越狱)

        sudo vim /etc/vsftpd/vsftpd.conf
        
                
        chroot_local_user=YES                     # 是否将用户限制在根目录
        chroot_list_enable=NO                     # 是否启动限制用户名单  默认不启动,这样用户都在根目录下操作
        allow_writeable_chroot=YES                
        
  • 配置完成后,重启FTP服务:systemctl restart vsftpd

  • 测试FTP服务能否使用

    • 命令行测试:

      ftp xxx.xxx.xxx.xx   # 后面是ip地址
      
      # 回车后,输入创建的本地登陆用户名和密码,观察是否能够登陆成功
      
    • 在文件夹登陆ftp,并尝试在文件夹内创建文件夹。若成功创建,则完成FTP部署

  • 此外:

    • 可能存在防火墙的问题,使用如下命令关闭防火墙

      sudo ufw disable  # 关闭防火墙
      
      sudo ufw status   # 查看防火墙状态,如果为inactive,则成功关闭
      
    • 查看ftp状态时,可能会出现failed的状态

      • 配置vsftpd.conf时,某个选项后,存在空格
      • 端口被占用

原文地址:https://blog.csdn.net/cxkyxx/article/details/142635833

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!