Centos7下搭建FTP檔案伺服器

我是一匹碼發表於2020-12-17

理論部分:

FTP 會話時包含了兩個通道,一個叫控制通道,埠號 21;一個叫資料通道,端
口號 20。
控制通道:控制通道是和 FTP 伺服器進行溝通的通道,連線 FTP,傳送 FTP 指令
都是通過控制通道來完成的。
資料通道:資料通道是和 FTP 伺服器進行檔案傳輸或者列表的通道

主動模式的工作原理(PORT 模式)

1.客戶端對伺服器發起請求,連線的是伺服器的 21 號埠,客戶端的端
口號 N 是大於 1024 的隨機埠
2.伺服器的 21 號埠給予客戶端響應資料流
3.伺服器開啟 20 號埠去連線客戶端的 N+1 的埠
4.客戶端給予響應,資料開始傳輸

被動模式的工作原理(PASV 模式)

1.客戶端對伺服器發起的請求連線是伺服器的 21 號埠,客戶端的埠
號 N 是大於 1024 的隨機埠
2.伺服器的 21 號埠給予客戶端響應
3.伺服器開啟一個大於 1024 的隨機埠,客戶端使用 N+1 埠號去連線
伺服器開啟的埠
4.伺服器給予響應,於是資料開始傳輸

vsftp 提供 3 種遠端的登入方式:

匿名登入方式
就是不需要使用者名稱,密碼。就能登入到伺服器電腦裡面
本地使用者方式
需要帳戶名和密碼才能登入。而且,這個帳戶名和密碼,都是在你 linux 系
統裡面,已經有的使用者。
虛擬使用者方式
同樣需要使用者名稱和密碼才能登入。但是和上面的區別就是,這個使用者名稱和密
碼,在你 linux 系統中是沒有的(沒有該使用者帳號)

一.搭建匿名訪問 FTP 服務

[root@server ~]# rpm -q vsftpd #檢查是否安裝 vsftpd 軟體包
package vsftpd is not installed
[root@server ~]# yum -y install vsftpd #yum 安裝 vsftpd
[root@server ~]# vim /etc/vsftpd/vsftpd.conf #編輯配置檔案
anonymous_enable=YES #安裝完成之後預設是匿名模式
[root@server ~]# systemctl start vsftpd #啟動 ftp 服務
[root@server ~]# netstat -anlpt | grep vsftpd #檢視監聽的埠號 是否啟動成功
[root@server ~]# firewall-cmd –state #檢視防火牆的狀態,需要關閉防火牆
[root@server ~]# cd /var/ftp #進入ftp檔案目錄
使用windows客戶端訪問

在linux中訪問:
[root@server ~]# yum -y install ftp #安裝 FTP 客戶端
[root@server ~]# ftp 192.168.1.63 //直接通過ip地址訪問
進入之後輸入使用者名稱 ftp,密碼直接輸入回車,就可以進入ftp目錄
通過ls檢視ftp下檔案如果出現

vsftpd 425 Security: Bad IP connecting

問題解決:
1.#vim /etc/vsftpd/vsftpd.conf
2.新增:pasv_promiscuous=YES
3.儲存後退出
4.重啟vsftpd #service vsftpd restart

二、配置系統使用者的 FTP

關閉之前的匿名訪問
[root@server ~]# vim /etc/vsftpd/vsftpd.conf #編輯配置檔案
anonymous_enable=NO
[root@server ~]# systemctl restart vsftpd

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章