Linux如何打开FTP服务?

在Linux系统中,操作FTP(File Transfer Protocol,文件传输协议)通常包括两种场景:作为客户端连接远程FTP服务器上传/下载文件,或作为服务器搭建FTP服务供其他客户端访问,本文将详细介绍Linux下这两种场景的操作方法,涵盖命令行工具和图形化工具的使用,以及FTP服务器的配置步骤。

linux如何打开ftp

Linux客户端连接FTP服务器

作为客户端,Linux系统可通过内置命令行工具(如ftplftp)或第三方图形化工具(如FileZilla)连接FTP服务器,实现文件传输,以下是具体操作:

使用ftp命令行工具(基础工具)

ftp是Linux系统自带的FTP客户端,功能简单,适合基本操作。
安装:若系统未安装,可通过包管理器安装(以Ubuntu/Debian为例):

sudo apt update && sudo apt install ftp

连接FTP服务器

ftp [服务器IP或域名]

例如连接IP为168.1.100的FTP服务器:

ftp 192.168.1.100

登录:输入服务器分配的用户名和密码(若为匿名服务器,用户名通常为anonymous,密码为任意邮箱或空)。

常用操作命令
| 命令 | 功能描述 | 示例 |
|—————|———————————–|————————–|
| ls | 查看服务器当前目录文件列表 | ls |
| cd [目录名] | 切换服务器目录 | cd pub |
| lcd [路径] | 切换本地客户端目录 | lcd /home/user/download|
| get [文件名]| 从服务器下载文件到本地当前目录 | get example.txt |
| put [文件名]| 上传本地当前目录文件到服务器 | put local.txt |
| mget [文件名]| 批量下载多个文件(支持通配符) | mget *.zip |
| mput [文件名]| 批量上传多个文件 | mput *.jpg |
| ! [命令] | 执行本地系统命令 | ! ls(查看本地目录) |
| byequit | 退出FTP连接 | bye |

注意事项

  • 默认情况下,ftp使用主动模式(Active Mode),若客户端防火墙严格,可能导致连接失败,需切换为被动模式:在FTP命令行输入passive,此时数据连接由客户端主动发起。
  • 传输过程中,可通过hash命令开启进度条显示(输入hash后,每传输1024字节显示一个)。

使用lftp命令行工具(增强工具)

lftpftp的增强版,支持多线程、断点续传、镜像同步等功能,更适合复杂场景。
安装

# Ubuntu/Debian
sudo apt install lftp
# CentOS/RHEL
sudo yum install lftp

连接与登录

lftp ftp://[用户名]:[密码]@[服务器IP或域名]

例如匿名登录:

linux如何打开ftp

lftp ftp://anonymous:anonymous@192.168.1.100

常用操作命令
| 命令 | 功能描述 | 示例 |
|————————–|———————————–|——————————-|
| ls | 查看服务器目录 | ls |
| cd [目录] | 切换服务器目录 | cd /data |
| lcd [路径] | 切换本地目录 | lcd ~/upload |
| get [文件] | 下载文件(支持断点续传) | get large_file.zip |
| put [文件] | 上传文件 | put report.pdf |
| mirror [本地目录] [远程目录] | 同步目录(双向) | mirror -R local_dir remote_dir(上传本地到远程) |
| pget [文件] | 多线程下载(加速大文件下载) | pget large_file.zip -n 5(5线程) |
| exit | 退出连接 | exit |

优势

  • 默认使用被动模式(PASV),兼容性更好;
  • 支持书签功能(bookmark add [名称]保存连接,bookmark [名称]快速连接);
  • 可通过set ftp:passive-mode on/off手动切换模式。

使用图形化工具(适合新手)

若不习惯命令行,可安装图形化FTP客户端,如FileZilla(跨平台,支持Linux)。
安装FileZilla

# Ubuntu/Debian
sudo apt install filezilla
# CentOS/RHEL(需EPEL源)
sudo yum install epel-release && sudo yum install filezilla

使用步骤

  1. 打开FileZilla,点击“文件”→“站点管理器”,点击“新建站点”,命名站点(如“FTP服务器”);
  2. 在“常规”选项卡中填写:
    • 主机:服务器IP或域名;
    • 登录类型:选择“正常”(需用户名密码)或“匿名”;
    • 用户名/密码:若选择“正常”,填写服务器分配的凭据;
  3. 点击“连接”,右侧窗口显示服务器文件列表,左侧为本地文件;
  4. 拖拽文件即可上传/下载,或右键文件选择“传输”。

优势:操作直观,支持拖拽、实时传输进度显示,适合不熟悉命令行的用户。

Linux搭建FTP服务器(以vsftpd为例)

若需在Linux服务器上搭建FTP服务,推荐使用vsftpd(Very Secure FTP Daemon),轻量级且安全,是大多数Linux发行版的默认FTP服务器软件。

安装vsftpd

# Ubuntu/Debian
sudo apt update && sudo apt install vsftpd
# CentOS/RHEL
sudo yum install vsftpd

配置vsftpd

核心配置文件为/etc/vsftpd/vsftpd.conf,建议先备份原配置:

sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

关键配置参数(编辑/etc/vsftpd/vsftpd.conf):
| 参数 | 默认值 | 作用说明 |
|——————————-|———-|———————————–|
| anonymous_enable=NO | YES | 是否允许匿名登录(建议关闭) |
| local_enable=YES | NO | 是否允许本地用户登录 |
| write_enable=YES | NO | 是否允许文件上传/修改 |
| chroot_local_user=YES | NO | 是否限制用户仅能访问家目录 |
| allow_writeable_chroot=YES | NO | 是否允许chroot目录写入(需配合chroot) |
| pasv_min_port=10000 | (无) | 被动模式最小端口(避免冲突) |
| pasv_max_port=10100 | (无) | 被动模式最大端口 |
| user_sub_token=$USER | (无) | 动态设置用户目录(如local_root=/home/$USER/ftp) |

示例配置(允许本地用户登录,限制在家目录,支持被动模式):

# 禁止匿名登录
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 允许写入
write_enable=YES
# 限制用户在家目录(安全)
chroot_local_user=YES
# 允许chroot目录写入(CentOS 7+需开启)
allow_writeable_chroot=YES
# 被动模式端口范围
pasv_min_port=10000
pasv_max_port=10100
# 设置用户家目录为FTP根目录(可选)
local_root=/home/$USER/ftp

创建FTP用户并设置权限

创建用户(例如创建用户ftpuser):

linux如何打开ftp

sudo useradd -m -s /bin/bash ftpuser  # 创建用户并分配家目录
sudo passwd ftpuser                    # 设置用户密码

创建FTP专用目录(可选,若未配置local_root):

sudo mkdir -p /home/ftpuser/ftp
sudo chown -R ftpuser:ftpuser /home/ftpuser/ftp  # 设置目录所有者

配置防火墙与SELinux(CentOS/RHEL)

防火墙开放FTP端口

sudo firewall-cmd --permanent --add-service=ftp  # 允许FTP服务
sudo firewall-cmd --permanent --add-port=21/tcp   # FTP命令端口
sudo firewall-cmd --permanent --add-port=10000-10100/tcp  # 被动模式端口
sudo firewall-cmd --reload

SELinux设置(若开启SELinux):

sudo setsebool -P ftpd_full_access on  # 允许FTP访问用户目录

启动并设置开机自启

# 启动vsftpd服务
sudo systemctl start vsftpd
# 开机自启
sudo systemctl enable vsftpd
# 查看服务状态
sudo systemctl status vsftpd

测试FTP服务器

在客户端(同一局域网或公网可访问的服务器)使用FileZilla或lftp连接,输入服务器IP、用户名(ftpuser)、密码,若能成功访问目录并上传/下载文件,则搭建成功。

相关问答FAQs

问题1:连接FTP服务器时提示“530 Login incorrect”,如何解决?

解答

  • 用户名/密码错误:确认输入的用户名和密码是否正确,区分大小写;
  • 服务器未允许用户登录:检查vsftpd配置文件中local_enable=YES(本地用户)或anonymous_enable=YES(匿名用户)是否开启;
  • 防火墙或SELinux拦截:若服务器为CentOS/RHEL,执行getsebool -a | grep ftpd检查ftpd_full_access状态,若为off,则需通过setsebool -P ftpd_full_access on开启;
  • 用户被限制:若配置了userlist_enable=YESuserlist_file=/etc/vsftpd/user_list,需检查/etc/vsftpd/user_list中是否包含该用户(默认拒绝列表中的用户登录)。

问题2:如何限制FTP用户只能访问指定的目录(而非家目录)?

解答
可通过local_rootuser_sub_token参数为用户指定独立目录,步骤如下:

  1. 创建专用目录(例如/var/ftp/share):
    sudo mkdir -p /var/ftp/share
    sudo chown -R ftpuser:ftpuser /var/ftp/share  # 设置目录所有者为FTP用户
  2. 修改vsftpd配置
    /etc/vsftpd/vsftpd.conf中添加:

    user_sub_token=$USER
    local_root=/var/ftp/$USER  # 动态绑定用户目录(如用户ftpuser则访问/var/ftp/ftpuser)

    或直接为指定用户设置固定目录(需在配置文件末尾添加):

    local_root=/var/ftp/share  # 所有FTP用户均访问此目录
  3. 重启vsftpd服务
    sudo systemctl restart vsftpd

    用户登录后将只能被限制在指定的目录(如/var/ftp/share),无法访问上级目录,提升安全性。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/32950.html

(0)
酷番叔酷番叔
上一篇 2025年9月30日 06:34
下一篇 2025年9月30日 06:49

相关推荐

  • linux如何显示用户名

    在Linux系统中,用户名是标识系统用户身份的核心信息,无论是日常操作、脚本编写还是系统管理,经常需要获取当前或指定用户的用户名,Linux提供了多种命令和方法来显示用户名,涵盖基础命令、环境变量、系统文件等多个层面,下面将详细介绍这些方法及其使用场景,基础命令直接显示用户名whoami命令whoami是最直接……

    2025年9月19日
    4500
  • 如何挂载磁盘分区到文件夹?

    核心概念Linux系统克隆指创建完整的系统副本(包括操作系统、配置、应用及数据),用于备份、迁移或部署相同环境,根据目标需求,主要分三类方法:磁盘/分区级克隆:逐扇区复制(适合整盘备份或硬件更换)文件级克隆:复制文件与目录结构(适合同架构系统迁移)系统打包重建:生成安装包再部署(适合大规模分发)磁盘级克隆(推荐……

    2025年7月6日
    7800
  • 添加Surý旧版PPA安全可靠吗?

    在Linux系统上部署或维护PHP 5需要谨慎操作,因为PHP 5系列(包括5.6及更早版本)已于2018年12月正式结束官方支持,不再提供安全更新,这意味着继续使用可能存在严重的安全风险,以下是在Linux中管理PHP 5的详细指南,适用于必须兼容旧项目的特殊场景:PHP 5在Linux中的安装方法Ubunt……

    2025年7月15日
    5800
  • Linux操作系统中如何打开桌面文件夹?

    在Linux操作系统中,桌面文件夹是用户日常存储常用文件的重要位置,无论是下载的文档、图片还是工作项目,通常会直接放置在桌面以便快速访问,由于Linux桌面环境(如GNOME、KDE Plasma、XFCE等)的多样性,打开桌面文件夹的方法也存在一定差异,本文将详细介绍不同场景下打开Linux桌面文件夹的多种方……

    2025年8月31日
    6500
  • 如何在Win7系统下详细安装Linux系统的操作步骤呢?

    在Windows 7系统下安装Linux是一个常见的系统配置需求,无论是为了体验开源系统、开发环境搭建还是数据安全,都需要经过充分的准备和细致的操作,以下将详细介绍整个过程,涵盖前期准备、分区规划、安装步骤及后续问题排查,帮助用户顺利完成Linux系统的部署,安装前的准备工作在开始安装前,充分的准备工作能有效避……

    2025年9月29日
    4300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信