吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

FTP文件傳輸協議的工作模式

馬哥Linux運維 ? 來源:博客園 ? 2025-02-06 10:09 ? 次閱讀

FTP文件傳輸協議

FTP(File Transfer Protocol)文件傳輸協議,基于C/S架構,支持文件的上傳和下載功能

FTP使用2個端口,都是基于TCP進行傳輸連接,分別是20和21

20端口為數據傳輸端口,上傳和下載文件使用此端口

21端口為命令傳輸端口,客戶端和服務端之間的命令交互使用此端口


工作模式

主動模式:Client向Server的20端口發送數據連接請求,服務器主動連接,然后傳輸文件數據
 
 
被動模式:Client向Server發送請求,Server隨機開放一個端口和Client連接傳輸文件
[root@dns named]# netstat -tunpla|grep -w 21
tcp6       0      0 :::21                   :::*                    LISTEN      4946/vsftpd         
tcp6       0      0 192.168.5.101:21        192.168.5.8:62972       ESTABLISHED 7208/vsftpd   #命令傳輸端口
tcp6       0      0 192.168.5.101:18502     192.168.5.102:52025     TIME_WAIT   -       #數據傳輸端口             

 FTP支持三種認證模式:
 ? 匿名用戶:任何人無需驗證即可訪問和使用ftp
 ? 本地用戶:使用Linux系統本地用戶認證來使用ftp
 ? 虛擬用戶:通過創建虛擬用戶來訪問ftp,虛擬用戶只用于ftp而不會登錄Linux系統

wget工具下載文件

wget ftp://user1:123@192.168.5.101/1.txt

本地模式

1.安裝好ftp后啟動服務
[root@web01 ~]# systemctl restart vsftpd.service 
2.創建用戶
useradd user1 
3.設置用戶不能登錄
4.給用戶設置密碼

5.客戶端登錄
[root@localhost ~]# lftp 192.168.5.101
lftp 192.168.5.101:~> user user1
Password: 
lftp user1@192.168.5.101:~> ls
lftp user1@192.168.5.101:~> pwd
ftp://user1@192.168.5.101/%2Fhome/user1
lftp user1@192.168.5.101:~> 


6.上傳,拉取文件
lftp 192.168.5.101:~> user user1
Password: 
lftp user1@192.168.5.101:~> put /etc/passwd
2546 bytes transferred                         
lftp user1@192.168.5.101:~> exit

lftp user1@192.168.5.101:~> get passwd
2546 bytes transferred

匿名模式登錄ftp

服務端修改配置文件參數
[root@dns ~]#  cat /etc/vsftpd/vsftpd.conf |grep -v ^#
anonymous_enable=YES

客戶端登錄
[root@dns2 ~]# ftp 192.168.5.101
Connected to 192.168.5.101 (192.168.5.101).
220 (vsFTPd 3.0.3)
Name (192.168.5.101 anonymous   
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.


#客戶端匿名登錄之后的目錄為/var/ftp/pub
[root@web01 user1]# cat /etc/passwd|grep ftp
ftp14FTP User:/var/ftp:/sbin/nologin
[root@web01 user1]# ls /var/ftp/
pub

匿名上傳ftp

匿名上傳拒絕
[root@localhost ~]# lftp 192.168.5.101
lftp 192.168.5.101:~> ls
drwxr-xr-x    2 0        0               6 Nov 16  2020 pub
lftp 192.168.5.101:/> put passwd 
put: Access failed: 550 Permission denied. (passwd)

1.修改文件夾權限
不能將根目錄權限改為777
[root@web01 ~]# chmod 777 /var/ftp/pub

2.修改配置文件
[root@web01 pub]# cat /etc/vsftpd/vsftpd.conf |grep -v ^#
anonymous_enable=YES
anon_upload_enable=YES


2.進入pub目錄上傳文件
lftp 192.168.5.101:/> cd pub
lftp 192.168.5.101:/pub> put passwd 
2546 bytes transferred
lftp 192.168.5.101:/pub>




匿名刪除文件

lftp 192.168.5.101:/pub> rm passwd
rm: Access failed: 550 Permission denied. (passwd)
lftp 192.168.5.101:/pub> 


1.配置文件中添加行
anon_mkdir_write_enable=YES  ---可以創建文件夾
anon_other_write_enable=YES  ---可以刪除文件

2.測試
lftp 192.168.5.101:/pub> mkdir test
mkdir ok, `test' created
lftp 192.168.5.101:/pub> ls
-rw-------    1 14       50           2546 Nov 21 10:54 passwd
drwx------    2 14       50              6 Nov 21 13:58 test
lftp 192.168.5.101:/pub> rm passwd 
rm ok, `passwd' removed
lftp 192.168.5.101:/pub> rm -fr test/
rm ok, `test/' removed
lftp 192.168.5.101:/pub> ls

修改本地用戶和匿名登錄的位置

配置文件加入這段
cat /etc/vsftpd/vsftpd.conf |grep -v ^#
anon_root=/mnt
local_root=/mnt

修改目錄的權限
[root@web01 ~]# chmod 777 /mnt/data/

下載ftp里面的文件

修改umask值可以下載自己上傳的文件
anon_umask=022

[root@localhost ~]# lftp 192.168.5.101
lftp 192.168.5.101:~> cd data/
lftp 192.168.5.101:/data> get passwd 
2546 bytes transferred
lftp 192.168.5.101:/data> 

本地用戶參考匿名用戶

僅允許user1登錄

配置文件中加上
userlist_enable=YES
userlist_deny=NO

在文件中加入用戶名
[root@dns vsftpd]# cat /etc/vsftpd/user_list 
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
user1


不在ftpusers文件中  在user_list文件中才能登錄

允許用戶跳出和不能跳出根目錄

添加配置文件
chroot_local_user=YES   ###所有人都不能跳出根目錄  FTP根目錄
chroot_list_enable=YES   ###如果需要指定用戶可以跳出FTP根目錄,則需要開啟以下內容
chroot_list_file=/etc/vsftpd/chroot_list

[root@dns vsftpd]# cat chroot_list   僅允許user1可以跳出目錄
user1

vsftp配置虛擬用戶

[root@web01 ~]# cd /usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS
[root@node4 ~]# vim /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=vuser666
allow_writeable_chroot=YES  #允許用戶在其 chroot 目錄中進行寫操作
anon_upload_enable=YES  #允許匿名用戶上傳文件
[root@node4 vsftpd]# vim /etc/vsftpd/logins.txt 
zhangsan
redhat
lisi
redhat
[root@node4 vsftpd]# useradd -d /data/upload/ vuser666
[root@node4 ~]# chmod 755 /data/upload/
[root@node4 vsftpd]# db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/user.db
[root@node4 ~]# vim /etc/pam.d/vsftpd
####該文件僅保留兩行,其他均刪除
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/user
account required pam_userdb.so db=/etc/vsftpd/user
[root@node4 ~]# lftp 192.168.6.4
lftp 192.168.6.4:~> user zhangsan
Password: 
lftp zhangsan@192.168.6.4:~> cd redhat/
lftp zhangsan@192.168.6.4:/redhat> ls
-rw-------    1 1002     1002         1025 Jul 25 19:04 group.1
-rw-r--r--    1 0        0            2689 Jul 25 18:31 passwd
lftp zhangsan@192.168.6.4:/redhat> put /etc/profile
2123 bytes transferred
lftp zhangsan@192.168.6.4:/redhat> exit

上傳的文件在vuser666的家目錄中

鏈接:https://www.cnblogs.com/cloudwangsa/p/18563731

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FTP
    FTP
    +關注

    關注

    0

    文章

    111

    瀏覽量

    40714
  • 傳輸協議
    +關注

    關注

    0

    文章

    79

    瀏覽量

    11493
  • 文件傳輸
    +關注

    關注

    0

    文章

    37

    瀏覽量

    8329

原文標題:FTP

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何高效實現文件傳輸

    服務器提供文件傳輸功能,需要將磁盤上的文件讀取出來,通過網絡協議發送到客戶端。如果需要你自己編碼實現這個文件傳輸功能,你會怎么實現呢?
    發表于 08-01 16:16 ?591次閱讀
    如何高效實現<b class='flag-5'>文件傳輸</b>

    第35章 FTP文件傳輸協議基礎知識

    轉帖 本章節為大家講解FTP(File Transfer Protocol,文件傳輸協議)的基礎知識,方便后面章節的實戰操作。(本章的知識點主要整理自網絡)35.1 初學者重要提示35.2 F
    發表于 12-14 11:29

    淺析Linux的ftp文件傳輸協議

    FTP 是 File Transfer Protocol (文件傳輸協議)的英文簡稱,而中文簡稱為“文傳協議”。
    發表于 07-18 08:19

    RK3399網絡工具應用-SSH網絡登入、FTP文件傳輸

    RK3399網絡工具應用-SSH網絡登入、FTP文件傳輸本文硬件平臺以飛凌嵌入式OK3399-C開發板為基礎進行講解,其它RK3399產品,由于各個廠家設置不同會有所差異,請參考使用。飛凌
    發表于 02-21 10:25

    文件傳送協議,文件傳送協議是什么意思

    文件傳送協議,文件傳送協議是什么意思 FTP是一種Internet文件傳輸服務,它在Inter
    發表于 03-20 15:29 ?5127次閱讀

    實現CFDP協議延時NAK模式文件傳輸

    CFDP協議,其數據丟失與錯誤檢測重傳機制可以有效解決該問題。本文結合航天工程經驗搭建空間數據管理系統,采用軟硬件協同機制在空間數據傳輸鏈路中設計實現了CFDP協議延時NAK模式
    發表于 11-05 11:33 ?2次下載
    實現CFDP<b class='flag-5'>協議</b>延時NAK<b class='flag-5'>模式</b><b class='flag-5'>文件傳輸</b>

    基于嵌入式的FTP服務器的設計、結構與工作模式介紹

    FTP文件傳輸協議)是一種用于從網絡中一臺主機向另外一臺主機傳輸文件協議,屬于Interne
    的頭像 發表于 12-04 09:11 ?2817次閱讀
    基于嵌入式的<b class='flag-5'>FTP</b>服務器的設計、結構與<b class='flag-5'>工作</b><b class='flag-5'>模式</b>介紹

    Linux教程之文件傳輸FTP工作原理和FTP的安裝與配置方法

    本文檔的主要內容詳細介紹的是Linux教程之文件傳輸FTP工作原理和FTP的安裝與配置方法。文件傳輸是指用戶通過網絡從遠程計算機上下載或上
    發表于 11-06 17:33 ?15次下載
    Linux教程之<b class='flag-5'>文件傳輸</b><b class='flag-5'>FTP</b>的<b class='flag-5'>工作</b>原理和<b class='flag-5'>FTP</b>的安裝與配置方法

    FTP服務構成及FTP服務器介紹

    FTP(File Transfer Protocol,文件傳輸協議) 是 TCP/IP 協議組中的協議之一。
    的頭像 發表于 08-22 14:22 ?5727次閱讀

    基于UDP的簡單文件傳輸協議TFTP設計

    前面我們已經實現了UDP的回環客戶端和回環服務器的簡單應用,接下來我們實現一個基于UDP的簡單文件傳輸協議TFTP。
    的頭像 發表于 12-14 15:06 ?2560次閱讀
    基于UDP的簡單<b class='flag-5'>文件傳輸</b><b class='flag-5'>協議</b>TFTP設計

    一般會如何實現文件傳輸?零拷貝如何提升文件傳輸性能?

    服務器提供文件傳輸功能,需要將磁盤上的文件讀取出來,通過網絡協議發送到客戶端。
    的頭像 發表于 07-26 14:43 ?1088次閱讀
    一般會如何實現<b class='flag-5'>文件傳輸</b>?零拷貝如何提升<b class='flag-5'>文件傳輸</b>性能?

    中文應用筆記《利用 MPLAB? Harmony v3 TCP/IP 協議棧在SAM E54 MCU上實現文件傳輸協議

    利用 MPLAB Harmony v3 TCP/IP 協議棧 在SAM E54 MCU上 實現文件傳輸協議 簡介 文件傳輸協議(File T
    的頭像 發表于 09-26 17:30 ?7938次閱讀
    中文應用筆記《利用 MPLAB? Harmony v3 TCP/IP <b class='flag-5'>協議</b>棧在SAM E54 MCU上實現<b class='flag-5'>文件傳輸</b><b class='flag-5'>協議</b>》

    FTP、SFTP、TFTP文件傳輸協議之間的主要區別

    FTP(File Transfer Protocol,文件傳輸協議)是用于在計算機網絡中傳輸文件的標準
    的頭像 發表于 11-15 09:04 ?7482次閱讀
    <b class='flag-5'>FTP</b>、SFTP、TFTP<b class='flag-5'>文件傳輸</b><b class='flag-5'>協議</b>之間的主要區別

    FTP連接被重置問題的解決方法與技巧!FTP服務器連接修復!

    FTP連接被重置問題的解決方法與技巧!FTP服務器連接修復! FTP文件傳輸協議)是用于在計算機網絡環境中進行
    的頭像 發表于 01-12 16:00 ?1.1w次閱讀

    MTP協議FTP協議的比較分析

    在計算機網絡中,文件傳輸協議FTP)和媒體傳輸協議(MTP)是兩種不同的數據傳輸
    的頭像 發表于 01-03 10:34 ?162次閱讀
    澳门档百家乐官网的玩法技巧和规则| 百家乐官网园首选海立方| 利来网上娱乐| 德州扑克 盲注| 大发888大赢家| 大发888娱乐场下载 zhidu| 如何看百家乐的玩法技巧和规则| 百家乐官网是个什么样的游戏 | 鸿运娱乐城| 赌博百家乐游戏| 旧金山百家乐官网的玩法技巧和规则| 金山区| 7人百家乐官网桌子| 百家乐官网登封代理| 游戏机百家乐庄闲| 全讯网vc8888.com| tt线上娱乐城| 百家乐官网筹码多少钱| 24山方位吉凶| 澳门百家乐长赢打| 智尊娱乐| 象州县| 博狗百家乐官网的玩法技巧和规则 | 百家乐官网技术论坛| 百家乐官网大赢家客户端| 百家乐官网的胜算法| 大发888娱乐官方| 百家乐技真人荷官| 百家乐赌坊| 博之道百家乐官网的玩法技巧和规则 | 百家乐官网平注法口诀技巧| 连环百家乐怎么玩| 大发888娱乐送体验金| 百家乐官网开户百家乐官网技巧| 顶尖百家乐对单| 金都百家乐的玩法技巧和规则 | 杨公24山日课应验诀| 大发888娱乐城pt| 超级大赢家| 百家乐官网号解码器| 百家乐博娱乐场开户注册|