【求助】問一個FTP port的問題..困擾已久..

第 1 頁,共 2 頁 1 2 末頁末頁
顯示結果從第 1 筆 到 10 筆,共計 16 筆
  1. #1
    會員
    註冊日期
    2004-12-23
    討論區文章
    9

    【求助】問一個FTP port的問題..困擾已久..

    FTP運作是以TCP21為command channel
    及TCP20為data channel。
    -----------------------------------------------------
    在同網域內(都是172.17.17.0/24內的電腦)
    我架server於A電腦
    client為B電腦
    今天我在B電腦用IE,用主動模式連過去...netstat -n下的狀況顯示為
    Local Address Foreign Address
    A:21 .............. B:3975
    A:21 .............. B:3976
    -----------------------------------------------------ok~到這都沒問題
    當我開始用B電腦抓檔案下來時...

    netstat -n下的狀況顯示為
    Local Address Foreign Address
    A:21 .............. B:3975
    A:21 .............. B:3976
    A:3416............. B:4000 <-------?
    ----------------------------------------------------

    不是TCP20為data channel嗎?為何會是3416port呢?
    為何我試下載檔案~都從沒看過20 port出現過呢?
    (我用主動模式喔..)
    thx~~



  2. #2
    村人A lenbo 的大頭照
    註冊日期
    2001-04-30
    所在地區
    plala.co.jp
    討論區文章
    11,094
    主動模式?被動模式?

  3. #3
    會員 hpo14 的大頭照
    註冊日期
    2003-08-11
    所在地區
    SeedNet 10M/2M
    討論區文章
    342
    今天我在B電腦用IE,用主動模式連過去...netstat -n下的狀況顯示為
    為何我試下載檔案~都從沒看過20 port出現過呢?
    (我用主動模式喔..)
    樓主打的

  4. #4
    村人A lenbo 的大頭照
    註冊日期
    2001-04-30
    所在地區
    plala.co.jp
    討論區文章
    11,094
    FTP的交談流程,小弟是沒深入研究過…
    不過這類走TCP的協定,應該都是大同小異!
    port:20只是負責在那裡daemon而已…
    當client與server做完hand shaking後,就會把原本的port:20轉到其他沒有用的port
    因為HTTP走port:80的流程是醬子…
    所以,小弟認為FTP主動模式下,應該也是八九不離十的做法

  5. #5
    會員
    註冊日期
    2004-12-23
    討論區文章
    9
    引用 作者:lenbo
    FTP的交談流程,小弟是沒深入研究過…
    不過這類走TCP的協定,應該都是大同小異!
    port:20只是負責在那裡daemon而已…
    當client與server做完hand shaking後,就會把原本的port:20轉到其他沒有用的port
    因為HTTP走port:80的流程是醬子…
    所以,小弟認為FTP主動模式下,應該也是八九不離十的做法
    --------------------------------------------------------------------------
    謝謝
    ...你意思是說HTTP最後也會從80 port轉到其他沒有用的port?
    我用不同的fpt client、ftp server等去測~~
    都沒出現20 port~~所以很好奇怎麼都和書寫的不同~~



  6. #6
    Passion nopy 的大頭照
    註冊日期
    2001-02-10
    所在地區
    CABLE
    討論區文章
    369
    引用 作者:hellfallout
    --------------------------------------------------------------------------
    謝謝
    ...你意思是說HTTP最後也會從80 port轉到其他沒有用的port?
    我用不同的fpt client、ftp server等去測~~
    都沒出現20 port~~所以很好奇怎麼都和書寫的不同~~
    樓上那位講錯了!

    正常來講,HTTP 在伺服器端不會用其他的 TCP PORT,只會用 Port 80,
    在用戶端才有可能用其他的 PORT

    TCP 的連線中在 Client 及 Server 端各會有一個 Port Number
    在 Client 端一般是隨機指定的,而 Server 端則看服務而定,一般不會變動

    FTP 的通訊協定比較複雜一點,詳細資料可以參考 http://rfc.giga.net.tw/rfc959

    我這邊簡單解釋一下:

    FTP 通訊協定在伺服器端可能會使用到 TCP Port 20 及 TCP Port 21 (這可以改的)
    TCP Port 21 主要用來傳送命令,TCP Port 20 則用來傳送檔案/資料
    如果你的 FTP Server 不是跑在 Port 21,
    那麼 Data Port 一般會跑在 command port 減 1 的位置

    FTP 有兩種運作模式,一個是 active (主動) 一個是 passive (被動)
    這裡的主動與被動的定義是相對於伺服器的角色而言的

    而 Port 20 只會用在主動模式下

    在主動模式狀況下
    Client 首先連接到 FTP Server 的 TCP Port 21,
    告訴 FTP Server 他要抓一個檔案,然後這時候 Client 要送出一個訊息,
    告訴伺服器他會在那個 TCP Port (隨機指定)等著接收這個檔案,
    然後伺服器會經由自己的 Port 20 主動建立一條連線到 Client 端的這個 Port 上面,
    藉由此連線把檔案傳送給 Client 端

    在被動模式狀況下
    Client 首先連接到 FTP Server 的 TCP Port 21,並指明要採用 Passive 模式,
    接著告訴 FTP Server 他要抓一個檔案,
    這時候伺服器會送出一個訊息,告訴 Client 說已經把檔案準備好放在某個 TCP Port (隨機指定) 上面,
    由 Client 端自行建立一條連線到 Server 的這個 TCP Port 來把檔案傳送回去

    綜合以上所述,如果你的服務是跑在 TCP port 21,且使用主動模式,
    那麼照道理來講,伺服器端連接出去送資料應該要使用 Port 20 才對

    你要不要說明一下伺服器端的環境,
    然後看看能不能把 Client 端的連線過程記錄貼上來看看
    (例如 CuteFTP 連線時會有個小視窗看到一堆命令)

    有一個可能是因為伺服器的設定問題導致的

    這邊有一份文件詳細說明 FTP data-port 的運作模式,很值得你參考 (英文的)

    http://slacksite.com/other/ftp.html

  7. #7
    村人A lenbo 的大頭照
    註冊日期
    2001-04-30
    所在地區
    plala.co.jp
    討論區文章
    11,094
    引用 作者:hellfallout
    謝謝
    ...你意思是說HTTP最後也會從80 port轉到其他沒有用的port?
    我用不同的fpt client、ftp server等去測~~
    都沒出現20 port~~所以很好奇怎麼都和書寫的不同~~
    嗯…這麼說好了!
    如果HTTP是死硬只用port:80,那你這個HTTP server在同一時間內
    就只能服務一個使用者而已了…

    你可以試試看,上傳檔案到FTP server上去
    應該就可以測到port:20了

    ps:小弟應該沒把以前老師教的都還給老師了吧?!

  8. #8
    Passion nopy 的大頭照
    註冊日期
    2001-02-10
    所在地區
    CABLE
    討論區文章
    369
    引用 作者:lenbo
    嗯…這麼說好了!
    如果HTTP是死硬只用port:80,那你這個HTTP server在同一時間內
    就只能服務一個使用者而已了…

    你可以試試看,上傳檔案到FTP server上去
    應該就可以測到port:20了

    ps:小弟應該沒把以前老師教的都還給老師了吧?!
    這位兄弟,你的觀念錯了喔!

    請回去翻看看 Richard Stevens 的 UNIX Network Programming 這本書,
    區別每個連線的是五個數值(5-tuple),包含
    • the protocol (TCP or UDP)
    • local host's ip
    • local host's port number
    • remote host's ip
    • remote host's port number

    只要上面任一個數值不一樣,就是不同的 connection (連線)
    因此雖然 server 端的 port 相同 (HTTP: 80),
    但是由於 client 端的 port number 不同,所以會是可以同時存在的連線

    至於伺服器端能不能同時服務多個用戶,這個與 Port number 無關,
    充其量只是伺服器端的 Process fork 或 Multi-Thread 的程式處理技巧

    不相信的話,去找一台 HTTP Server 看看不就得了...
    伺服器端對於每個 connection 都是使用 Port 80 的喔

    如果你寫過網路程式,伺服器 accept() 後會得到一個新的 socket id 沒有錯,
    不過這是新的 socket id,不是 port number


    哈哈.. 我好像在上 Network Programming 的課程...

  9. #9
    村人A lenbo 的大頭照
    註冊日期
    2001-04-30
    所在地區
    plala.co.jp
    討論區文章
    11,094
    嗯…說實話,我自己也快忘光了…

    印象中,老師是說像是server開個port:33來daemon
    所以client就會去連server的port:33,並要求建立connection
    而server就會去叫socket開個port跑腿給client

    印象中是醬子啦…年代已久,也不敢說是正確地…
    改天有空再來翻翻書…

  10. #10
    會員
    註冊日期
    2004-12-23
    討論區文章
    9
    以下是我用CuteFTP Pro 6.0主動模式去存取ftp server顯現的訊息
    client:172.17.17.25
    server:172.17.17.23
    -----------------------------------------------------------------------
    *** CuteFTP Pro 6.0 - build Mar 25 2004 ***

    STATUS:> Getting listing ""...
    STATUS:> Connecting to FTP server 172.17.17.23:21 (ip = 172.17.17.23)...
    STATUS:> Socket connected. Waiting for welcome message...
    220 CesarFTP 0.99e Server Welcome !
    STATUS:> Connected. Authenticating...
    COMMAND:> USER aaa
    331 User login OK, waiting for password
    COMMAND:> PASS *****
    230 User password OK, CesarFTP server ready
    STATUS:> Login successful.
    COMMAND:> PWD
    257 "/"
    STATUS:> Home directory: /
    COMMAND:> FEAT
    500 Syntax error or unknown command
    STATUS:> This site doesn't support the 'features' command.
    COMMAND:> REST 100
    350 Restarting at 100, send RETR or STOR command to start transfer
    STATUS:> This site can resume broken downloads.
    COMMAND:> REST 0
    350 Restarting at 0, send RETR or STOR command to start transfer
    COMMAND:> PORT 172,17,17,25,4,109
    200 command successfully executed
    COMMAND:> LIST
    150 Data connection created for directory listing
    226 Transfer successfully achieved
    STATUS:> Directory listing completed.
    COMMAND:> TYPE I
    200 Type successfully set
    COMMAND:> PWD
    257 "/"
    NOTE:> New transfer created for \"ghost\" <12>
    STATUS:> Transferring directory "/ghost"...
    STATUS:> Applying Folder Overwrite rule: prompting.
    COMMAND:> TYPE A
    200 Type successfully set
    COMMAND:> CWD /ghost
    250 Directory change OK
    STATUS:> PWD skipped. Current folder: "/ghost".
    COMMAND:> PORT 172,17,17,25,4,120
    200 command successfully executed
    COMMAND:> LIST
    150 Data connection created for directory listing
    226 Transfer successfully achieved
    STATUS:> Transferring file "/ghost/gh051006.gho"...
    STATUS:> Removing local file "C:\Documents and Settings\ghost\gh051006.gho".
    COMMAND:> TYPE I
    200 Type successfully set
    COMMAND:> PORT 172,17,17,25,4,122
    200 command successfully executed
    COMMAND:> RETR gh051006.gho
    150 Data connection created for /ghost/gh051006.gho retrieving

    --------------------------------------------------------------------
    以下是client端 netstat -n的狀況
    --------------------------------------------------------------------
    TCP 172.17.17.25:1132 172.17.17.23:21 ESTABLISHED
    TCP 172.17.17.25:1145 172.17.17.23:21 ESTABLISHED
    TCP 172.17.17.25:1146 172.17.17.23:1095 ESTABLISHED
    TCP 172.17.17.25:1147 172.17.17.23:1096 ESTABLISHED
    --------------------------------------------------------------------------
    麻煩看一下囉~~



類似的主題

  1. 【求助】問一個FTP的權限問題
    作者:woodrew 所在討論版:-- FreeBSD & Linux 討 論 版
    回覆: 1
    最後發表: 2005-03-18, 12:40 PM
  2. 【求助】問一個FTPㄉ問題
    作者:qasd 所在討論版:-- 網 路 軟 體 討 論 二 版 (網路其他軟體)
    回覆: 0
    最後發表: 2002-08-20, 10:03 PM
  3. 【求助】問一個FTP連線時的問題
    作者:ccc0369 所在討論版:☉ -- 架 站 DIY 討 論 版
    回覆: 1
    最後發表: 2002-04-28, 03:44 AM
  4. 請問一個win2000pro的問題【求助】
    作者:chowe 所在討論版:-- Windows 討 論 版
    回覆: 2
    最後發表: 2002-04-23, 03:38 AM
  5. 問一個更改FTP的PORT的問題
    作者:honchung 所在討論版:-- 網 路 技 術 版
    回覆: 0
    最後發表: 2002-01-23, 06:42 PM

 

此網頁沒有從搜尋引擎而來的訪客

發表文章規則

  • 不可以發表新主題
  • 不可以回覆文章
  • 不可以上傳附加檔案
  • 不可以編輯自己的文章
  •