# 如何在Ubuntu VPS上设置FTP服务器：终极指南

> 来源：梦飞idc云平台 | 原文：https://www.mfisp.com/18632.html | 发布：2023-03-20 | 更新：2023-03-20 | 分类：服务器vps推荐

在本文中，您将学习如何在 Ubuntu VPS上设置 FTP 服务器。我们将使用vsftpd服务器，它被广泛认为是类 UNIX 系统中最快和最安全的 FTP 服务器。

在本文中，您将学习如何在 Ubuntu VPS上设置 FTP 服务器。我们将使用vsftpd服务器，它被广泛认为是类 UNIX 系统中最快和最安全的 FTP 服务器。

 

![TFTP与FTP–有什么区别？](https://www.mfisp.com/wp-content/uploads/2022/01/2022010605523665.jpg)

 

## 什么是 FTP？

 

FTP，或文件传输协议，是一种使用 TCP/IP 协议通过 Internet 连接在计算机之间共享文件的方法。它还利用客户端-服务器框架和SSL/TLS 安全性来确保安全可靠的数据传输。

 

这有点类似于HTTP（超文本传输​​协议）或SMTP（简单邮件传输协议）。不同之处在于，FTP 负责通过 Internet 传输文件，而 HTTP 和 SMTP 分别处理网页和电子邮件的传输。在开始之前，请记住我们将指导您在Ubuntu 18.04 上配置 FTP 服务器。因此，您需要确保您的 VPS 正在该特定操作系统上运行。

 

## 如何在 Ubuntu 上设置 FTP 服务器

 

本教程要求您知道如何通过 SSH 连接到服务器。如果您拥有Hostinger 的 VPS，登录详细信息可在hPanel 的服务器选项卡中找到。

 

### 步骤 1 – 安装 vsftpd

 
 
1. 首先，在继续安装vsftpd之前，我们必须获取软件包更新 。首先，运行以下命令： 

```
sudo apt-get 更新
```

 

等待所有过程完成，您将在更新完成后立即看到确认信息。 
1. 完成后，使用以下命令 安装vsftpd守护进程： 

```
sudo apt-get 安装 vsftpd
```

 

系统将提示您一条确认消息，要求您键入Y并按Enter键以继续安装。 
1. 安装完成后，您应该备份原始文件，以便您可以从空白配置文件开始： 

```
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original
```

 

现在我们准备好配置防火墙了。 

 

### 第 2 步 – 允许来自防火墙的 FTP 流量

 
 
1. 为了允许 Ubuntu FTP 服务器通过互联网进行通信，它需要通过防火墙。但首先，让我们看看防火墙是否已经在您的机器上启用。只需运行此命令即可验证状态： 

```
sudo ufw 状态
```

 

如果您看到以下消息：

 

```
ufw：找不到命令
```

 

这意味着没有安装防火墙。您可以通过键入以下内容来安装和启用它：

 

```
sudo apt-get 安装 ufw
sudo ufw 启用
``` 
1. 如果它已经处于活动状态，您仍然需要确保允许 FTP 流量。为此，请一一执行以下命令： 

```
sudo ufw 允许 OpenSSH
sudo ufw 允许 20/tcp
sudo ufw 允许 21/tcp
sudo ufw 允许 990/tcp
sudo ufw 允许 40000:50000/tcp
```

 

这一系列命令会打开几个端口：

 
 
  - 如果您仍然希望通过 SSH 访问您的服务器，则需要OpenSSH 。有时，此选项默认启用。 
  - 端口20和21用于 FTP 流量。 
  - 端口40000:50000将保留用于最终将在配置文件中设置的被动端口范围。 
  - 启用 TLS 时将使用端口990 。 
1. 现在让我们再看看状态： 

```
sudo ufw 状态
```

 

输出应如下所示：

 

```
状态：活跃
采取行动从
--------------
OpenSSH 允许任何地方
990/tcp 允许任何地方
20/tcp 允许任何地方
21/tcp 允许任何地方
40000:50000/tcp 允许任何地方
OpenSSH (v6) 允许任何地方 (v6)
20/tcp (v6) 允许任何地方 (v6)
21/tcp (v6) 允许任何地方 (v6)
990/tcp (v6) 允许任何地方 (v6)
40000:50000/tcp (v6) 允许任何地方 (v6)
``` 

 

### 第 3 步 – 创建用户目录

 
 
1. 设置防火墙后，我们必须创建要使用 FTP 访问的用户。这是怎么做的： 

```
须藤添加用户托管
```

 

请记住根据您自己的喜好更改用户名。 
1. 然后，输入用户密码并填写所有必需的详细信息。  
 理想情况下，出于安全目的，FTP 应限制在一个特定的目录中。这就是vsftpd使用chroot jails的原因，它默认将本地用户限制在他们的主目录中。  
 但是，由于vsftpd 的安全性，用户可能无法写入该目录。要解决此问题，我们不必从主文件夹中删除写入权限。相反，我们将创建一个充当chroot的 ftp 目录。它包含一个可写目录，负责保存所需的文件。 
1. 使用以下命令创建 FTP 文件夹： 

```
sudo mkdir /home/hostinger/ftp
```

 

然后，使用以下方法设置所有权：

 

```
sudo chown nobody:nogroup /home/hostinger/ftp
```

 

最后，删除写权限：

 

```
sudo chmod aw /home/hostinger/ftp
```

 

现在，使用以下命令来验证权限：

 

```
sudo ls -la /home/hostinger/ftp
```

 

输出应类似于：

 

```
共 8 个
dr-xr-xr-x 2 nobody nogroup 4096 Oct 8 11:32 。
drwxr-xr-x 3 hostinger hostinger 4096 Oct 8 11:32 ..
``` 
1. 接下来，我们将创建文件存放目录并分配所有权： 

```
sudo mkdir /home/hostinger/ftp/文件
sudo chown hostinger:hostinger /home/hostinger/ftp/文件
```

 

最后，在目录中添加一个测试文件，稍后我们测试所有内容时将使用该文件：

 

```
echo "vsftpd 示例文件" | sudo tee /home/hostinger/ftp/files/sample.txt
``` 

 

### 第 4 步 – 配置 vsftpd

 

下一步是配置 vsftpd 和我们的 FTP 访问。在此示例中，我们将允许单个用户使用本地 shell 帐户进行连接。为此所需的两个关键配置已在配置 ( vsftpd.conf ) 文件中设置。

 
 
1. 首先，使用 nano 命令打开vsftpd配置文件。 

```
须藤纳米 /etc/vsftpd.conf
```

 

验证内容是否具有与此类似的设置：

 

```
. . . # 允许匿名 FTP？（默认情况下禁用）。anonymous_enable=NO # # 取消注释以允许本地用户登录。local_enable=YES。. .
```

 

在同一个文件中，我们将删除#（取消注释）并确保启用write_enable。

 

```
. . . 写启用=是。. .
``` 
1. 您还需要取消注释chroot以确保 FTP 用户仅访问允许目录中的文件。也将NO值更改为YES 。请记住，有两行是这样的，您必须取消对它们的注释。 

```
. . . chroot_local_user=YES 。. .
``` 
1. 您还应该将一些新值添加到文件底部。第一个是local_root 目录路径中的user_sub_token。它将允许配置与当前用户或随后添加的任何其他用户一起使用： 

```
user_sub_token=$USER local_root=/home/$USER/ftp
``` 
1. 为确保有大量连接可用，我们将限制配置文件的端口数： 

```
pasv_min_port=40000 pasv_max_port=50000
``` 
1. 在本教程中，我们打算根据具体情况允许访问。因此，我们将配置设置为仅向您已明确添加到列表中的用户授予访问权限： 

```
userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO
```

 

当您将userlist_deny 标志设置为NO时，只允许指定的用户访问。完成后，依次单击CTRL+X和Y进行保存，然后按 Enter确认文件更改。 
1. 最后，我们将创建一个用户列表并将用户添加到文件中： 

```
回声“主机” | sudo tee -a /etc/vsftpd.userlist
```

 

通过运行以下命令验证用户确实处于活动状态：

 

```
cat /etc/vsftpd.userlist
```

  

输出应为“hostinger”，如以下屏幕截图所示： 
1. 使用以下命令重新启动守护程序以加载配置更改： 

```
sudo systemctl 重新启动 vsftpd
``` 

 

### 第 5 步 – 使 FTP 安全

 
 
1. 默认情况下，FTP 不加密数据，因此我们将使用SSL/TLS证书来保护数据传输。第一步是我们需要为 Ubuntu FTP 服务器创建 SSL 证书。 

```
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
```

 

–days标志使证书有效期为一年，我们在同一命令中包含了一个2048 位RSA私钥。 
1. 出现提示后，在提供的字段中输入相应的个人详细信息。 
1. 完成创建证书后，再次打开配置文件： 

```
须藤纳米 /etc/vsftpd.conf
```

 

文件末尾应包含以rsa开头的两行。

 

```
# rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
# rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
```

 

现在，我们将配置文件指向我们刚刚创建的证书。在前面几行的正下方添加以下目录：

 

```
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
``` 
1. 接下来，我们将启用 SSL 并确保只有拥有有效 SSL 的客户才能联系我们。只需输入这一行： 

```
ssl_enable=YES
```

 

然后，添加以下行以禁止通过 SSL 的任何匿名连接：

 

```
allow_anon_ssl=否
force_local_data_ssl=YES
force_local_logins_ssl=YES
```

 

使用以下命令将服务器配置为使用 TLS：

 

```
ssl_tlsv1=是
ssl_sslv2=否
ssl_sslv3=否
``` 
1. 现在我们将更改两个选项。首先，禁用SSL 重用以防止 FTP 客户端崩溃。其次，我们将使用高度加密的密码套件，确保密钥长度等于或大于 128 位。 

```
require_ssl_reuse=否
ssl_ciphers=高
```

 

按CTRL+X后跟Y再次保存文件，然后按Enter。 
1. 让我们再次 重启vsftpd以应用新配置： 

```
sudo systemctl 重新启动 vsftpd
``` 

 

做得好！您现在已经在 Ubuntu VPS 上配置了 FTP 服务器以使用 SSL/TLS 协议。

 

### 第 6 步 – 测试与 FileZilla 的连接

 

如今，大多数 FTP 客户端都支持 TLS 加密配置。这是测试您的 Ubuntu FTP 服务器是否正常工作的好方法。为了测试连接，我们将使用FileZilla FTP 客户端。

 
 
1. 首先，启动FileZilla并单击站点管理器图标。然后，在提示窗口中单击新建站点按钮以输入 Ubuntu FTP 服务器详细信息。 
1. 使用新创建的 Ubuntu FTP 服务器信息填写所有必填列。由于我们将其配置为使用 TLS，因此我们还可以选择Use explicit FTP over TLS选项。最终配置应如下所示： 
1. 准备就绪后，单击“连接”，将出现要求输入 FTP 用户密码的屏幕。之后，点击OK。 
1. 最后，您需要在 Ubuntu VPS 上验证 FTP 服务器的 SSL 证书。确认后，带有测试文件的根目录现在应该出现在您的屏幕上。 

 

就这样！现在，您可以执行从计算机到 Ubuntu FTP 服务器的各种文件传输，反之亦然。

 

## 结论

 

拥有 Ubuntu FTP 服务器可以让您轻松地在 Ubuntu VPS/服务器和计算机之间共享文件。得益于 SSL/TLS 安全性和 TCP/IP 协议，它是一种安全可靠的数据传输方法。

---
本页由 梦飞idc云平台（https://www.mfisp.com）提供。站点导航见 https://www.mfisp.com/llms.txt
