天天看點

網路檔案共享服務原理_學習筆記實際需求和區域網路内解決方案DAS NAS SAN1、FTP 協定(File Transfer Protocol 檔案傳輸協定)2、RPC協定

實際需求和區域網路内解決方案

SMAB

NFS

FTP

DAS NAS SAN

1、FTP 協定(File Transfer Protocol 檔案傳輸協定)

FTP封包格式

FTP有2種工作模式:
分為主動模式和被動模式,基于伺服器角度而言
主動模式(port style):
    指令:用戶端:随機端口port1----> 伺服器端:21
    資料:用戶端:随機端口port2<—-------> 伺服器端:20

用戶端通過發送指令比如get,ls,等指令告訴伺服器端需要通路的資源和操作等,然後用戶端是以主動模式連接配接的伺服器,用戶端在發送get等指令後,還會告訴用戶端這邊的資料接收随機端口是多少,然後伺服器通過20主動去發起tcp連接配接請求,然後建立資料連接配接後發送資料給用戶端。
這樣子存在的問題就是防火牆一般是對入方向的資料進行控制,因為伺服器端的20并不是監聽端口,是以當防火牆發現有往伺服器20端口發送的封包就會拒絕,是以當windows去連接配接阿裡雲主機的時候需要對dport=20的資料進行放行。

被動模式(passive  style):
    指令: 用戶端:随機端口port3-------> 伺服器端:21
    資料: 用戶端:随機端口port4<-------> 伺服器端:随機端口port5

被動模式就是用戶端發起指令比如get,我要擷取資料了,要開啟資料連結了,我是被動模式連結的伺服器,伺服器說我知道了,然後發送了一個響應封包告訴用戶端你連這個端口就好了(還不如說你就連20就好了,我還是不知道為啥子要這麼設計呢?,一個程序同時能接受使用者的請求數,不能如80那樣去,通過主程序排程,通過子程序或子線程的方式來響應,是以使用随機端口建立新的連接配接請求。這就是被動模式的原因,),然後用戶端就向此dport5發送tcp連接配接請求,然後擷取資料。這邊就比較那啥了,因為用戶端防火牆會開放ftp用戶端的會話,是以沒啥影響,伺服器端的防火牆應該也能夠識别這個是本地ftp服務自己的端口放行放行,才行。但是設定這種模式有啥好處就不得而知了,而且ftp獨有的2個連接配接也不知孰好孰壞,反正就伺服器而言,主動發起tcp請求,還是被動接受用戶端發來的tcp請求,隻要能傳輸資料就好了不是。

被動伺服器端口port5為協商結果,
227 Entering Passive Mode (host_ip,xx,yy)
伺服器資料端口為:xx*256+yy           
linux預設是用被動模式,windows預設是用的是主動模式

實作工具

Server:常見的伺服器端軟體

windows:Serv-U,IIS

Serv-U多平台,可用于Linux,多用于windows    [https://www.serv-u.com/]           

linux:wu-ftp(最早的ftp實作工具),pure-ftpd,proftpd,vsftpd

Linux下幾款ftp軟體的分析參看:[http://blog.chinaunix.net/uid-8874157-id-3729247.html]

proftpd更專業,功能強大

pure-ftpd更簡單,部署簡單

vsftpd更安全,性能好           
Client:常見的用戶端端軟體

各種浏覽器

windows:FileZilla,tftpd32

FileZilla多平台,多用于windows  [https://filezilla-project.org/]           

linux:ftp,lftp,lftpget,wget,curl

ftp:軟體包ftp

lftp和lftpget:軟體包lftp

wget:軟體包wget           

狀态碼

1XX:資訊 125:資料連接配接打開

2XX:成功類狀态 200:指令OK 230:登入成功

3XX:補充類 331:使用者名OK

4XX:用戶端錯誤 425:不能打開資料連接配接

5XX:伺服器錯誤 530:不能登入

使用者賬号

匿名使用者

系統使用者

虛拟使用者

共享哪些檔案資源

使用者能夠對這些檔案資源進行什麼的操作權限。如何對使用者進行認證

nss:名稱解析架構

/lib64/libnss

/usr/lib64/libnss

/etc/nsswitch.conf

pam:可插入認證子產品

資料傳輸安全

2、RPC協定