天天看點

ftp常用指令

       ftp(File Transfer Protocol,檔案傳輸協定) 是 TCP/IP 協定族中的一員。ftp協定包括兩個組成部分,其一為ftp伺服器,其二為ftp用戶端。

       ftp用戶端與伺服器建立網絡連接配接,請求登入伺服器,登入成功後,就可以進行檔案傳輸。

       檔案傳輸的請求由用戶端發起,主要包括取檔案和發送檔案兩種操作。

       在linux下,ftp用戶端和ftp服務端是作業系統自帶的,但不一定預設安裝。

       在windows下,指令提示符下有ftp用戶端指令,但很難用,問題很多,也有第三方用戶端軟體,如FileZilla、 Cuteftp、Ws_ftp、Flashfxp、Leapftp等。windows版的ftp服務端軟體要購買,具體不清楚,ServerU。

主動模式和被動模式

1. 通信端口

       利用ftp傳輸過程中,主要使用到兩個端口,一個是控制端口,一個是資料端口,控制端口一般為21,而資料端口不一定是20,這和FTP的應用模式有關,如果是主動模式,就是為20,如果為被動模式,由伺服器端和用戶端協商而定。

2. 主動模式與被動模式

       FTP具有兩種模式,分别是port模式(也叫主動模式)和pasv模式(也叫被動模式),怎麼來了解這兩種模式呢?

       在主動模式下:用戶端給伺服器端的21端口發指令說,我要下載下傳什麼什麼,并且還會說我已經打開了自己的20端口,你就從這裡把東西給我吧,伺服器收到後就會連接配接用戶端已打開的20端口把東西傳給用戶端,這就是主動模式,可以了解為服務端主動給用戶端傳輸檔案。

       在被動模式下:用戶端給伺服器端的21端口發指令說,我要下載下傳什麼什麼,伺服器端知道後,就打開一個空閑的高端口,然後告訴用戶端,我已經打開了某某端口,你自己進去拿吧,于是用戶端就從那個高端口進去拿檔案了,這就是被動模式,可以了解為服務端被用戶端拿走了東西。

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

       在很久以前沒有共享上網這種技術,一個電腦一個ip。但是後來出現了,是以也就有了下面的問題。

       大家都知道,共享上網就是很多台電腦共享一個公網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這個公網IP,是以伺服器端收到的消息也就是210.33.25.108需要某個檔案并打開了20端口,FTP伺服器就會往210.33.25.108的20端口傳資料,這樣當然會連接配接不成功了,因為打開20端口的并不是192.168.1.100這個位址,在這種情況下被動模式就有用了。

       在主動模式中,FTP的兩個端口是相對固定的,如果指令端口是n的話,那資料端口就是n-1,也就是說預設情況下,指令端口是21,資料端口就是20,你把指令端口改成了600,那麼資料端口就是599。這樣使用防火牆就很友善了,隻要開通這兩個端口就可以了,但是如果用戶端是共享上網的話那豈不是不能正常使用FTP了,這樣還是不行,一定需要被動模式。

       在被動模式中,預設情況下指令端口是21,但是資料端口是随機的。不過,因為被動模式中資料端口的範圍是可以自定義的,是以也可以通過端口範圍去配置防火牆。

安裝ftp用戶端

       #yum -y install ftp

安裝ftp伺服器

       #yum -y install vsftpd

配置ftp伺服器

       Linux作業系統的使用者即ftp的使用者,也可以配置專用的ftp使用者,專用的ftp使用者隻能用于ftp,不能登入作業系統。

1、防火牆開啟 21 端口。

       不同linux版本防火牆的配置有所不同,centos7中的防火牆改成了firewall。

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

       指令含義: 

              --zone               # 作用域 

              --add-port=21/tcp   # 添加端口,格式為:端口/通訊協定 

              --permanent         # 永久生效

       顯示success為成功

       如果要采用主動模式,防火牆還要開通20端口。

       #firewall-cmd --zone=public --add-port=20/tcp --permanent

2、配置ftp高端口參數

       # vi /etc/vsftpd/vsftpd.conf

ftp常用指令

       設定被動模式的高端口範圍為5500-6000。

3、防火牆開啟5500-6000端口

       #firewall-cmd --zone=public --add-port=5500-6000/tcp --permanent

4、關閉 selinux

       #vi /etc/selinux/config

       修改成 selinux=disabled

       執行 setenforce 0 使修改馬上生效

ftp常用指令

5、防火牆服務相關操作

       centos7和centos6的服務啟停方式也不同,以下是centos7的指令。

       #systemctl restart firewalld.service          # 重新開機防火牆

       #systemctl stop firewalld.service            # 關閉防火牆

       #systemctl start firewalld.service            # 啟動防火牆

       #systemctl status firewalld.service           # 檢視防火牆服務狀态

       如果防火牆配置不成功,直接關掉它,不用防火牆。

       centos7開機禁用防火牆:systemctl enable firewalld.service

       centos6開機禁用防火牆:chkconfig iptables off

6、vsftpd服務相關操作

       #systemctl start vsftpd      # 啟動

       #systemctl stop vsftpd      # 停止

       #systectl status vsftpd       # 檢視

       #systemctl enable vsftpd    # 開機自動啟動vsftpd服務

       #systemctl disable vsftpd    # 禁用vsftpd服務

ftp常用指令

1. 登入ftp伺服器

       方法一:輸入ftp  ip位址,然後輸入使用者名和密碼,如下圖:

ftp常用指令

       方法二:輸入ftp,用open連上伺服器,再輸入使用者名和密碼,如下圖:

ftp常用指令

       方法三:輸入ftp -n ip位址,用user指令登入,如下圖:

ftp常用指令

       進入ftp服務後輸入open加ip位址open 118.89.50.198

       當連接配接成功後會讓你進行身份驗證,在輸入密碼時螢幕上沒有任何顯示,不用管,直接輸完密碼敲Enter鍵即可。

2. 檢視ftp伺服器上的檔案

       dir:顯示伺服器目錄和檔案清單

       ls:顯示伺服器目錄和檔案清單

       cd:進入伺服器指定的目錄

       lcd:進入本地用戶端指定的目錄。

       dir指令可以使用通配符“*”和“?”,比如,顯示目前目錄中所有擴充名為jpg的檔案,可使用指令 dir  *.jpg。

       cd指令中必須帶目錄名。比如 cd /tmp 表示進入/tmp目錄

3. 下載下傳檔案

       ftp的傳輸模式分為ASCII碼方式和二進制方式兩種,二進制方式可以傳輸任何檔案,包括壓縮包、可執行程式、圖檔、視訊、音頻等,而ASCII碼方式隻能傳輸.txt、.htm等ascii碼檔案。在實際開發中,不管什麼檔案,都用二進制方式傳輸檔案。

       type:檢視目前的傳輸方式

       ascii:設定傳輸方式為ASCII碼方式

       binary:設定傳輸方式為二進制方式

       get/recv:下載下傳單個檔案get filename [newname](filename為下載下傳的ftp伺服器上的檔案名,newname為儲存在本都計算機上時使用的名字,如果不指定newname,檔案将以原名儲存。

       get/recv指令下載下傳的檔案将儲存在本地計算機的工作目錄下。該目錄是啟動ftp用戶端時的工作目錄目錄。如果想修改本地計算機的工作目錄,可以使用 lcd 指令。比如:lcd /tmp 表示将工作目錄設定/tmp/目錄。

       mget:下載下傳多個檔案mget filename [filename ....](mget指令支援通配符“*”和“?”,比如:mget  *.jpg 表示下載下傳ftp伺服器目前目錄下的所有擴充名為jpg的檔案。)

       prompt:關閉/打開互交提示。

4. 上傳檔案

       put/send:上傳單個檔案put filename [newname]

       filename為上傳的本地檔案名,newname為上傳至ftp伺服器上時使用的名字,如果不指定newname,檔案将以原名上傳。

       mput:上傳多個檔案mput filename [filename ....]

       mput指令支援通配符“*”和“?”,比如:mput  *.jpg 表示上傳用戶端伺服器目前目錄下的所有擴充名為jpg的檔案。

       prompt:關閉/打開互交提示。

5. 結束并退出ftp

       bye:結束與伺服器的ftp會話并退出ftp環境

6. 其它ftp指令

       pwd:檢視ftp伺服器上的目前工作目錄

       rename filename newfilename:重命名ftp伺服器上的檔案

       delete filename:删除ftp伺服器上一個檔案。

       mdelete [remote-files] :删除多個檔案。

       mkdir pathname:在伺服器上建立目錄。

       rmdir pathname:删除伺服器上的目錄。

       passive:主動模式與被動模式切換。

       nlist:列出伺服器目錄中的檔案名,如:nlist  /home/wucz  /tmp/tmp.list,表示把伺服器上/home/wucz目錄下的檔案列出來,結果輸出到本地的/tmp/tmp.list檔案中。

       help [cmd]:顯示ftp指令的幫助資訊,cmd是指令名,如果不帶參數,則顯示所有ftp指令。

windows登入ftp

       windows的指令提示符下有ftp用戶端程式,但是不好用。

       采用資料總管,輸入:ftp://伺服器ip,如下圖:

ftp常用指令

       在空白的位置點滑鼠右鍵,選擇登入菜單,如下圖:

ftp常用指令

       輸入使用者名和密碼登入ftp伺服器,如下圖:

ftp常用指令

版權聲明

繼續閱讀