docker--FTP服務器

1、拉取鏡像(bogem/ftp)

sudo docker pull bogem/ftp 

2、生成FTP服務器

sudo docker run -d -v <host folder>:/home/vsftpd \
                -p 20:20 -p 21:21 -p 21100-21110:21100-21110 \
                -e FTP_USER=<username> \
                -e FTP_PASS=<password> \
                -e PASV_ADDRESS=<ip address of your server> \
                --name ftp \
                --restart=always bogem/ftp

   參數解釋:

             -d 表示新建容器在後臺運行

             -v 表示設置目錄映射 設置舉例 -v <host folder>:/home/vsftpd 將宿主機的目錄映射到docker容器的/home/vsftpd ;需要注意的是(用戶<username>登錄後, 程序會在/home/vsftpd文件夾下, 自動新建一個<username>文件夾, 用來存放上傳的文件)

             -p 爲映射端口  -p 20:20 表示將宿主機20端口映射到docker容器的20端口,-p 21:21 表示將宿主機21端口映射到docker容器的21端口, -p 21100-21110:21100-21110 表示將宿主機的21100到21110端口映射到docker容器的21100到21110端口

             -e 表示追加參數,FTP_USER 爲ftp登錄用戶名、FTP_PASS爲ftp登錄密碼、PASV_ADDRESS 爲ftp服務器器的 ip(外網ip)

            --name ftp 表示容器名爲 ftp(這個名字可以自定義)

            --restart=always 表示 docker重啓的時,容器自動啓動

   3、補充說明

        與端口密切相關的是主動模式和被動模式兩種連接方式

       

        3.1、主動模式: 21端口爲ftp默認的端口,是ftp的控制端口, 而20端口是ftp的數據端口, 21端口用來接收客戶端連接, 20端口用來傳輸數據; 服務器(主動地)定下規矩,客戶端與服務端建立連接, 那通過21端口, 想傳數據就通過20端口, 20端口和21端口結合到一起就是ftp的主動模式

        3.2、被動模式: 主動模式有一些安全性問題, 如果有人想攻擊你的ftp服務, 就直接到20端口堵你, 爲了避免數據出門被人堵, 就出現了被動模式, 被動模式把傳數據的20端口, 改成了範圍, 比如上文中的21100-21110, 具體哪個值由客戶端來定(比如21115), 這樣傳出的數據就不容易被人堵,安全性大大提升, 現在大多數ftp客戶端,默認使用被動模式連接服務器, 也就是由客戶端定傳數據的端口

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章