发布时间:2026-02-04 07:27:46 浏览次数:1
在本文中,您将学习如何在 Ubuntu VPS上设置 FTP 服务器。我们将使用vsftpd服务器,它被广泛认为是类 UNIX 系统中最快和最安全的 FTP 服务器。
FTP,或文件传输协议,是一种使用 TCP/IP 协议通过 Internet 连接在计算机之间共享文件的方法。它还利用客户端-服务器框架和SSL/TLS 安全性来确保安全可靠的数据传输。
这有点类似于HTTP(超文本传输协议)或SMTP(简单邮件传输协议)。不同之处在于,FTP 负责通过 Internet 传输文件,而 HTTP 和 SMTP 分别处理网页和电子邮件的传输。在开始之前,请记住我们将指导您在Ubuntu 18.04 上配置 FTP 服务器。因此,您需要确保您的 VPS 正在该特定操作系统上运行。
本教程要求您知道如何通过 SSH 连接到服务器。如果您拥有Hostinger 的 VPS,登录详细信息可在hPanel 的服务器选项卡中找到。
sudo apt-get 更新
等待所有过程完成,您将在更新完成后立即看到确认信息。
sudo apt-get 安装 vsftpd
系统将提示您一条确认消息,要求您键入Y并按Enter键以继续安装。
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original
现在我们准备好配置防火墙了。
sudo ufw 状态
如果您看到以下消息:
ufw:找不到命令
这意味着没有安装防火墙。您可以通过键入以下内容来安装和启用它:
sudo apt-get 安装 ufwsudo ufw 启用
sudo ufw 允许 OpenSSHsudo ufw 允许 20/tcpsudo ufw 允许 21/tcpsudo ufw 允许 990/tcpsudo ufw 允许 40000:50000/tcp
这一系列命令会打开几个端口:
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)
须藤添加用户托管
请记住根据您自己的喜好更改用户名。
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 ..
sudo mkdir /home/hostinger/ftp/文件sudo chown hostinger:hostinger /home/hostinger/ftp/文件
最后,在目录中添加一个测试文件,稍后我们测试所有内容时将使用该文件:
echo "vsftpd 示例文件" | sudo tee /home/hostinger/ftp/files/sample.txt
下一步是配置 vsftpd 和我们的 FTP 访问。在此示例中,我们将允许单个用户使用本地 shell 帐户进行连接。为此所需的两个关键配置已在配置 ( vsftpd.conf ) 文件中设置。
须藤纳米 /etc/vsftpd.conf
验证内容是否具有与此类似的设置:
. . . # 允许匿名 FTP?(默认情况下禁用)。anonymous_enable=NO # # 取消注释以允许本地用户登录。local_enable=YES。. .
在同一个文件中,我们将删除#(取消注释)并确保启用write_enable。
. . . 写启用=是。. .
. . . chroot_local_user=YES 。. .
user_sub_token=$USER local_root=/home/$USER/ftp
pasv_min_port=40000 pasv_max_port=50000
userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO
当您将userlist_deny 标志设置为NO时,只允许指定的用户访问。完成后,依次单击CTRL+X和Y进行保存,然后按 Enter确认文件更改。
回声“主机” | sudo tee -a /etc/vsftpd.userlist
通过运行以下命令验证用户确实处于活动状态:
cat /etc/vsftpd.userlist
输出应为“hostinger”,如以下屏幕截图所示:
sudo systemctl 重新启动 vsftpd
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私钥。
须藤纳米 /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.pemrsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
然后,添加以下行以禁止通过 SSL 的任何匿名连接:
allow_anon_ssl=否force_local_data_ssl=YESforce_local_logins_ssl=YES
使用以下命令将服务器配置为使用 TLS:
ssl_tlsv1=是ssl_sslv2=否ssl_sslv3=否
require_ssl_reuse=否ssl_ciphers=高
按CTRL+X后跟Y再次保存文件,然后按Enter。
sudo systemctl 重新启动 vsftpd
做得好!您现在已经在 Ubuntu VPS 上配置了 FTP 服务器以使用 SSL/TLS 协议。
如今,大多数 FTP 客户端都支持 TLS 加密配置。这是测试您的 Ubuntu FTP 服务器是否正常工作的好方法。为了测试连接,我们将使用FileZilla FTP 客户端。
就这样!现在,您可以执行从计算机到 Ubuntu FTP 服务器的各种文件传输,反之亦然。
拥有 Ubuntu FTP 服务器可以让您轻松地在 Ubuntu VPS/服务器和计算机之间共享文件。得益于 SSL/TLS 安全性和 TCP/IP 协议,它是一种安全可靠的数据传输方法。