請教 D-Link Router vs FTP 命令與資料之流程

先不管我家人使用的 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?
再加一個詭異的問題, 用 IE 提出 Router 的 WAN IP 也沒辦法進入 FTP 的 Web 管理畫面, 回到家卻可以進入, 是否同一台 DI-524 有相同的本身 loop back 錯誤阻擋的問題?
我架設ftp server經驗中,最常出現的問題即是dns的問題。

因為是浮動ip,所以申請了一個免費網址。所以在對映上需要點時間。

又因為此浮動ip有時候會斷線後而改變,又或者是重開modem後而改變。

因此才會發生連不上的問題。

我是用serv-u和cute-ftp,一樣是連到wan再連回到server的作業模式。
我記得那個問題我後來知道問題,因為ftp不只是用21端口,他還會用到20,作為真正的資料傳輸,或者在ftp設定passive的選項,我忘記是開啟還是關上才會正常,或者說加上foward port 20,但這東西很討厭,因為不是每個ftp server都是20
我曾經上過 D-Link 的官網找設定, 雖然那個官網放的是粉舊的畫面, 在虛擬伺服器那一項也是跟著開放 21-21 & 20-20 & 80-80, 而防火牆與 IP 阻擋是完全沒打勾, 今天讓我想撞牆的是自 LAN 出去 WAN 再回頭到同一台 Router 行不通, 但是從另一台 PC 通過另一台 Router 經 WAN 進到 DI-524 內的 NAS FTP 就可以! 真是傻眼的發現捏! 同樣的 LAN 內 Web 管理想試試看 Remote Web 管理也不行, 必須真正出去到不同的 IP 才能執行.

剛剛突然在打字當中想到這句 "必須真正出去到不同的 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試試看我的方法囉
不保證一定有用就是了

確定pasv 的port 在防火牆上已經開啟
並且有把pasv的port 導到 你ftp的server 的IP上嗎????

很多人都只有開21 port & pasv 的port

但是卻忘記 要把 21port & pasv的port 導到你的ftp server上 (NAT部份要做好對應)
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 全開通?
有點不懂 您不是說你再用的NAS無法做任何的設定

那怎麼設定成被動模式呢 又怎麼指定被動模式的port rang 我想你可能要先搞清楚這點

還有你說的pasv port 只要指定一個rang就可以了 就算只開一個port也可以

再來 基本上 一般來說防火牆都會寫NAT 我記得我之前有把設定貼出來 你可以翻一下之前你問的

我是用Linux vsftpd & Windows filezilla server 這2套 以及配合pfsense 做設定

但是基本上不管用哪套軟體 或者哪種防火牆 觀念一樣不變
拍謝! 越問越複雜, 基本上 NAS FTP server 全都無法更改, 所有敘述都是 PC 這邊 FTP client 為了適應摸索中的阻擋而做的改變.

D-Link 很糟糕的是規格上寫 NAT, 進入管理畫面再也看不到 NAT 三個字!!!所以依設定字面推測大概在虛擬伺服器動手腳. 我猜大概 server 改不了, 所以 Router 必須開大門才能讓亂竄的 PASV 通過? 不過 port forward 與 Port range forward 為何需分開? 還有 Port triggering 是用在哪裡?
-----------------------------------------------------------------------------------------------------------------
剛剛我才大突破的發現我鑽研很久的另一 PO 有關 QT 內嵌被阻擋的串流, 不是只有簡單 port 554/7070 可解決的事. 居然 DMZ 完全暴露也解決不了的問題在猛鑽 Apple 英文官網才找到 "幾個數據" - 不只一個喔! 全部放開才讓 QT 串流通過, 真是有學問的防火牆阻擋!所以有些手冊也許需加註明才不會讓人盡信手冊上的簡易說明卻被誤導啊!尤其是越來越複雜的 port/防火牆, 都已不只 "一對" 就可解決問題的.
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!