# Linux 架設 FTP Server
###### tags: `Linux`、`FTP`
我們要來實作如何在我們的 Linux 上架設自己的 FTP Server
#### 1. 安裝 vsftp
```
sudo apt-get install vsftp
```
#### 2. 設定 vsftp
請依實際需要增、刪、修下列內容
```
sudo vim /etc/vsftpd.conf
```
```
#/etc/vsftpd.conf 以下為個人會用到的功能
listen=YES
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=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=NO
utf8_filesystem=YES
pasv_enable=YES
pasv_addr_resolve=YES
pasv_max_port=3000
pasv_min_port=20000
```
* listen=YES: 將作為一個獨立的Server運行,並監聽指定的 IP 地址和端口
> 注意: listen_ipv6 與 listen 是互斥選項,listen 代表監聽IPv4,listen_ipv6 代表監聽IPv6,只能擇一開啟
* anonymous_enable=YES: 允許匿名訪問
* no_anon_password=YES: 匿名用戶登入時不詢問密碼
* anon_upload_enable=YES: 匿名用戶可以上傳
* anon_mkdir_write_enable=YES: 匿名用戶可以建立目錄
* local_enable=YES: 允許本機用戶登入
* write_enable=YES: 設定允許使用者可以上傳檔案與資料夾
* local_umask=022: 本地用戶上傳文件的umask
* xferlog_enable=YES: 啟用上傳/下載日誌紀錄
* utf8_filesystem=YES: 指定了文件系統使用 UTF-8 編碼
* pasv_enable=YES: 該設定啟用了被動模式(Passive Mode)。在被動模式下,服務器會告訴客戶端使用哪個端口來建立數據連接。
* pasv_addr_resolve=YES: 指定了使用域名解析來解析被動模式下的服務器 IP 地址
* pasv_max_port=30000: 該設定指定了被動模式可用的最大端口號
* pasv_min_port=20000: 該設定指定了被動模式可用的最小端口號
> *服務器會隨機選擇一個在 pasv_min_port 和 pasv_max_port 範圍內的端口來建立數據連接
#### 3. 重啟 FTP Server
```
service vsftpd restart
```
#### 4. 查看 FTP Server 狀態
```
service vsftpd status
```
如果正常啟動會看到下圖

#### 5. 新增使用者 (如果擁有非root使用者的可跳過)
> 預設情況下,大多數 FTP 伺服器禁止使用 root 帳號登入,這是出於安全性的考慮。使用 root 帳號登入 FTP 伺服器可能會帶來潛在的安全風險,因為 root 帳號擁有系統的最高權限。
為 linux 新增使用者
```
sudo adduser username
```
然後登入你的新帳號
#### 6. 在本地端登入 FTP Server
```
ftp localhost
```
然後依序填入帳號密碼,就可以在本地端成功登入

#### 7. 在遠端登入 FTP Server
> FileZilla是一種免費的FTP使用者端以及伺服器端開放原始碼程式,具有多種平台的軟體套件,可以在Windows,Linux和macOS平台上執行。伺服器和客戶端都支援FTP和FTPS(FTP over SSL/TLS),而客戶端還可以連接到SFTP伺服器。
* [FileZilla MacOS](https://filezilla-project.org/download.php?platform=osx)
* [FileZilla Window](https://filezilla-project.org/download.php?platform=win64)
1. 開啟安裝好的 FileZilla 軟體,點左上角 “站台管理員”

2. 選擇 “新增站台” ,然後填入以下資訊,填完後按 “連線”

3. 連線成功

### 大功告成,這樣就完成 FTP Server 架設囉!!