12.linux安裝和配置ftp服務

一、ftp簡介

ftp(File Transfer Protocol文件傳輸協議)是基於TCP/IP協議的應用層協議,用於文件的傳輸,包括ftp服務器(或服務端)和ftp客戶端。

ftp客戶端與服務器創建網絡連接,請求登錄服務器,登錄成功後,就可以進行文件傳輸,主要包括開載文件和上傳文件兩種操作。

ftp協議很古老,有人說它技術太落後,不安全,對於這種說法我不於評論。但是,ftp的應用場景仍非常廣泛,這是不爭的事實。

在Linux系統中,ftp客戶端和ftp服務器是操作系統自帶的,但不一定會缺省安裝。

二、安裝ftp軟件包

在CentOS7中,採用yum來安裝ftp軟件包,包括ftp服務器和ftp客戶端。如果已經安裝,再次執行yum就會把軟件包升級到最新版本。

1、安裝ftp服務器

yum -y install vsftpd

2、安裝ftp客戶端

yum -y install ftp

三、配置ftp服務器

ftp的傳輸模式有被動模式和主動式兩種,缺省是被動模式,主動模式的應用場景極少,爲了方便表達,在接下來的內容中只介紹被動模式,主動模式在本文中也有介紹。

1、關閉SELINUX

修改/etc/selinux/config文件,把SELINUX參數的值改爲disabled。

SELINUX =disabled

重啓linux系統或執行setenforce 0使修改馬上生效。

2、配置ftp數據端口參數

ftp的數據端口也稱爲高端口,在/etc/vsftpd/vsftpd.conf文件中配置,由pasv_min_port和pasv_max_port兩個參數指定,如果文件中沒有這兩個參數,手工的加進去。

pasv_min_port=5000   # 高端口範圍的最小值。
pasv_max_port=5500   # 高端口範圍的最大值。

3、開通防火牆

開通防火牆的方法有兩種:

1)開通ftp服務。

firewall-cmd --zone=public --add-service=ftp --permanent

2)開通ftp服務需要的端口,21是控制端口,5000-5500是數據端口範圍,也就是上一節中在/etc/vsftpd/vsftpd.conf文件中配置的pasv_min_port和pasv_max_port參數。

firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=5000-5500/tcp --permanent

重啓防火牆:

systemctl restart firewalld.service

4、啓動vsftpd服務

ftp服務器的服務名是vsftpd,相關的操作如下:

systemctl start    vsftpd   # 啓動服務。
systemctl stop    vsftpd    # 停止服務。
systemctl restart vsftpd    # 重啓服務。
systemctl status  vsftpd    # 查看服務狀態。
systemctl enable  vsftpd    # 啓用開機自動動vsftpd服務。
systemctl disable vsftpd    # 禁用開機自動動vsftpd服務。

5、雲平臺訪問策略配置

如果您購買的是雲服務器上,需要登錄雲服務器提供商的管理平臺開通訪問策略(或安全組),開通21和高端口的訪問策略。

不同雲服務器提供商的管理平臺操作方法不同,具體操作方法閱讀操作手冊、或者百度,或者諮詢雲服務器提供商的客服。

如果雲服務器的ftp服務不對建立數據會話,在百度中輸入“被動模式下FTP不能建立數據會話問題“可以找到解決問題的方法,目前的阿里雲服務器就存在這個問題。

四、主動模式和被動模式

ftp有兩種模式,分別是port模式(主動模式)和pasv模式(被動模式)。

1、主動模式

客戶端給服務端的21端口發命令說:我要輸傳文件,我已經打開了自己的20端口,您向我的20端口發起TCP連接,我們來傳輸文件。服務端知道後,就會主動向客戶端的20端口發起連接,連接成功後開始傳輸文件。

在這裏插入圖片描述

在主動模式下,ftp請求是由客戶端TCP連接的;傳輸數據的時候,TCP連接卻是由服務端發起的。

2、被動模式

客戶端給服務器端的21端口發命令說:我要傳輸文件。服務器端知道後打開一個空閒的高端口,然後告訴客戶端,我已經打開了某某端口,您向我這個端口發起TCP連接,然後我們用這個端口來傳輸文件。
在這裏插入圖片描述
在被動模式下,不管是ftp命令,還是傳輸數據,都是由客戶端向服務端發起TCP連接。

3、從主動模式到被動模式

在很久以前每臺電腦都有一個ip地址,ftp只有主動模式,後來出現了共享上網技術,所以也就有了下面的問題。

共享上網就是多臺電腦共享一個公網ip去使用internet,例如某個局域網出口的公網ip是210.33.25.108,當內網用戶(192.168.1.100)訪問外網的ftp服務器時,如果採用主動模式,192.168.1.100告訴了ftp服務器我需要某個文件和我打開了20端口之後,由於共享上網的原因,192.168.1.100在出網關的時候ip已經被轉換成了210.33.25.108,所以ftp服務器端收到的消息是210.33.25.108需要某個文件並打開了20端口,ftp服務器就會嘗試連接210.33.25.108的20端口,這樣當然不會成功。

在主動模式中,ftp的兩個端口是相對固定的,如果命令端口是n的話,那數據端口就是n-1,也就是說默認情況下,命令端口是21,數據端口就是20,如果您把ftp服務的端口改成了521,那麼數據端口就是520,這樣配置防火牆很方便,只需要開通兩個端口就可以了。但是,在共享上網的環境中無法使用主動模式。

在被動模式中,默認情況下命令端口是21,數據端口是隨機分配的。但是,被動模式中數據端口的範圍可以配置,防火牆也可以配置端口範圍。

五、版權聲明

C語言技術網原創文章,轉載請說明文章的來源、作者和原文的鏈接。
來源:C語言技術網(www.freecplus.net)
作者:碼農有道

如果文章有錯別字,或者內容有錯誤,或其他的建議和意見,請您留言指正,非常感謝!!!

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