015 Rust 網路程式設計,FTP 介紹

linghuyichong發表於2020-05-17

FTP(File Transfer Protocol,檔案傳輸協議)是 TCP/IP 協議組中的協議之一。其主要作用是在伺服器和客戶端之間實現檔案的傳輸和共享。FTP協議執行在TCP連線上,保證了檔案傳輸的可靠性。

FTP使用了兩個並行的tcp來傳輸檔案:一個是控制連線,使用21號埠;一個是資料連線,使用20號埠,控制連線用於在兩個主機之間傳輸控制資訊,如口令,使用者標識,存放、獲取檔案等命令。資料連線用於實際傳送一個檔案,傳送完檔案之後資料連線會關閉。

FTP主要有主動模式和被動模式兩種。主動模式是TFP客戶端告訴服務端用哪個埠作為資料埠,然後讓服務端來連線自己。被動模式則是由客戶端發起控制連線請求和資料連線請求。

本節搭建一個FTP伺服器,可用於我們後續進行測試。

  • 建立資料夾
    cd ~
    mkdir ftpserver
  • 安裝ftp伺服器
    sudo apt-get install vsftpd
  • 配置vsftpd.conf檔案:
    sudo vim /etc/vsftpd.conf
    新增如下:
    anonymous_enable=NO
    anon_root=/home/xxx/ftpserver
    no_anon_password=YES
    write_enable=YES
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
  • 新增組使用者
    sudo groupadd ftpgroup
  • 增加使用者,例如使用者名稱為tt
    sudo useradd -g ftpgroup -d ~/ftpserver/tt -M tt
  • 建立tt對應的資料夾tt
    mkdir tt //在ftpserver目錄下
    sudo chmod 777 tt
  • 設定密碼
    sudo passwd tt
  • 重啟vsftpd
    sudo /etc/init.d/vsftpd restart
  • 開啟終端,輸入:
    ftp 127.0.0.1
  • 輸入使用者名稱tt
  • 輸入密碼
  • 使用get命令下載
  • 使用put命令上傳
本作品採用《CC 協議》,轉載必須註明作者和本文連結
令狐一衝

相關文章