如何在 Lightsail 執行個體上設定 FTP 伺服器和 FTP 使用者?

上次更新日期:2021-10-05

我想在執行 Amazon Linux 2、CentOS、Ubuntu 或 Debian 的 Lightsail 執行個體上設定 FTP 伺服器和 FTP 使用者。該如何進行?

解決方案

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

此文章是否有幫助?


您是否需要帳單或技術支援?