# 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 ``` 如果正常啟動會看到下圖 ![](https://hackmd.io/_uploads/HknZUvxDn.png) #### 5. 新增使用者 (如果擁有非root使用者的可跳過) > 預設情況下,大多數 FTP 伺服器禁止使用 root 帳號登入,這是出於安全性的考慮。使用 root 帳號登入 FTP 伺服器可能會帶來潛在的安全風險,因為 root 帳號擁有系統的最高權限。 為 linux 新增使用者 ``` sudo adduser username ``` 然後登入你的新帳號 #### 6. 在本地端登入 FTP Server ``` ftp localhost ``` 然後依序填入帳號密碼,就可以在本地端成功登入 ![](https://hackmd.io/_uploads/Hy09tPxDh.png) #### 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 軟體,點左上角 “站台管理員” ![](https://hackmd.io/_uploads/BJdC2Pev2.png) 2. 選擇 “新增站台” ,然後填入以下資訊,填完後按 “連線” ![](https://hackmd.io/_uploads/rkuw0Pewn.png) 3. 連線成功 ![](https://hackmd.io/_uploads/rJPbyOlv3.png) ### 大功告成,這樣就完成 FTP Server 架設囉!!