如何在 Lightsail 執行個體上設定 FTP 伺服器和 FTP 使用者?
上次更新日期:2022年1月12日
我想在執行 Amazon Linux 2、CentOS、Ubuntu 或 Debian 的 Lightsail 執行個體上設定 FTP 伺服器和 FTP 使用者。該如何進行?
解決方案
注意:FTP 以純文本形式傳輸所有資料和密碼。SFTP 是連接到執行個體和傳輸資料的更安全方式。如需使用 SFTP 的資訊,請參閲使用 SFTP 連接到 Amazon Lightsail 中的 Linux 或 Unix 執行個體。如需創建 SFTP 使用者的資訊,請參閲如何在我的 Lightsail 執行個體上創建 SFTP 使用者?
1. 執行下列命令來安裝 VSFTPD 套件:
Amazon Linux 2 和 CentOS
sudo yum install vsftpd -y
Ubuntu 和 Debian
sudo apt install vsftpd -y
2. 編輯 vsftpd.config 檔案以變更環境所需的變數。
vsftpd.config 檔案位置會隨作業系統而不同:
- Amazon Linux 2 和 CentOS:/etc/vsftpd/vfstpd.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
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
listen_port=10021
pasv_enable=YES
pasv_min_port=21000
pasv_max_port=21999
pasv_addr_resolve=NO
注意:連接埠 21 是 FTP 的預設連接埠。您可以使用連接埠 21。不過,為求安全,上述範例使用自訂連接埠 10021 來作為 FTP 的連接埠。若要自訂連接埠,請將 listen_port 變更為您想要使用的連接埠,並將 connect_from_port_20 設定為 NO。針對您打算在執行個體防火牆上用於 FTP 的連接埠,請確定您已將其啟用。在上述範例中,自訂和 Lightsail 防火牆上會啟用連接埠 10021 和 21000-21999。
3. 執行下列命令以新增 FTP 使用者:
sudo adduser --home /home/ftp_user 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 plain 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 檔案中的選項如過不正確,會導致 vsftpd 服務停止運作。如果您無法將其啟動,請執行下列命令來找出未正確設定的選項:
Amazon Linux 2 和 CentOS
sudo /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
Debian 和 Ubuntu
sudo /usr/sbin/vsftpd /etc/vsftpd.conf