twu2
2006-06-11, 11:39 AM
ftp 就目前看來, 本來就是一個很 ugly 的協定. 並不像多數常用的協定一般, 單純只用一個 port.
正常來說, 所有指令的傳輸是透過 tcp port 21.
如果用 active mode, server 端固定用 tcp port 20 來傳送列表與檔案.
如果用 passive mode, server 端會用任何一個 > 1024 的 tcp port (看 server 的設定, 可選擇在某個範圍) 來傳送列表與檔案.
所以, 如果你的 firewall 或分享器, 沒有針對這個協定做特別處理的話, 而只打開 tcp port 20, 21, 對於 passive mode, 就看不到檔案列表.
通常, 如果 active mode 不能用, 就換 passive mode 試看看. 反之亦同. 一般的 firewall 應該至少會支援其中一種吧.
至於中文檔名 (UTF-8 問題), 也是類似, 並沒有一個 "標準". (有 RFC-2640, 不過是後來才加上, 多數的 server/client 都不完全照做, 或者是根本就不支援)
你要看到正確的檔名, 必須 server 與 client 兩邊都要支援同一種作法才看的到.
如果你會用到 unicode, 建議完全使用支援 RFC-2640 的 server 與 client. (FileZilla server 0.9.16+, FileZilla client 2.2.12+)
但是... 這樣子, 如果有人用不支援 utf-8 的 client... 可能就看不到非英文的那些字了.
贊助商連結
正常來說, 所有指令的傳輸是透過 tcp port 21.
如果用 active mode, server 端固定用 tcp port 20 來傳送列表與檔案.
如果用 passive mode, server 端會用任何一個 > 1024 的 tcp port (看 server 的設定, 可選擇在某個範圍) 來傳送列表與檔案.
所以, 如果你的 firewall 或分享器, 沒有針對這個協定做特別處理的話, 而只打開 tcp port 20, 21, 對於 passive mode, 就看不到檔案列表.
通常, 如果 active mode 不能用, 就換 passive mode 試看看. 反之亦同. 一般的 firewall 應該至少會支援其中一種吧.
至於中文檔名 (UTF-8 問題), 也是類似, 並沒有一個 "標準". (有 RFC-2640, 不過是後來才加上, 多數的 server/client 都不完全照做, 或者是根本就不支援)
你要看到正確的檔名, 必須 server 與 client 兩邊都要支援同一種作法才看的到.
如果你會用到 unicode, 建議完全使用支援 RFC-2640 的 server 與 client. (FileZilla server 0.9.16+, FileZilla client 2.2.12+)
但是... 這樣子, 如果有人用不支援 utf-8 的 client... 可能就看不到非英文的那些字了.
贊助商連結