# FTP Linux Ubuntu20.04 查詢IP ``` ip addr show ``` 這會列出系統中所有的網路介面及其IP地址。通常,為"eth0"或"enp0s3"的介面中找到IP地址,該介面通常是系統的主要網路介面。如果您使用的是無線網路,則介面可能被命名為"wlan0"或類似的名稱。 您也可以使用以下命令來找到您的公網IP地址: ``` curl ifconfig.me ``` 設定 1.安裝vsftpd伺服器:在終端機上執行以下命令安裝vsftpd: ``` sudo apt-get update sudo apt-get install vsftpd ``` 設定vsftpd.conf檔案:在終端機上執行以下命令打開vsftpd.conf檔案: ``` sudo nano /etc/vsftpd.conf ``` 在檔案中設定以下選項: ``` anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=Yes allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO require_ssl_reuse=NO ssl_ciphers=HIGH ``` 上述選項的含義如下: anonymous_enable:禁止匿名訪問 local_enable:允許本地使用者訪問FTP伺服器 write_enable:允許使用者上傳檔案 local_umask:設定使用者上傳檔案的預設權限 dirmessage_enable:啟用目錄訊息 use_localtime:使用本地時間 xferlog_enable:啟用傳輸日誌 connect_from_port_20:使用端口20進行傳輸 chroot_local_user:限制使用者訪問的目錄 secure_chroot_dir:設定chroot目錄 pam_service_name:PAM服務名稱 rsa_cert_file:伺服器憑證路徑 rsa_private_key_file:伺服器私鑰路徑 ssl_enable:啟用SSL加密 allow_anon_ssl:禁止匿名SSL訪問 force_local_data_ssl:強制使用SSL加密傳輸檔案 force_local_logins_ssl:強制使用SSL加密登錄 ssl_tlsv1:啟用TLS v1加密 ssl_sslv2:禁用SSL v2加密 ssl_sslv3:禁用SSL v3加密 require_ssl_reuse:禁用SSL連接重用 ssl_ciphers:設定SSL加密算法 3.創建FTP使用者:在終端機上執行以下命令創建FTP使用者(以username為例): ``` sudo useradd ``` 在Linux系統中,可以使用命令行介面的FTP客戶端來連接FTP伺服器。以下是連線FTP伺服器的步驟: 1.在終端機中執行以下命令啟動FTP客戶端: ``` ftp ``` 2.在FTP客戶端中輸入以下命令來連接FTP伺服器(假設FTP伺服器的IP地址為192.168.0.100): ``` open 192.168.0.100 ``` 3.輸入FTP使用者名稱和密碼來登錄FTP伺服器: ``` Name: <FTP使用者名稱> Password: <FTP使用者密碼> ``` 4.登錄成功後,可以使用FTP客戶端提供的命令來訪問FTP伺服器的檔案系統,例如: ``` ls:列出當前目錄下的檔案 cd:切換到指定目錄 get:下載檔案到本地 put:上傳本地檔案到伺服器 ``` 使用方式例如: ``` ls cd /path/to/directory get filename put filename ``` 5.當完成檔案操作後,可以使用以下命令關閉FTP連接: ``` bye ``` ## Chat GPT [Chat GPT](https://chat.openai.com/) Chat GPT 教學 1.安裝vsftpd(Very Secure FTP Daemon)軟體包。在終端機中執行以下命令進行安裝: ``` sudo apt-get update sudo apt-get install vsftpd ``` 2.在安裝期間,可能會收到一個對話框,詢問您如何配置vsftpd。如果不知道如何回答這些問題,可以選擇使用默認配置。 3.安裝完成後,啟動vsftpd服務。在終端機中執行以下命令: ``` sudo systemctl start vsftpd ``` 4.還可以配置vsftpd服務以在開機時自動啟動。在終端機中執行以下命令: ``` sudo systemctl enable vsftpd ``` 5.接下來,為FTP使用者創建帳戶。在終端機中執行以下命令,替換username和password為您要創建的FTP使用者的名稱和密碼: ``` sudo useradd -m username -s /usr/sbin/nologin sudo passwd username ``` 6.開啟FTP伺服器的設定檔案,這個檔案通常在 /etc/vsftpd.conf。您可以使用nano或vim等文字編輯器來編輯此檔案: ``` sudo nano /etc/vsftpd.conf ``` 7.修改vsftpd.conf文件以啟用FTP服務,例如設置以下選項: ``` anonymous_enable=NO local_enable=YES write_enable=YES chroot_local_user=YES ``` 其中,anonymous_enable選項用於禁止匿名FTP訪問,local_enable用於啟用本地FTP訪問,write_enable用於啟用寫入權限,chroot_local_user用於限制FTP使用者只能訪問自己的主目錄。 8.修改完vsftpd.conf文件後,請重新啟動vsftpd服務以應用新的設定: ``` sudo systemctl restart vsftpd ``` 現在,已經設定好了FTP伺服器,其他人可以使用FTP客戶端訪問您的伺服器並傳輸資料。他們需要使用您為他們創建的FTP使用者名稱和密碼登錄。另外,您可能需要開啟FTP伺服器的防火牆端口,使得外部用戶端可以連接到FTP伺服器。 要開啟FTP伺服器的防火牆端口,您需要在Linux Ubuntu 20.04上執行以下步驟: 1.確認您正在使用的防火牆。Linux Ubuntu 20.04預設使用的是ufw防火牆,您可以在終端機中執行以下命令來檢查: ``` sudo ufw status ``` 如果顯示inactive,則表示防火牆已經停用。如果顯示active,則表示防火牆正在運行。 2.允許FTP伺服器的控制連接埠。FTP使用的是TCP協定的21端口作為控制連接埠,您需要在防火牆上開啟此端口。在終端機中執行以下命令: ``` sudo ufw allow 21/tcp ``` 3.允許FTP伺服器使用被動模式下的資料傳輸端口。FTP在被動模式下使用一個動態的範圍的端口來傳輸資料,因此您需要在防火牆上開啟一個範圍的端口。在vsftpd.conf檔案中可以找到使用的端口範圍,例如: ``` pasv_min_port=30000 pasv_max_port=31000 ``` 這表示FTP伺服器在被動模式下會使用30000到31000之間的端口。您可以在終端機中執行以下命令來允許此範圍的端口: ``` sudo ufw allow 30000:31000/tcp ``` 4.重啟防火牆以應用新的設定。在終端機中執行以下命令: ``` sudo ufw reload ``` 現在,FTP伺服器的防火牆端口已經開啟,外部用戶端可以使用FTP客戶端連接到您的FTP伺服器並傳輸資料。