日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

文件传输协议

發(fā)布時間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 文件传输协议 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文件傳輸協(xié)議英文File Transfer Protocol,簡稱為FTP)是用于在網(wǎng)絡(luò)上進行文件傳輸?shù)囊惶讟藴蕝f(xié)議。它屬于網(wǎng)絡(luò)傳輸協(xié)議應(yīng)用層

FTP是一個8位的客戶端-服務(wù)器協(xié)議,能操作任何類型的文件而不需要進一步處理,就像MIMEUnicode一樣。但是,FTP有著極高的延時,這意味著,從開始請求到第一次接收需求數(shù)據(jù)之間的時間,會非常長;并且不時的必須執(zhí)行一些冗長的登陸進程。

?

概述

FTP服務(wù)一般運行在2021兩個端口。端口20用于在客戶端和服務(wù)器之間傳輸數(shù)據(jù)流,而端口21用于傳輸控制流,并且是命令通向ftp服務(wù)器的進口。當(dāng)數(shù)據(jù)通過數(shù)據(jù)流傳輸時,控制流處于空閑狀態(tài)。而當(dāng)控制流,空閑很長時間后,客戶端的防火墻,會將其會話置為超時,這樣當(dāng)大量數(shù)據(jù)通過防火墻時,會產(chǎn)生一些問題。此時,雖然文件可以成功的傳輸,但因為控制會話,會被防火墻斷開;傳輸會產(chǎn)生一些錯誤。

FTP實現(xiàn)的目標:

  • 促進文件的共享(計算機程序或數(shù)據(jù))
  • 鼓勵間接或者隱式的使用遠程計算機
  • 向用戶屏蔽不同主機中各種文件存儲系統(tǒng)(File system)的細節(jié)
  • 可靠和高效的傳輸數(shù)據(jù)
  • 缺點:

  • 密碼和文件內(nèi)容都使用明文傳輸,可能產(chǎn)生不希望發(fā)生的竊聽。
  • 因為必須開放一個隨機的端口以創(chuàng)建連接,當(dāng)防火墻存在時,客戶端很難過濾處于主動模式下的FTP流量。這個問題,通過使用被動模式的FTP,得到了很大解決。
  • 服務(wù)器可能會被告知連接一個第三方計算機的保留端口。
  • 此方式在需要傳輸文件數(shù)量很多的小文件時,性能不好
  • FTP雖然可以被終端用戶直接使用,但是它是設(shè)計成被FTP客戶端程序所控制。

    運行FTP服務(wù)的許多站點都開放匿名服務(wù),在這種設(shè)置下,用戶不需要帳號就可以登錄服務(wù)器,默認情況下,匿名用戶的用戶名是:"anonymous"。這個帳號不需要密碼,雖然通常要求輸入用戶的郵件地址作為認證密碼,但這只是一些細節(jié)或者此郵件地址根本不被確定,而是依賴于FTP服務(wù)器的配置情況。

    FTP具有很強的兼容性,可以在不同的操作系統(tǒng)之間通信,可以使用不同的字符集、不同的文件結(jié)構(gòu)以及不同的文件格式。

    FTP使用三種傳輸方式:

    流方式:數(shù)據(jù)作為連續(xù)的字節(jié)流從FTP交付給TCP

    塊方式:數(shù)據(jù)按塊從FTP交付給TCP

    壓縮方式:將數(shù)據(jù)壓縮后進行傳送

    ?

    主動和被動模式

    FTP有兩種使用模式:主動和被動。主動模式要求客戶端和服務(wù)器端同時打開并且監(jiān)聽一個端口以創(chuàng)建連接。在這種情況下,客戶端由于安裝了防火墻會產(chǎn)生一些問題。所以,創(chuàng)立了被動模式。被動模式只要求服務(wù)器端產(chǎn)生一個監(jiān)聽相應(yīng)端口的進程,這樣就可以繞過客戶端安裝了防火墻的問題。

    一個主動模式的FTP連接創(chuàng)建要遵循以下步驟:

  • 客戶端打開一個隨機的端口(端口號大于1024,在這里,我們稱它為x),同時一個FTP進程連接至服務(wù)器的21號命令端口。此時,該tcp連接的來源地端口為客戶端指定的隨機端口x,目的地端口(遠程端口)為服務(wù)器上的21號端口。
  • 客戶端開始監(jiān)聽端口(x+1),同時向服務(wù)器發(fā)送一個端口命令(通過服務(wù)器的21號命令端口),此命令告訴服務(wù)器客戶端正在監(jiān)聽的端口號并且已準備好從此端口接收數(shù)據(jù)。這個端口就是我們所知的數(shù)據(jù)端口。
  • 服務(wù)器打開20號源端口并且創(chuàng)建和客戶端數(shù)據(jù)端口的連接。此時,來源地的端口為20,遠程數(shù)據(jù)(目的地)端口為(x+1)。
  • 客戶端通過本地的數(shù)據(jù)端口創(chuàng)建一個和服務(wù)器20號端口的連接,然后向服務(wù)器發(fā)送一個應(yīng)答,告訴服務(wù)器它已經(jīng)創(chuàng)建好了一個連接。

    ?

  • FTP和網(wǎng)頁瀏覽器

    大多數(shù)最新的網(wǎng)頁瀏覽器和文件管理器都能和FTP服務(wù)器創(chuàng)建連接。這使得在FTP上通過一個接口就可以操控遠程文件,如同操控本地文件一樣。這個功能通過給定一個FTPURL實現(xiàn),形如ftp://<服務(wù)器地址>(例如,ftp://ftp.gimp.org?)。是否提供密碼是可選擇的,如果有密碼,則形如ftp://<login>:<password>@<ftpserveraddress>。大部分網(wǎng)頁瀏覽器要求使用被動FTP模式,然而并不是所有的FTP服務(wù)器都支持被動模式。

    ?

    架設(shè)FTP服務(wù)器

    一、Windows Server 2008 R2

    Windows Server 2008 R2 中自帶了FTP Server 7.5,可單獨下載安裝。

    FTP 7.5 for IIS 7.x (x86)

    FTP 7.5 for IIS 7.x (x64)

    FTP 7.5 新特性:原文地址

    IIS 7.x集成(IIS 7.0IIS 7.5):FTP 7.5已經(jīng)作為IIS 7.x的一部分被安裝,便于集中管理、維護。

    對互聯(lián)網(wǎng)標準更好、更安全的支持:支持SSL上的FTPIPv6UTF8

    共享宿主改進:可以將FTP架設(shè)在已經(jīng)存在的站點,多個FTP使用同一IP

    改進的日志與功能性支持:提供更加詳細的日志記錄。

    可擴展性增強:可以編寫自定義的用戶驗證機制。

    ?

    下面在VirtualBox虛擬機中架設(shè)FTP服務(wù)器。宿主機IP:192.168.0.100,虛擬機IP:192.168.0.101,虛擬網(wǎng)卡采用橋連模式。

    1.1、打開Server Manager,在角色中點擊【添加角色】:

    ?

    1.2、選中【W(wǎng)eb Server(IIS)】,點擊【下一步】:

    ?

    1.3、點擊【下一步】:

    ?

    1.4、在開發(fā)服務(wù)器上,建議全部選中,在生產(chǎn)服務(wù)器上,則酌情選擇,點擊【下一步】:

    ?

    1.5、點擊【安裝】:

    ?

    1.6、安裝成功后關(guān)閉向?qū)?#xff1a;

    ?

    1.7、開始à運行,輸入:inetmgr,打開IIS 管理器:

    ?

    1.8、可以看到FTP 7.5包含的選項:

    ?

    1.9、新建一個FTP站點:

    ?

    1.10、輸入名稱和物理路徑,點擊【下一步】:

    ?

    1.11、IP不限制,默認端口21,不需要SSL證書,點擊【下一步】:

    ?

    1.12、設(shè)置權(quán)限,點擊【完成】:

    ?

    1.13、在瀏覽器中輸入FTP服務(wù)器地址,若無法訪問請檢查宿主機與虛擬機的防火墻設(shè)置:

    ?

    1.14、使用命令行訪問FTP

    最常用的命令有:

    ls 列出遠程機的當(dāng)前目錄

    cd 在遠程機上改變工作目錄

    lcd 在本地機上改變工作目錄

    ascii 設(shè)置文件傳輸方式為ASCII模式

    binary 設(shè)置文件傳輸方式為二進制模式

    close 終止當(dāng)前的ftp會話

    hash 每次傳輸完數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)后就顯示一個#號

    get(mget) 從遠程機傳送指定文件到本地機

    put(mput) 從本地機傳送指定文件到遠程機

    open 連接遠程ftp站點

    quit 斷開與遠程機的連接并退出ftp

    ? 顯示本地幫助信息

    ?

    輸入ftp 主機名/IP登錄:

    ?

    由于設(shè)置為允許匿名訪問,故可以用匿名賬戶登錄(用戶名:anonymous,密碼任意):

    ?

    查看所有目錄和文件:

    ?

    下載一個文件到本地:

    ?

    輸入bye退出登錄:

    ?

    1.15、使用FTP客戶端連接FTP服務(wù)器

    我使用的FileZilla:

    ?

    可以在WireShark中抓到數(shù)據(jù)包:

    ?

    二、Ubuntu 11.04

    Linux下有很多FTP軟件,這里以Ubuntu下面的Pure-FTPd為例來搭建一下Linux中的FTP Server。

    Pure-FTPd是一個基于BSD協(xié)議授權(quán)的開源FTP Server,官方主頁:http://www.pureftpd.org,功能全面,具體功能可以查看文檔。

    安裝Pure-FTPd

    ?

    由于Ubuntu源里的包太老了,故我選擇直接下載源代碼編譯安裝。在http://download.pureftpd.org/pub/pure-ftpd/releases/下載最新穩(wěn)定版,我下載的是pure-ftpd-1.0.32.tar.gz

    ?

    ?

    ?

    解壓縮:tar zxvf pure-ftpd-1.0.32.tar.gz

    ?

    ?

    cd 壓縮后的目錄

    ?

    ?

    ./configure

    ?

    ?

    make

    ?

    ?

    sudo make install

    ?

    ?

    ?

    啟動FTP Server:

    ?

    ?

    sudo /usr/local/sbin/pure-ftpd &

    ?

    ?

    連接測試:

    ?

    ?

    ftp localhost

    ?

    ?

    查看當(dāng)前目錄下的目錄和文件:

    ?

    ?

    在Windows中用命令行連接:

    ?

    ?

    Pure-FTPd有很多命令及參數(shù)配置,具體用法請參閱官方文檔。

    ?


    ?

    小結(jié):

    ?

    ?

    FTP作為十分常用的文件傳輸協(xié)議,在企業(yè)中有著廣泛的引用,各平臺下也提供了大量的Server、Client。在使用中除了關(guān)注傳輸速度之外,傳輸安全性也是必須考慮的。

    ?

    ?

    以下引用維基百科中的常用FTP Server、Client,根據(jù)需要選用:

    ?

    ?

    FTP服務(wù)器列表

    維基百科,自由的百科全書

    以下是FTP服務(wù)器的列表。

    [編輯]圖形界面

    • Bullet Proof FTP Server?[1]
    • CesarFTP?[2]
    • Cerberus FTP Server?[3]
    • Gene6 FTP Server?[4]
    • GuildFTPd?[5]
    • PureFTPd?[6]
    • RaidenFTPD?[7]
    • Serv-U FTP Server?[8]
    • War FTP Daemon?[9]

    [編輯]文字界面

    • AnomicFTPD?[10]
    • BSD ftpd
    • glFTPd?[11]
    • ProFTPd
    • vsftpd?[12]
    • wu-ftpd?[13]

    ?

    FTP客戶端列表

    維基百科,自由的百科全書

    以下是FTP客戶端的列表。

    [編輯]圖形界面

    • AnyClient?[1]
    • Core FTP?[2]
    • CrossFTP?[3]
    • CuteFTP
    • DeluxeFTP
    • FileZilla
    • FlashFXP
    • FTP Surfer?[4]
    • FTPRush?[5]
    • gFTP
    • OneButton FTP?[6]
    • SmartFTP?[7]
    • Total Commander
    • WISE-FTP
    • WS FTP?[8]
    • 8uftp?[9]

    [編輯]文字界面

    • lftp
    • NcFTP
    • tnftp?[10]
    • Wget(只能下傳)

    [編輯]只支持SFTP/SCP

    • Sftp for win32?[11]
    • WinSCP?[12]

    總結(jié)

    以上是生活随笔為你收集整理的文件传输协议的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。