![]() |
||
Major Member
![]() 加入日期: Dec 2004
文章: 208
|
關於在nat下面的ftp server 改了port無法連線的問題
小弟最近買了一台nas
裡面有ftp server的功能 預設port 是21 nas 接在router下 router已刷為dd-wrt 在dd-wrt裡面設定port forwarding tcp port 21 給nas 在公司可以順利連線沒問題 公司電腦接在router下 是虛擬ip 問題在於 預設port 改為 12345 (或者任何其他 > 1025 的port) port forwarding 也有設為 tcp 12345 給nas(或者任何其他 > 1025 的port) 卻無法連線了 疑問是 為什麼 tcp port 21 就可以順利連線 下面有nas ftp 設定頁面 有沒有高手可以幫忙解惑? 感恩 ![]() |
|||||||
![]() |
![]() |
Major Member
![]() 加入日期: Dec 2004
文章: 208
|
附上在公司端用 filezilla 連線的訊息
錯誤: 使用者中止目錄列表 狀態: 已從伺服器離線 狀態: 正在解析 xxx.no-ip.biz 的 IP Address 狀態: 正在連線到 129.110.29.18:12345 ... 狀態: 連線已建立, 正在等候歡迎訊息... 回應: 220 NET Disk FTP Server ready. 指令: USER Cris 回應: 331 User name okay, need password. 指令: PASS ********** 回應: 230 User logged in, proceed. 指令: OPTS UTF8 ON 回應: 200 Command okay. 狀態: 已連線 狀態: 正在取得目錄列表... 指令: PWD 回應: 257 "/" is current directory. 指令: TYPE I 回應: 200 Type set to I. 指令: PASV 回應: 227 Entering Passive Mode (192,168,67,231,80,73). 狀態: 伺服器以無法路由的 IP Address 送出了被動式回應. 改為使用伺服器 IP Address. 指令: LIST 錯誤: 連線逾時 錯誤: 無法取得目錄列表 |
||
![]() |
![]() |
Golden Member
![]() ![]() ![]() ![]() 加入日期: Jun 2002 您的住址: 地獄18層
文章: 3,233
|
1.主、被動
2.FTP的port不建議自己修改,去用到有問題的port就毀了
__________________
徵你不要的AM4 CPU 徵你不要的SATA接頭斷裂SSD ![]() |
![]() |
![]() |
Major Member
![]() 加入日期: Dec 2004
文章: 208
|
引用:
1. Filezilla client 的主動被動模式都試過了,當然訊息不一樣都不能連,上面不能連的訊息是被動模式的,而可以連的情況(port21)是用被動模式。 2. 請教何謂 "有問題的port" ,用預設port不是很容易被掃嗎? |
|
![]() |
![]() |
Golden Member
![]() ![]() ![]() ![]() 加入日期: Jun 2002 您的住址: 地獄18層
文章: 3,233
|
使用非標準FTP port有點小麻煩,那個要在ALG另外處理掉
例如,ASUS RX3041在ALG設定裡面有一個非標準FTP port的設定
__________________
徵你不要的AM4 CPU 徵你不要的SATA接頭斷裂SSD ![]() |
![]() |
![]() |
Golden Member
![]() ![]() ![]() ![]() 加入日期: Jan 2003 您的住址: 惡運深淵
文章: 2,562
|
|
![]() |
![]() |
Junior Member
![]() ![]() ![]() 加入日期: Jan 2003 您的住址: Shattrath City
文章: 948
|
........... 我在想想看以前的做法
![]() ![]() 此文章於 2015-01-11 04:26 PM 被 PAN_PAN 編輯. |
![]() |
![]() |
Power Member
![]() ![]() 加入日期: Jan 2002 您的住址: Taipei
文章: 661
|
一般這類 linux based 的系統, 應該都是用 netfilter 在處理封包.
而 netfilter 的 ftp 處理, 是有獨立的 module 在處理 (因為 ftp 的協定很 "ugly"... 不是用單一的 port 就可以). 一般就是 nf_nat_ftp (如果有做 nat), nf_conntrack_ftp (用來判斷 ftp 後續的連線是屬於同一個 connection), 而這些 module, 預設都是只支援標準的 port (就是 tcp 21)... 如果要使用別的 port, 要在載入 module 時加上 ports 參數去指定才可以. 如果用預設的 port 21 能通, 改了 port 不能通, 通常就是這個原因.
__________________
![]() Tommy 碎碎念... |
![]() |
![]() |
Power Member
![]() ![]() 加入日期: Jan 2002 您的住址: Taipei
文章: 661
|
引用:
如果 netfilter 有作用, 會把這個 ip 改成外部的 ip... 所以... 應該是想辦法在 nf_nat_ftp 與 nf_conntrack_ftp 加上 ports 參數就可以. 一般的系統如果不方便在載入模組時加上參數, 應該也可以在 /etc/modprobe.d/ 底下加上一個 .conf 的檔案指定參數, 如: 引用:
__________________
![]() Tommy 碎碎念... |
||
![]() |
![]() |
Golden Member
![]() ![]() ![]() ![]() 加入日期: Jan 2003 您的住址: 惡運深淵
文章: 2,562
|
有些FTP Server是可以自行定義PASV Mode要用的Port...
像ProFTPD之類的 那種簡單便宜的東西,IP分享器直接用DMZ了事 |
![]() |
![]() |