如何在服务器上搭建FTP服务?

1、使用 vsftpd 在 Linux 服务器上搭建 FTP(最常用)

服务器怎么建一个ftp

2、重要提醒:为什么以及如何启用更安全的 FTPS 或 SFTP

第一部分:使用 vsftpd 在 Linux 上搭建 FTP(Ubuntu/CentOS 为例)

vsftpd(Very Secure FTP Daemon)是 Linux 上最流行、最安全的 FTP 服务器软件。

步骤 1:安装 vsftpd

通过 SSH 连接到您的服务器,然后使用包管理器安装。

Ubuntu/Debian:

服务器怎么建一个ftp
    sudo apt update
    sudo apt install vsftpd

CentOS/RHEL/Fedora:

    sudo yum install vsftpd
    # 或者使用 dnf (新版本的 Fedora/CentOS)
    sudo dnf install vsftpd

步骤 2:启动并设置开机自启

安装完成后,启动服务并设置为开机自动启动。

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

步骤 3:配置 vsftpd

主要的配置文件是/etc/vsftpd.conf,在修改之前,最好先备份一下。

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

然后使用文本编辑器(如nanovim) 编辑配置文件:

sudo nano /etc/vsftpd.conf

找到并修改以下配置行,或者如果它们被注释了(以# 开头),请取消注释并修改为如下值:

服务器怎么建一个ftp
禁止匿名登录(除非您需要)
anonymous_enable=NO
允许本地系统用户登录
local_enable=YES
允许用户上传(写入)文件
write_enable=YES
设置本地用户创建新文件或目录的默认权限
local_umask=022
有些客户端需要这个设置来正常工作
allow_writeable_chroot=YES
将用户限制在其家目录中(非常重要的安全设置!)
chroot_local_user=YES
可选:定义一个例外用户列表文件(如果上面设置为YES,则列表中的用户不被限制)
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
启用被动模式(PASV)设置,这对在防火墙/NAT后的服务器至关重要
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
将 pasv_address 设置为您服务器的公网IP地址,否则客户端可能无法连接
pasv_address=你的服务器公网IP

保存并退出编辑器。

步骤 4:配置防火墙(如果启用)

如果您的服务器开启了防火墙(如ufwfirewalld),需要放行 FTP 端口。

控制端口(默认 21)

被动模式端口范围(上面设置的 30000-31000)

对于 UFW (Ubuntu):

sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp
sudo ufw reload

对于 Firewalld (CentOS/RHEL):

sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=30000-31000/tcp
sudo firewall-cmd --reload

步骤 5:创建 FTP 用户

最好为 FTP 创建一个专用的系统用户,而不是直接使用 root 账户。

1、创建用户(例如用户名为ftpuser)并设置密码:

    sudo useradd -m ftpuser
    sudo passwd ftpuser

(系统会提示您输入并确认新密码)

2、(可选)如果您想限制用户只能通过 FTP 访问,而不能通过 SSH 登录 shell,可以修改其 shell:

    sudo usermod -s /usr/sbin/nologin ftpuser

步骤 6:重启 vsftpd 服务使配置生效

sudo systemctl restart vsftpd

步骤 7:测试连接

您可以使用任何 FTP 客户端(如FileZilla,WinSCP, 或浏览器)进行测试。

主机/地址 您的服务器公网 IP 地址

用户名ftpuser

密码 您设置的密码

端口21 (默认)

第二部分:重要安全提醒与增强(FTPS / SFTP)

传统 FTP 协议是不安全的,因为它以明文方式传输所有数据(包括用户名和密码),在任何公共网络(如互联网)上使用都非常危险。

您有兩個更安全的選擇:

选项 A:启用 FTPS(FTP over SSL/TLS)

这为 FTP 连接添加了加密层,继续编辑/etc/vsftpd.conf 文件:

启用 SSL
ssl_enable=YES
强制使用 SSL 进行数据和登录连接(更安全)
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
指定 SSL 证书和密钥文件的位置
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

您可以使用系统自带的 snakeoil 证书进行测试,但对于生产环境,请使用来自 Let's Encrypt 或其他 CA 的有效证书,并将路径指向您的证书(.crt.pem)和私钥(.key)文件。

在 FTP 客户端中,您需要选择FTPS (显式加密) 连接模式。

选项 B:【强烈推荐】使用 SFTP(SSH File Transfer Protocol)

SFTP 是 SSH 的一部分,它通过已有的 SSH 连接提供安全的文件传输。如果您的服务器已经开启了 SSH(几乎所有服务器都默认开启),SFTP 已经可用了!

如何使用 SFTP:

1、 您不需要安装任何额外的软件(如vsftpd)。

2、 使用任何 SFTP 客户端(如 FileZilla, WinSCP)。

3、 连接信息:

主机 您的服务器公网 IP

协议SFTP - SSH File Transfer Protocol

端口22 (SSH 默认端口)

用户名/密码 使用您的系统用户(如前面创建的ftpuser)和密码。

SFTP 的优势:

极其安全所有通信都通过加密的 SSH 隧道进行。

无需额外配置无需管理另一个服务和另一套防火墙规则。

更简单只需要管理 SSH 访问即可。

1、基本 FTP:按照第一部分操作,但仅建议在绝对安全的内网环境中使用纯 FTP。

2、安全选择:对于任何通过互联网的连接,强烈建议您直接使用 SFTP(无需安装vsftpd),或者按照选项 A 配置FTPS

如果您不确定该用哪个,选择 SFTP 几乎总是最简单和最安全的选择,只需使用您的 SSH 账户信息通过 SFTP 协议连接即可。

文章摘自:https://idc.huochengrm.cn/fwq/15005.html

评论

精彩评论
  • 2025-09-06 06:09:38

    在服务器上搭建FTP服务,需先安装配置ftp服务器软件如vsftpd或FileZilla等,设置用户权限及目录访问规则后启动并测试连接是否正常即可使用上传下载文件功能了!