---
# System prepended metadata

title: FTP

---

# 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伺服器並傳輸資料。







