一、FTP簡介
FTP服務–用來傳輸文件協議
FTP是一種上傳和下載用的軟件。用戶可以通過它把自己的PC機與運行FTP協議的服務器相連,訪問服務器上的程序和信息。
與大多數Internet服務一樣,FTP也是一個客戶機/服務器系統。用戶通過客戶機程序向服務器程序發出命令,服務器程序執行用戶所發出的命令,並將執行的結果返回到客戶機。
1、FTP通信端口
FTP服務器默認使用TCP協議的20、21端口於客戶端進行通信
20端口用於建立數據連接,並傳輸文件數據
21端口用於建立控制連接,並傳輸FTP控制命令
2、FTP數據連接模式
FTP數據連接分爲主動模式和被動模式
主動模式:服務器主動發起數據連接
被動模式:服務器被動等待數據連接
二、FTP連接實驗(圖文詳解)
1、實驗環境:虛擬機CentOS7、虛擬機Win10
1、編輯ftp配置文件
yum install -y vsftpd #安裝軟件vsftpd
cd /etc/vsftpd/ #切換到/etc/vsftpd目錄下,配置文件爲/etc/vsftpd/vsftpd.conf
cp vsftpd.conf vsftpd.conf.bak #修改配置文件之前先備份,它沒有模板
設置匿名用戶訪問的FTP服務(最大權限)
vim /etc/vsftpd/vsftpd.conf #修改配置文件
anonymous_enable=YES #開啓匿名用戶訪問,默認已開啓
write_enable=YES #開放服務器的寫權限(若要上傳,必須開啓),默認已開啓
anon_umask=022 #設置匿名用戶所上傳數據的權限掩碼(反掩碼),默認已開啓
anon_upload_enable=YES #允許匿名用戶上傳文件,默認已註釋,需取消註釋
anon_mkdir_write_enable=YES #允許匿名用戶創建(上傳)目錄。默認已註釋,需取消註釋
anon_other_write_enable =YES #允許刪除、重命名、覆蓋等操作,需添加
爲匿名訪問ftp的根目錄下的 pub子目錄設置最大權限,以便匿名用戶上傳數據
chmod 777 /var/ftp/pub
systemctl start vsftpd #開啓服務
systemctl stop firewalld #關閉防火牆
setenforce 0 #關閉系統安全機制
匿名訪問測試
在虛擬機Windows10打開 開始 菜單,輸入 cmd 命令打開命令提示符
ftp 192.168.184.10 #建立ftp連接
匿名訪問,用戶名爲ftp,密碼爲空,直接回車即可完成登錄
ftp> pwd #匿名訪問ftp的根目錄爲Linux系統的/var/ftp/目錄
ftp> ls #查看當前目錄
ftp> cd pub #切換到pub 目錄
ftp> get 文件名 #下載文件到當前Windows本地目錄
ftp> put 文件名 #上傳文件到ftp目錄
ftp> quit #退出
虛擬機win10
虛擬機CentOS7
虛擬機win10
虛擬機CentOS7
設置本地用戶驗證訪問ftp,並禁止切換到ftp以外的目錄(默認登錄的根目錄爲本地用戶的家目錄)
vim /etc/vsftpd/vsftpd.conf #修改配置文件
local_enable=Yes #啓用本地用戶
anonymous_enable=NO #關閉匿名用戶訪問
write_enable=YES #開放服務器的寫權限(若要上傳,必須開啓)
anon_umask=077 #可設置僅宿主用戶擁有被上傳的文件的權限(反掩碼)
chroot_local_user=YES #將訪問禁錮在用戶的宿主目錄中
allow_writeable_chroot=YES #允許被限制的用戶主目錄具有寫權限
systemctl restart vsftpd #重啓服務
虛擬機CentOS7
虛擬機win10
虛擬機CentOS7
虛擬機win10
修改匿名用戶、本地用戶登錄的默認根目錄
anon_root=/var/www/html #anon_root 針對匿名用戶
local_root=/var/www/html #local_root 針對系統用戶