Linux 服务器搭建 FTP 服务(本地工具:ForkLift)及启动报错处理

之前我都是通过 scp 传输文件,实在不是很方便。

scp -P 1022 /Users/xxx/ftp/vsftpd.conf [email protected]:/etc/vsftpd

于是一步步根据腾讯云的文档 Linux 云服务器搭建 FTP 服务 ,记录如下:

安装和配置 vsftpd

  1. 登录服务器,安装 vsftpd。

    yum install -y vsftpd
    
  2. 设置 vsftpd 开机自启动。

    systemctl enable vsftpd
    
  3. 启动 FTP 服务。

    systemctl start vsftpd
    
  4. 确认服务是否启动。

    netstat -antup | grep ftp
    

    如显示结果如下,则说明 FTP 服务已成功启动。

    此时,vsftpd 已默认开启匿名访问模式,无需通过用户名和密码即可登录 FTP 服务器。匿名方式登录 FTP 服务器的用户没有权修改或上传文件的权限。

  5. 为 FTP 服务创建一个 Linux 用户,本文以 ftpuser 为例。

    useradd ftpuser
    
  6. 设置 ftpuser 用户的密码。

    passwd ftpuser
    

    输入密码后请按 Enter 确认设置,密码默认不显示,本文以 tf7295TFY 为例。

  7. 创建 FTP 服务使用的文件目录,本文以 /var/ftp/test 为例。

    mkdir /var/ftp/test
    
  8. 修改目录权限。

    chown -R ftpuser:ftpuser /var/ftp/test
    
  9. 编辑 vsftpd.conf 文件。

    vim /etc/vsftpd/vsftpd.conf
    
  10. 修改以下配置参数,设置匿名用户和本地用户的登录权限,设置指定例外用户列表文件的路径,并开启监听 IPv4 sockets。

    anonymous_enable=NO      #禁止匿名用户登录
    local_enable=YES         #支持本地用户登录
    chroot_local_user=YES    #全部用户被限制在主目录
    chroot_list_enable=YES   #启用例外用户名单
    chroot_list_file=/etc/vsftpd/chroot_list  #指定用户列表文件,该列表中的用户不被锁定在主目录
    listen=YES
    
  11. 在行首添加 #,注释 listen_ipv6=YES 配置参数,关闭监听 IPv6 sockets。

    #listen_ipv6=YES
    
  12. 被动模式配置

    local_root=/var/ftp/test    #设置本地用户登录后所在的目录
    allow_writeable_chroot=YES
    pasv_enable=YES
    pasv_address=xxx.xx.xxx.xx  #请修改为您的 Linux 云服务器公网 IP
    pasv_min_port=40000
    pasv_max_port=45000
    
  13. 主动模式配置

    # 只添加下列参数,无需pasv开头的那几个
    local_root=/var/ftp/test    #设置本地用户登录后所在的目录
    allow_writeable_chroot=YES
    
  14. 按 Esc 后输入 :wq 保存后退出

  15. 创建并编辑 chroot_list 文件。

    vim /etc/vsftpd/chroot_list
    
  16. i 进入编辑模式,输入用户名,一个用户名占据一行,设置完成后保存并退出。
    您若没有设置例外用户的需求,可跳过此步骤,输入 :wq 退出文件。

  17. 重启 FTP 服务。

    systemctl restart vsftpd
    
  18. 安全组设置
    如主动模式则不需放通40000-45000端口(vsftpd.conf中设置的 pasv_min_port 到 pasv_max_port 之间的所有端口),即无需添加如图第一条规则

  19. 验证 FTP 服务,打开客户端的计算机,在路径栏中访问以下地址。若是MacOS,则是在访达的前往中选择“连接服务器”并输入以下地址:

    ftp://云服务器公网IP:21
    

    Finder中连接服务器

    在弹出的“登录”窗口中输入 配置 vsftpd 中已设置的用户名及密码。
    ok辣~

    但是用Finder访问只能下载,不能上传和编辑服务器的文件就挺鸡肋。还是得整上Transmit 或 ForkLift (App Store 就可以下载)这些工具。
    ForkLift界面

vsftpd启动报错处理

作为一个bug天选之人,我无一例外地遇上了摸不着头脑的vsftpd启动/重启报错:

Job for vsftpd.service failed because the control process exited with error code. See "systemctl status vsftpd.service" and "journalctl -xe" for details.


根据提示systemctl status vsftpd.service后,又告诉我们加上-l才能查看全部错误报告。
Hint: Some lines were ellipsized, use -l to show in full.
那就加上。

systemctl -l status vsftpd.service

现在就能看到配置具体错在哪里

原来是自己在vim /etc/vsftpd/vsftpd.conf注释的时候不小心多加了空格...大家下次碰到可以参考下

卸载vsftpd

# 1. 查看vsftpd的状态
service vsftpd status
# 2. 如果vsftpd在运行中,需要先停止它才能卸载
service vsftpd stop
# 3. 查找软件包名
rpm -aq vsftpd
# 4. 根据返回的具体包名进行删除
rpm -e vsftpd-3.0.2-28.el7.x86_64

你可能感兴趣的:(Linux 服务器搭建 FTP 服务(本地工具:ForkLift)及启动报错处理)