• 3

求救! 請問有沒有人曾將 NAS 裡的 ftp 對網外的服務,連接埠不設 21, 或在路由器用 port forwarding 將非 21轉至 21 的成功經驗嗎?

感謝各位網兄的熱心建議,我先測試大家建議的方式再上來回報。

vpn 也可達到目的,只是我不想一直 vpn連線,目前還不知如何定時啟動 vpn, ftp完成後自動將之斷線。

這邊再澄清一下,我使用手機ftp軟體連線並沒有不能設 port forwarding的問題。是在 ftp client 端用 windows cmd ftp 才有問題。由於已有網兄的經驗是可用的,所以我想應該還是自己的設定哪裡出問題。我的確兩端都在分享器之後,但並沒有使用特別的防火牆。

dophone wrote:
你好,windows...(恕刪)
88501022 兄,可否請問您說在 Windows DOS 下連 DSM ftp service 是通的,是否是在 DOS cmd 下直接執行 ftp 程式?

依據 dophone 兄的說明,windows cmd ftp 是預設 port mode, 但他能通的範例是 passive mode (port mode 一樣不行,錯誤訊息跟我的一樣)。但我從 windows cmd ftp 看不出來將 port mode 改為 passive mode 的方式。不知您是否經由什麼方式改設呢?

88501022 wrote:
你公司有firewall...(恕刪)
monchatte wrote:
88501022 兄...(恕刪)


在FTP的提示符號中,登入FTP server後,下PASV就改成被動模式傳輸了。
註:Client端不必理會Server那邊被動模式的port range,直接看你的FTP service是在聽那個port就好。若是NAT有做Port forwarding,就看外部是用那個port接聽。

有過NAT的FTP服務,最好都在Server及Client端啟動被動模式,這樣才不會因為NAT traversal的問題debug老半天。
因為FTP或是VoIP這類協定都有一個控制port,一個傳輸port,不像HTTP/HTTPS只有單純一個port。
另外,正名一下,FTP的傳輸模式是分主動(Active)及被動(Passive)模式,不是port mode。

主/被動模式的區別,可以參考這篇文章,寫得非常清楚。
非必取而不出眾,非全勝而不交兵,緣是萬舉萬當,一戰而定!
在Windows FTP命令行客戶端(Ftp.exe的)不支持被動模式下,在任何版本的Windows。
自由人 wrote:
在FTP的提示符號...(恕刪)


謝謝正名,因太習慣軟體的使用方法所以以為大家應該會知道我所要表達的
當然我前面所說的全都是在Client端的傳送方式。


請參考
http://acesso.serpro.gov.br/hod/zh_TW/help/ftpconn.html
http://phorum.com.tw/ShowPost/5609.aspx

引述上方網址內容
FTP 是所有通訊協定裡最特殊的,其他的通訊協定例如 HTTP、SMTP、POP3...都只需要一條連線、一個通訊埠,然而 FTP 卻需要兩條連線、兩個通訊埠。FTP的連線包括兩種不同用途,一個是傳遞客戶端與伺服器之間的Command的,也就是一般我們在設定的FTP通訊埠(預設21)。另一個是資料傳送的連線,FTP資料傳送的模式又分二種:PORT、PASV。兩者主要分別在於它們會向FTP伺服器發出不同的FTP Command。

兩種模式各有優缺點,主動模式對伺服器來說比較安全,但對用戶端來說卻是可能帶來危險,因此很可能被用戶端的防火牆所阻擋了。使用被動模式雖然解決了用戶端的問題,但相對的伺服器必須開啟一定範圍的通訊埠供用戶端連線,好在目前絕大部分的 FTP 伺服器軟體,皆可以由管理者決定開啟哪些範圍的通訊埠。

特別注意的是,要使用那種模式連線是由用戶端決定(發出 PORT 或是 PASV 命令),但是伺服器卻可決定要不要支援這種模式的連線。

我所要說的就是這個"FTP資料傳送的模式又分二種:PORT、PASV
",希望不會讓人混淆。
是全程cmd
要轉成passive mode 歐
不然你dir會掛掉

登入id/password後
打dir和傳檔前
先下iteral pasv
就可以進入 pasv mode

供你參考
感謝自由人兄提供 ftp 主動與被動的說明。
感謝 downtodo 兄告知 windows ftp 不支援被動模式
謝謝 88501022 兄的建議,可惜 windows ftp 沒有 iteral pasv 這種指令可切換為 pasv mode。

後來小弟在 win2012 安裝 filezilla 之後,的確可以對遠端 NAS 上傳下載檔案 (設了 port forwarding 了)。不過,查了半天,無法對 filezilla 使用 CLI 搭配 windows 的scheduler 來執行定期檔案上傳工作。

我也不太敢將 client 端的 server 以 active mode 來連遠端ftp server, 因為連接埠都需開放。我試著在 filezilla 以主動模式傳輸,但也沒成功。跟 dophone 兄在10樓貼圖最下方的失敗差不多。

似乎這兩條路都走不通,得另覓解決方案了。也許有其他 ftp client 程式支援排程。

monchatte wrote:
可惜 windows ftp 沒有 iteral pasv 這種指令可切換為 pasv mode。
...(恕刪)


可試試ftp>quote pasv
win7試過OK
其實昨晚已在家試過只有在同個區網內才可以用windows command ftp連線
不知是否為兩邊都在nat的關係?晚點再測試看看。

更新
雖然win7 下指令看似完成,但是另下ls時還是轉為Port mode?
另測試PC端直接連現數據機,而NAS依然透過NAT提供服務
在windows command ftp下可連線成功如下


而用ftp軟體使用Port mode可連線成功


使用port方式時連回的是我外部實體IP 1.25.xxx.xxx 加 port號(197*256+58)
原先兩邊都在NAT底下時回不來!
所以兩邊都在NAT時如果Client端可以把所有的port都nat的話我想應該可行
供參!
dophone wrote:
不知是否為兩邊都在nat的關係?晚點再測試看看。


不同區網中間如果是firewall作nat,那很可能是firewall少載了ftp connection tracking的連線相關module (nat_ftp或類似的名稱)。
如果沒有辦法載入module,基本上找firewall客服問看看,否則無解除非換掉firewall或另鑿通道(vpn)。
  • 3
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?