linux服務基礎之ftp服務

2022-08-29 16:24:29 字數 2087 閱讀 1658

ftp是一種檔案傳輸協議,我們以redhat6.9為伺服器系統,來介紹一下ftp伺服器,這裡我們先介紹一下ftp協議工作的原理

ftp協議可以在不同型別的計算機之間傳輸檔案,工作流程大致為

1:客戶機向伺服器發出請求,同時客戶機隨機的開啟乙個大於1024的埠等待與伺服器建立連線

2:ftp伺服器在埠21偵聽到客戶機的請求後,在伺服器的21埠和客戶機的埠建立乙個ftp連線會話

3:當出現資料請求時,客戶機再次隨機開啟乙個大於1024的埠與伺服器的20埠開始開始傳輸資料,傳輸完畢後,隨機埠與20埠均自動關閉

4:客戶機與伺服器斷開連線,客戶機釋放第乙個建立連線的隨機埠

介紹完工作原理,再來介紹一下工作模式

ftp有兩種模式

主動模式/被動模式

主動模式的工作方式

1:客戶機隨機開啟乙個大於1024的埠n,與伺服器的21埠進行連線

2:客戶機使用n+1埠對連線進行監視

3:客戶機向伺服器發起資料傳輸,並再次隨機開啟乙個大於1024的埠x

4:伺服器收到資料連線請求後,用20埠與x建立資料連線

5:傳輸完畢後斷開連線,釋放埠x,埠m與伺服器的21埠斷開連線,釋放m

被動模式的工作方式

1:客戶機隨機開啟乙個大於1024的埠n,與伺服器的21埠進行連線

2:客戶機使用n+1埠對連線進行監視

3:客戶機向伺服器表明自己處在被動模式

4:伺服器向客戶機傳送請求,並隨機開啟乙個大於1024的埠x

5:客戶機收到請求後在自己的隨機大於1024的埠上與伺服器的隨機埠x進行資料的傳輸

6:傳輸完畢後斷開連線,釋放隨機埠,客戶機埠n與伺服器的21埠斷開連線,釋放伺服器的隨機埠x

總結,以上兩種工作模式可以看出,區別在於有誰發出請求,如果是客戶機主動發起請求,並等待伺服器主動通過該請求建立資料連線,則被稱為主動模式

反之,如果是伺服器發起請求,並被動的等待客戶機來建立資料連線,則為被動模式。

最明顯的一點,伺服器下的主動模式與被動模式連線皆為21埠,但資料傳輸,主動模式下為21埠,而被動模式下為乙個隨機大於1024的埠

ftp的使用者型別

1:匿名使用者  顧名思義,可以在沒有使用者名稱和密碼的情況下訪問ftp伺服器的共享資源

2:本地使用者  這是ftp伺服器的本地使用者,不僅可以訪問ftp伺服器的共享資源還可以訪問自己的家目錄

3:虛擬使用者  非本地使用者的ftp使用者,相比本地使用者,更加安全,虛擬使用者只能訪問ftp伺服器的共享資源,沒有操作其他資源的許可權

我們主要以redhat6.9為例,ftp伺服器的軟體,但我們因此我i們在這裡主要說的是vsftp

ftp服務的配置也非常的簡單,ftp服務是乙個直接開啟就能使用的服務,我們主要介紹匿名使用者和本地使用者的配置方式

我們首先可以用

chkconfig vsftpd off  設定開機自啟

service vsftpd status  檢視ftp伺服器當前的狀態

service vsftpd start  開啟ftp伺服器 (前面說過,ftp伺服器不需要任何配置可以直接開啟使用) 

這裡需要注意的幾個檔案

/etc/vsftpd/vsftpd.conf  ftp服務的主配置檔案

/etc/pam.d/vsftpd  ftp的pam認證檔案

/var/ftp  匿名使用者的主目錄

/etc/vsftpd/ftpusers  禁止使用vsftp的使用者列表

/etc/vsftpd/user_list  禁止或允許使用vsftp的使用者列表

主要就是這些檔案的資訊

配置一台匿名ftp伺服器

需要對主配置檔案的引數進行修改

anonymous_enable=yes  允許使用者匿名訪問ftp伺服器

anon_upload_enable=yes  匿名使用者可以上傳檔案

anon_mkdir_write_enable=yes  允許匿名使用者具有新建資料夾的許可權

配置到此就完成了

配置一台僅本地使用者訪問的ftp伺服器

anonymous_enable=no  禁止匿名使用者訪問

local_enable=yes  允許本地使用者訪問

配置完成

linux 啟動ftp服務,sftp服務

啟動ftp服務 在 etc rc.d init.d 目錄下 命令 service vsftp start 啟動ssh服務,sftp服務 在 etc init.d 目錄下 命令 etc init.d sshd start 注意這裡需要在絕對路徑下執行sshd start 開啟root可以通過ftp軟體...

linux 啟動ftp服務,sftp服務

啟動ftp服務 在 etc rc.d init.d 目錄下 命令 service vsftp start 啟動ssh服務,sftp服務 在 etc init.d 目錄下 命令 etc init.d sshd start 注意這裡需要在絕對路徑下執行sshd start 開啟root可以通過ftp軟體...

linux 啟動ftp服務,sftp服務

系統安裝了selinux,因為預設下是沒有開啟ftp的支援,所以訪問時都被阻止了。需要執行以下步驟才行進行ftp,否則會傳輸失敗 檢視selinux設定 getsebool a grep ftp ftpd disable trans off 或者ftp home dir off 解決方法 使用set...