先不管我家人使用的 D-Link DI-524 有多老, 反正對他們來說目前是夠用狀態; 還有我前一陣子一直為 FTP PASV port 找問題找得頭大的 Linksys 老 Router, 都是屬於老兵未退役的機器. 承蒙幾位高手相助終於解決一些問題, 但是仍然有疑問存在.
PO 文尋求各方高手幫忙解釋如題, 是這兩台舊 Router 都是在建立家庭 LAN 用的網路硬碟附掛的 FTP server 而測試時出現一些困擾. 首先列出一些條件:
1. FTP client 使用過很多版本, 後來在第一套自己用的組合完全排除問題後就只用免費的 FileZilla client, 再建立第二套時透過防火牆與路由器組態精靈測試階段來解決問題卻產生更多疑問.
ie.
回應: 150 opening data connection
回應: 503 Failure of data connection.
伺服器送出了非預期的回應.
ie.
回應: 502 Port mismatch. Tainted by router or firewall.
PORT 指令已被路由器或防火牆影響.
ie.
其他 port 被阻擋的錯誤.
事實上雖有錯誤產生, 卻可正常上下傳, 所以這種測試 "僅供參考"?
2. PC 已經盡可能打開防火牆的阻擋, 幾台 PC 使用的軟體也都是一樣, 所以最大可能還是在 Router 本身的限制.
3. LAN 內是 "完全沒問題", 也就是說 FTP client/server 沒被 Router 阻擋.
4. 但是由 PC 送出 URL 連結到 WAN 後繞回自己的 Router 轉 port 到 FTP server 就開始出現問題.
5. 忙了一下午回到家居然可以順利 remote 上下傳! 挖哩咧!
舊 Router 都有同樣的問題狀況是:
1. FileZilla 通過 Router 傳送 21 port 與取得 IP 解析, 取得的結果就有出入. 尤其是外部 IP 取得不正常, 但是這個好解決, 改讓軟體去 DNS server 抓就可以.
2. 有問題的一直是 PASV port 被 Router 或防火牆阻擋, 所以我在另外的 PO 文求助也在那繞了一大圈. 看過鳥哥的 21->20 的解釋, 卻沒 Router 的設定解決方法 - 有點語病, 應該說被動模式的 PASV port 在 Router 這一關過不了?
3. 上面提到, 回到家再試卻可以 PC FTP Client <-> 新 ASUS 刷 DD-WRT 韌體的 Router <-> WAN <-> 有問題的 D-Link DI-524 Router <-> PC, 這真是傻了! 不能本身繞過 WAN 回到同一台 Router???
4. 以前用的 Linksys 老 802.11b Router 也有類似阻擋.
所以想請教各位高手, 在同一台 Router 送出 21 port 經過 WAN 繞回來 server, 基本上的命令與資料流程是如何走或變換的? 這當中卡在 Router 的防火牆上的設置最可疑, 但是 DI-524 防火牆是完全沒阻擋的 "灰色沒打勾", 但還是會被擋一些不知名的資料, 所以該如何完全開通? 還是本身韌體 bug, 無救?! 同樣的其他老 Router 被阻擋掉一些 port 有沒共通設定? 如果說關掉防火牆, 那不是等同 DMZ 完全暴露了嗎?而且一些 Router 也看不到有關防火牆的設置, 好像大都是提供幾個 port 的開通與阻擋, 是不?
另外 D-Link 的韌體不知是如何寫的? Port map 表示法與其他廠商不同, 搞不太懂! 應該是第一個設定 - 虛擬伺服器? 這裡以外, 哪裡管 PASV port?
剛剛突然在打字當中想到這句 "必須真正出去到不同的 IP 才能執行", 是否在轉址過程產生丟棄混亂? 所以說韌體 bug 是原罪的樣子?
我用的 NAS 附掛的 FTP server 是無法做任何通信設定的, 他家的 web 管理也只有 user 的增減與擁有而已, 所以想用 NAS 請注意其他的附掛限制喔!
小弟也有這台DI-524
當初也是遇到FTP被阻擋的錯誤
我的環境是
PC-A (ftp client: Filezilla) --> Router-A --> internet --> DI-524 --> PC-B (FTP server)
被阻擋的情形是
只有PASV連接時會被擋下 (在DI-524內已經開啟PASV相關的ports)
而PORT 模式就不會
都是在帳號、密碼都輸入後連接到FTP server時
送出list -a 指令要取得檔案目錄列表時被阻擋
無法取得目錄列表後就中斷連線了
依稀記得也是回傳50X的錯誤訊號 (對不起,年代久遠,記不得了
)我也試過把PC-B 放在DMZ
但是也是會被擋下
filezilla client這端改用加密的ftpes連接
嘗試用加密封包讓router認不出來
結果還是會被擋
最後在亂改DI-524的設定時
把 "Tools / Misc / SPI mode " 給disable
突然就連得上ftp server了
到現在都沒什麼大問題發生
不確定是不是這台的SPI mode 有什麼問題
請csit95217試試看我的方法囉
不保證一定有用就是了

Syrinx wrote:
PC-A (ftp client: Filezilla) --> Router-A --> internet --> DI-524 --> PC-B (FTP server)...(恕刪)
我目前疑惑的是路徑如同你的引言就可以, 但是如下就有問題:
PC-A (ftp client: Filezilla) --> DI-524 (虛擬伺服器 20 & 21 指向 192.168.0.200 FTP server) --> internet --> DI-524 (同一台) --> NAS FTP server
PC-A (IE http://my WAN URL) --> DI-524 (虛擬伺服器 80 指向 192.168.0.200 NAS Web 管理) --> internet --> DI-524 (同一台) --> PC-A (IE http://無法連線)
關 SPI 的建議, 等改天回家再去試試看, 謝了.
請教 Fred_Wei, D-Link DI-524 韌體已經是最後不再服務的英語版, 這個 "虛擬伺服器設定" 是否合併 "完整的 NAT & port forward"? 還是這兩種 "開 port 21 & 20" & "導向 192.168.0.FTP server" 一般都分開在哪些術語選項?被 D-Link 的用語搞呆了, 拍謝啦.
還有就是一般固定 21 & 20 -> 192.168.0.FTP 還比較能設定, 但是動態的 PASV 是否設定 1024-65535 全開通?
D-Link 很糟糕的是規格上寫 NAT, 進入管理畫面再也看不到 NAT 三個字!!!所以依設定字面推測大概在虛擬伺服器動手腳. 我猜大概 server 改不了, 所以 Router 必須開大門才能讓亂竄的 PASV 通過? 不過 port forward 與 Port range forward 為何需分開? 還有 Port triggering 是用在哪裡?
-----------------------------------------------------------------------------------------------------------------
剛剛我才大突破的發現我鑽研很久的另一 PO 有關 QT 內嵌被阻擋的串流, 不是只有簡單 port 554/7070 可解決的事. 居然 DMZ 完全暴露也解決不了的問題在猛鑽 Apple 英文官網才找到 "幾個數據" - 不只一個喔! 全部放開才讓 QT 串流通過, 真是有學問的防火牆阻擋!所以有些手冊也許需加註明才不會讓人盡信手冊上的簡易說明卻被誤導啊!尤其是越來越複雜的 port/防火牆, 都已不只 "一對" 就可解決問題的.


























































































