主機部署參考教程: https://blog.csdn.net/qq_29644709/article/details/109526662
在我的阿里雲上搭建-docker-vsftpd-虛擬用戶-獨立目錄 :(docker搭建vsftpd,相對簡單些,創建與刪除都快速)
docker搭建vsftpd參考教程:
https://www.niwoxuexi.com/blog/hangge/article/903.html#
本次使用的docker images : fauria/vsftpd
因為是雲服務器,或者你的網絡是處於nat網絡中
配置時,盡量使用公網地址 (公網114.55.87.169)(私網172.18.53.157) ftp 114.55.87.169,不然會報錯:登錄、查看等超時(time out)
說明下:ftp服務器的root用戶,不是linux系統的root用戶,盡量不要配置root用戶
ftp服務器的默認主目錄是你當前登錄ftp時的用戶主目錄“/”,但不是linux系統的“/”
上傳時,要么,就不寫服務器的路徑,自動放到你登錄ftp時的用戶主目錄里,
我直接 關閉了selinux和firewalld
生產環境,盡量都配置上要使用的端口
==搭建開始===passive被動模式==================================================
docker run -d -v /app/dockerdir/vsftpd/:/home/vsftpd \
-p 20:20 -p 21:21 -p 21100-21110:21100-21110 \
-e FTP_USER=admin -e FTP_PASS=admin \
-e PASV_ADDRESS=114.55.87.169 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \
--name vsftpd-yr --restart=always fauria/vsftpd
==搭建完成==單個用戶=========================================================
給vsftpd容器添加用戶yr,一般來說一個用戶一個目錄,增加用戶,要手動配置,還要重啟vsftpd容器,要不就搞個腳本吧(本人沒弄腳本 )
docker exec -i -t vsftpd bash
mkdir /home/vsftpd/yr
echo -e "yr\yr" >> /etc/vsftpd/virtual_users.txt
/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
exit
docker restart vsftpd
==搭建完成==添加多個用戶=======================================================
==以下是從linux系統上登錄ftp的報錯===本人親測========================================
--error--vsftp: connect: Connection timed out
在創建ftp時,直接使用服務器的公網地址
--error--425 Security: Bad IP connecting
VSftpd連接錯誤425 Security: Bad IP connecting解決方法,故障分析:FTP客戶端軟件連接VSftpd服務報此錯誤,大概原因是在連接中變換了IP地址。
解決方法:
# vi /etc/vsftpd/vsftpd.conf
添加:pasv_promiscuous=YES
保存退出
# service vsftpd restart
pasv_promiscuous選項參數說明:
此選項激活時,將關閉PASV模式的安全檢查。該檢查確保數據連接和控制連接是來自同一個IP地址。小心打開此選項。此選項唯一合理的用法是存在於由安全隧道方案構成的組織中。默認值為NO。
合理的用法是:在一些安全隧道配置環境下,或者更好地支持FXP時(才啟用它)。
--error--vsftp上傳553 Could not create file
說明下:ftp服務器的root用戶,不是linux系統的root用戶,盡量不要配置root用戶
ftp服務器的默認主目錄是你當前登錄ftp時的用戶主目錄“/”,但不是linux系統的“/”
上傳時,要么,就不寫服務器的路徑,自動放到你登錄ftp時的用戶主目錄里,
put xxxxx
要么,跟ftp用戶的全路徑/文件名,要寫全,不然還是要報錯
--以下為實例--
ftp> put iptable_shell.tar.gz /
local: iptable_shell.tar.gz remote: /
227 Entering Passive Mode (114,55,87,169,82,112).
553 Could not create file.
ftp> put iptable_shell.tar.gz
local: iptable_shell.tar.gz remote: iptable_shell.tar.gz
227 Entering Passive Mode (114,55,87,169,82,111).
150 Ok to send data.
226 Transfer complete.
10240 bytes sent in 4.6e-05 secs (222608.69 Kbytes/sec)
ftp> put iptable_shell.tar.gz /ip
local: iptable_shell.tar.gz remote: /ip
227 Entering Passive Mode (114,55,87,169,82,110).
150 Ok to send data.
226 Transfer complete.
10240 bytes sent in 4.1e-05 secs (249756.10 Kbytes/sec)
--以上實例--