如何在我的 Lightsail 实例上设置 FTP 服务器和 FTP 用户?
我想在运行 Amazon Linux 2、CentOS、Ubuntu 或 Debian 的 Amazon Lightsail 实例上设置文件传输功能协议(FTP)服务器和 FTP 用户。
解决方案
**注意:**FTP 以明文形式传输所有数据和密码。SSH 文件传输功能协议(SFTP)是连接实例和传输数据的更安全方式。有关使用 SFTP 的信息,请参阅Connecting to your Linux or Unix instance in Amazon Lightsail using SFTP。
设置 FTP 服务器和 FTP 用户
1.运行以下命令,安装 VSFTPD 软件包:
Amazon Linux 2 和 CentOS:
sudo yum install vsftpd -y
Ubuntu 和 Debian:
sudo apt install vsftpd -y
如果您收到错误,说明软件包不可用,请运行以下命令,更新软件包列表:
sudo apt update -y
2.编辑 vsftpd.config 文件,根据您的环境更新变量。
vsftpd.config 文件位置因您的操作系统而异:
- Amazon Linux 2 和 CentOS:/etc/vsftpd/vsftpd.conf
- Debian 和 Ubuntu:/etc/vsftpd.conf
在以下示例中,根据您的使用案例更新变量。以下参数是所有操作系统的通用参数。
anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=NO xferlog_std_format=YES chroot_local_user=YES allow_writeable_chroot=YES listen=YES pam_service_name=vsftpd userlist_enable=YES userlist_deny=NO listen_port=10021 pasv_enable=YES pasv_min_port=21000 pasv_max_port=21999 pasv_addr_resolve=NO
**注意:**端口 21 是 FTP 的默认端口。但是,出于安全原因,在前面的示例中,使用自定义端口 10021 作为 FTP 的端口。要自定义端口,请将 listen_port 更改为所需的端口,然后将 connect_from_port_20 设置为 NO。确保在实例防火墙上激活计划用于 FTP 的端口。在前面的示例中,在自定义和 Lightsail 防火墙上激活了端口 10021 和 21000-21999。另外,文件中不能同时包含 listen 和 listen_ipv6 参数。更新您的配置文件,确保只有一个参数设置为 YES。
以下参数是针对操作系统的具体参数。除前面的示例外,还需要根据您的操作系统编辑以下变量。
Amazon Linux 2 和 CentOS
chroot_list_file=/etc/vsftpd/chroot_listuserlist_file=/etc/vsftpd/user_list
Debian 和 Ubuntu:
chroot_list_file=/etc/vsftpd.chroot_listuserlist_file=/etc/vsftpd.userlist
3.运行以下命令,添加 FTP 用户:
sudo useradd -m ftp_user
**注意:**在前面的示例中,将 ftp_user 替换为您选择的用户名。
4.运行以下命令,为用户创建密码:
sudo passwd ftp_user
5.运行以下命令,更改 /home/ftp_user 文件的所有权。此命令使 ftp_user 成为文件所有者。
sudo chown ftp_user:ftp_user -R /home/ftp_user/
6.运行以下命令,将新用户添加到 vsftpd user_list 中。使用 -a 标志附加到文件中。
Amazon Linux 2 和 CentOS
sudo echo "ftp_user" | sudo tee -a /etc/vsftpd/user_list
Debian 和 Ubuntu
运行以下命令,创建 userlist 文件并将新用户添加到该文件中:
sudo echo "ftp_user" | sudo tee -a /etc/vsftpd.userlist
7.重启 vsftpd 服务:
sudo systemctl restart vsftpd
8.连接到 FTP 服务器。以下示例使用 Filezilla 普通 FTP。
Status: Connecting to 54.xxx.xxx.x2:10021... Status: Connection established, waiting for welcome message... Status: Plain FTP is insecure. Please switch to FTP over TLS. Status: Logged in Status: Retrieving directory listing... Status: Server sent passive reply with unroutable address. Using server address instead. Status: Calculating timezone offset of server... Status: Timezone offset of server is 0 seconds. Status: Directory listing of "/" successful Status: Connecting to 54.xxx.1xx.52:10021... Status: Connection established, waiting for welcome message... Status: Plain FTP is insecure. Please switch to FTP over TLS. Status: Logged in Status: Starting upload of C:\Users\Administrator\Documents\FTPtest.txt Status: Server sent passive reply with unroutable address. Using server address instead. Status: File transfer successful, transferred 10 bytes in 1 second Status: Retrieving directory listing of "/"... Status: Server sent passive reply with unroutable address. Using server address instead. Status: Directory listing of "/" successful
故障排除 FTP 服务器设置问题
如果未正确设置 vsftpd.conf 配置文件的参数,FTP 服务器可能无法启动。在这种情况下,运行以下命令以确定配置不正确的选项:
Amazon Linux 2 和 CentOS
sudo /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
Debian 和 Ubuntu
sudo /usr/sbin/vsftpd /etc/vsftpd.conf
相关内容
- 已提问 5 个月前lg...
- 已提问 5 个月前lg...
- 已提问 3 个月前lg...
- AWS 官方已更新 9 个月前
- AWS 官方已更新 2 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 3 年前