文件服务器之FTP
FTP(File Transfer Protocol)主要用來進行文件的傳輸,尤其是大型文件 時使用FTP傳輸更方面,但是使用FTP時使用明文傳輸,具有一定程度的危險性.下面介紹較為安全但功能較少的vsftpd.
ubuntu安裝vsftpd
sudo apt install vsftpd sudo apt install ftp一.FTP功能簡介
1.不同等級的用戶身份:user,guest,anonymous
實體用戶real user獲得系統的權限比較完整,所以可以進行比較多的操作,而匿名用戶僅提供他下載資源的能力而已
2.限制用戶活動目錄:change root簡稱chroot
用來限制用戶僅能在自己的用戶主目錄當中活動,如此一來,由于用戶無法離開自己的用戶主目錄,而且登錄FTP后,顯示的根目錄就是自己用戶主目錄的內容,這種環境稱之為 change root,簡稱chroot,即改變根目錄的意思.
linux下常用ftp命令
這里以匿名登錄為例
如果目標FTP主機port更改,則使用如下方式連接主機
[ubuntu@VM-48-245 ~]$ ftp hostname 318FTP的傳輸使用的是TCP數據包協議,TCP在簡歷連接前會先進行3次握手,不過FTP服務器是比較麻煩,因為FTP服務器使用了兩個連接,分別是命令通道和數據流通道(ftp-data)
二.FTP連接步驟
FTP默認使用主動式(Active)連接
建立命令通道的連接
如上圖所示,用戶端會隨機取一個大于 1024 以上的埠口 (port AA) 來與 FTP 伺服器端的 port 21 達成連線, 這個過程當然需要三向交握了!達成連線后用戶端便可以透過這個連線來對 FTP 伺服器下達指令, 包括查詢檔名、下載、上傳等等指令都是利用這個通道來下達的;
通知 FTP 服務器端使用 active 且告知連接的端口號
FTP 服務器的 21 端口號主要用在命令的下達,但是當牽涉到資料流時,就不是使用這個連線了。 用戶端在需要資料的情況下,會告知服務器端要用什麼方式來連線,如果是主動式 (active) 連線時, 用戶端會先隨機啟用一個端口 (圖 21.1-1 當中的 port BB) ,且透過命令通道告知 FTP 服務器這兩個資訊,并等待 FTP 服務器的連線;
FTP 服務器『主動』向用戶端連接
FTP 服務器由命令通道了解用戶端的需求后,會主動的由 20 這個端口號向用戶端的 port BB 連線, 這個連線當然也會經過三向交握啦!此時 FTP 的用戶端與服務器端共會建立兩條連線,分別用在命令的下達與資料的傳遞。 而預設 FTP 服務器端使用的主動連線端口號就是 port 20 !
三.FTP的替代sftp
因為SSH技術的產生,我們現在可以用SSH提供的sftp這個Server,在上面傳輸的數據是經過加密的,所以比較安全一些.
SFTP常用命令
連接
將文件有本機上傳到遠程主機
sftp> put /etc/hosts將文件由遠程主機下載回來
sftp> get.bashrc總結
- 上一篇: bash shell 学习记录
- 下一篇: 如何设计应用层协议(草稿)