國內外論壇都說 Windows 內建 FTP client 不支援 passive mode
實際下指令 pasv,果然不行
這麼一來,FTP server 放在 NAT 路由器後方就不好處理了
幸運查到 可透過本地下 literal 指令將 pasv 指令遞給 server 處理:
literal pasv 5000
如果 FTP server 支援 passive mode
收到這指令後會嘗試以 TCP:5000 建立資料傳輸連線
(路由器須啟用 Virtual Server 或 Port Forwarding 功能,加一筆允許外部電腦連線至 路由器 TCP port 5000 對應至內網 FTP server IP 位址的設定。跟當初為 FTP server 服務加的那筆 TCP port 21 設定一樣)
成功後會看到訊息:
227 Entering Passive Mode (192,168,1,100,19,136).
括號內的資訊這樣讀:
192,168,1,100 就是 FTP server 位址 192.168.1.100
後方接著 19,136 是埠號 19*256 + 136 = 5000
沒認真查是 FTP 定義的寫法或是 Microsoft 獨創...
反正結果是傳檔OK!