Discussion:
FTP在IP分享企後面
(时间太久无法回复)
GrandPaul
2004-02-07 14:34:22 UTC
Permalink
如果FTP server在NAT下面,必需在NET上開些Port, 但是如果在IP分享器後面,
還有辦法嗎?
家用Cable Modem只有一個IP,不想直接用一台電腦來作NET,因此接進來後,
是先進入IP分享器,有些IP分享器可以將全部或某一段的Port指往一台電腦,
目前使用的裡面virtual server是一個一個Port填,WWW,Mail...都沒有問
題,唯獨FTP有聞題,以經將Port21, Port20(其實好像並不需要)都指往
Server這台電腦,用CuteFTP連上userid與passwd都可以過去,Entering
Passive Mode後,停留在'正在連線資料 Socket'...我沒有辦法將所有
1024-65535的port都指向這一台來,在這種情況下,還有解決的方法嗎?
我試過在IP分享器後面多開兩個port, 1100 & 1101,然後在proftpd
設定裡PASV range限制只用這兩個port,不過似乎仍然無效;把書看了
好幾遍,還是無解,請教一下是那裡錯了,謝謝!
多開也沒用吧.. client 下 PASV 指令後.
server 因為在 IP 分享器後面, 傳過去的IP八成是 192.168.x.x 這類ip分享器給的ip

所以 client 應該不要使用 passive mode. 要由 client 來開 port 建立 data 線.

且你要注意 client 不能也在另一台 IP 分享器後面, 不然不管用什麼mode都無法連線.

除非你的IP分享器很先進能夠解讀ftp protocol, (改 ftp protocol中ip傳遞)
不然單純NAT是無法使得兩端連線的.

NAT 畢竟不是萬靈丹...所以才需要 ipv6..

--
PaulLiu(劉穎駿)
E-mail address:***@bbs.cis.nctu.edu.tw
--
* Post by PaulLiu from sw67-154-83.adsl.seed.net.tw
* Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>
有點忙的小州
2004-02-07 15:54:29 UTC
Permalink
※ 引述《***@bbs.cis.nctu.edu.tw (GrandPaul)》之銘言:
: 多開也沒用吧.. client 下 PASV 指令後.
: server 因為在 IP 分享器後面, 傳過去的IP八成是 192.168.x.x
: 這類ip分享器給的ip所以 client 應該不要使用 passive mode.
: 要由 client 來開 port 建立 data 線.且你要注意 client
: 不能也在另一台 IP 分享器後面, 不然不管用什麼mode都無法連線.
: 除非你的IP分享器很先進能夠解讀ftp protocol, (改 ftp protocol中ip傳遞)
: 不然單純NAT是無法使得兩端連線的.
: NAT 畢竟不是萬靈丹...所以才需要 ipv6..

這種環境建議應該是使用 http 這類連線方式存取,搭配一些驗證設定
控管登入需求,應該是更適合提供檔案存取服務。

--
Best Regards
Kenduest Lee
--
※ Origin: 臺大電機 Maxwell 站 ◆ From: Linux.NTCU.net
James Ling
2004-02-07 15:08:30 UTC
Permalink
Post by GrandPaul
如果FTP server在NAT下面,必需在NET上開些Port, 但是如果在IP分享器後面,
還有辦法嗎?
家用Cable Modem只有一個IP,不想直接用一台電腦來作NET,因此接進來後,
是先進入IP分享器,有些IP分享器可以將全部或某一段的Port指往一台電腦,
目前使用的裡面virtual server是一個一個Port填,WWW,Mail...都沒有問
題,唯獨FTP有聞題,以經將Port21, Port20(其實好像並不需要)都指往
Server這台電腦,用CuteFTP連上userid與passwd都可以過去,Entering
Passive Mode後,停留在'正在連線資料 Socket'...我沒有辦法將所有
1024-65535的port都指向這一台來,在這種情況下,還有解決的方法嗎?
我試過在IP分享器後面多開兩個port, 1100 & 1101,然後在proftpd
設定裡PASV range限制只用這兩個port,不過似乎仍然無效;把書看了
好幾遍,還是無解,請教一下是那裡錯了,謝謝!
多開也沒用吧.. client 下 PASV 指令後.
server 因為在 IP 分享器後面, 傳過去的IP八成是 192.168.x.x 這類ip分享器給的ip
所以 client 應該不要使用 passive mode. 要由 client 來開 port 建立 data 線.
且你要注意 client 不能也在另一台 IP 分享器後面, 不然不管用什麼mode都無法連線.
除非你的IP分享器很先進能夠解讀ftp protocol, (改 ftp protocol中ip傳遞)
不然單純NAT是無法使得兩端連線的.
NAT 畢竟不是萬靈丹...所以才需要 ipv6..
--
PaulLiu(劉穎駿)
--
* Post by PaulLiu from sw67-154-83.adsl.seed.net.tw
* Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>
真的給你說對了,client當然也是在分享器後面,現在誰家沒有一台以上的電腦,但為了省錢嘛,
用Cable Modem只有一個IP, 只能用分享器, 不然只有換ADSL了,至少多幾個IP.

另外一個方法, 將這台Linux Server乾脆直接連外, 當NET,也當FTP Server算了.
--
********************
James Ling
RadioCity Studio
********************
---
福壽山楓葉紅
2004-02-08 05:41:31 UTC
Permalink
Post by James Ling
真的給你說對了,client當然也是在分享器後面,現在誰家沒有一台以上的電腦,但為了省錢嘛,
用Cable Modem只有一個IP, 只能用分享器, 不然只有換ADSL了,至少多幾個IP.
另外一個方法, 將這台Linux Server乾脆直接連外, 當NET,也當FTP Server算了.
我想那是你的分享器太舊了吧?
以ftp protocol所需要的3 way handshake來說,
如果以iptables來做也需要掛入ftp模組才行,
而舊的IP分享器的確有FTP及其他需要3 way handshake的協定會走不通,
例如MSN、yahoo messenger等,但現在新的IP分享器已經可以處理這樣的protocol了,
如果不是設定問題而是分享器本身能力不足的話,
倒不如把舊的拿去拍掉換台新的比較實際。

至於server與client都躲在NAT或是IP分享器後面這種事,
並不是行不通的方式,我自己這樣用已經很久了。
--
※ Origin: 交大資工鳳凰城資訊站 <bbs.csie.nctu.edu.tw> 
◆ From: 61-228-91-224.HINET-IP.hinet.net
James Ling
2004-02-09 07:14:14 UTC
Permalink
Post by 福壽山楓葉紅
Post by James Ling
真的給你說對了,client當然也是在分享器後面,現在誰家沒有一台以上的電腦,但為了省錢嘛,
用Cable Modem只有一個IP, 只能用分享器, 不然只有換ADSL了,至少多幾個IP.
另外一個方法, 將這台Linux Server乾脆直接連外, 當NET,也當FTP Server算了.
我想那是你的分享器太舊了吧?
以ftp protocol所需要的3 way handshake來說,
如果以iptables來做也需要掛入ftp模組才行,
而舊的IP分享器的確有FTP及其他需要3 way handshake的協定會走不通,
例如MSN、yahoo messenger等,但現在新的IP分享器已經可以處理這樣的protocol了,
如果不是設定問題而是分享器本身能力不足的話,
倒不如把舊的拿去拍掉換台新的比較實際。
至於server與client都躲在NAT或是IP分享器後面這種事,
並不是行不通的方式,我自己這樣用已經很久了。
--
※ Origin: 交大資工鳳凰城資訊站 <bbs.csie.nctu.edu.tw> 
◆ From: 61-228-91-224.HINET-IP.hinet.net
是嗎? 因為我也覺得有一點怪異, 因為經過測試, 有時候又可以傳檔, 好像設定還是有問題;
一台機器由美國過來, (都是用WinXP, ws_ftp),Client 必需要打開Passive transfer,
我自己在這裡用Intranet內部另一台機器,client 必需要關閉Passive transfer, FTP server
是Proftpd; 由那裡來傳檔不是問題, Client 換台機器就要換方法很怪異.

是否可請教你用的FTP server? 在 NAT (IP分享器上開幾個port? 我想 port21是必要的,
需要開Port 20嗎? 還有兩面倒底要不要用Passive? 謝謝!
--
********************
James Ling
RadioCity Studio
********************
---
Posted via news://freenews.netfront.net
Complaints to ***@netfront.net
福壽山楓葉紅
2004-02-09 14:01:36 UTC
Permalink
Post by James Ling
Post by 福壽山楓葉紅
我想那是你的分享器太舊了吧?
以ftp protocol所需要的3 way handshake來說,
如果以iptables來做也需要掛入ftp模組才行,
而舊的IP分享器的確有FTP及其他需要3 way handshake的協定會走不通,
例如MSN、yahoo messenger等,但現在新的IP分享器已經可以處理這樣的protocol了,
如果不是設定問題而是分享器本身能力不足的話,
倒不如把舊的拿去拍掉換台新的比較實際。
至於server與client都躲在NAT或是IP分享器後面這種事,
並不是行不通的方式,我自己這樣用已經很久了。
是嗎? 因為我也覺得有一點怪異, 因為經過測試, 有時候又可以傳檔, 好像設定還是有問題;
一台機器由美國過來, (都是用WinXP, ws_ftp),Client 必需要打開Passive transfer,
我自己在這裡用Intranet內部另一台機器,client 必需要關閉Passive transfer, FTP server
是Proftpd; 由那裡來傳檔不是問題, Client 換台機器就要換方法很怪異.
是否可請教你用的FTP server? 在 NAT (IP分享器上開幾個port? 我想 port21是必要的,
需要開Port 20嗎? 還有兩面倒底要不要用Passive? 謝謝!
我建議你換個ftp client重測過吧,
我的IP分享器只設定port 21轉給private IP,
另一邊用IP分享器也是只設port 21,
如果是用linux架的NAT則載入ftp模組,
不過ftp client都有開啟passive mode。

至於在intranet環境中,開不開passive mode應該不產生影響才對,
會出現這種問題跟你的dtp server程式有關,你是用哪種ftp server程式?

我個人用的ftp server是proftpd。
--
※ Origin: 交大資工鳳凰城資訊站 <bbs.csie.nctu.edu.tw> 
◆ From: 61-228-91-224.HINET-IP.hinet.net
James Ling
2004-02-10 15:58:55 UTC
Permalink
Post by 福壽山楓葉紅
Post by James Ling
Post by 福壽山楓葉紅
我想那是你的分享器太舊了吧?
以ftp protocol所需要的3 way handshake來說,
如果以iptables來做也需要掛入ftp模組才行,
而舊的IP分享器的確有FTP及其他需要3 way handshake的協定會走不通,
例如MSN、yahoo messenger等,但現在新的IP分享器已經可以處理這樣的protocol了,
如果不是設定問題而是分享器本身能力不足的話,
倒不如把舊的拿去拍掉換台新的比較實際。
至於server與client都躲在NAT或是IP分享器後面這種事,
並不是行不通的方式,我自己這樣用已經很久了。
是嗎? 因為我也覺得有一點怪異, 因為經過測試, 有時候又可以傳檔, 好像設定還是有問題;
一台機器由美國過來, (都是用WinXP, ws_ftp),Client 必需要打開Passive transfer,
我自己在這裡用Intranet內部另一台機器,client 必需要關閉Passive transfer, FTP server
是Proftpd; 由那裡來傳檔不是問題, Client 換台機器就要換方法很怪異.
是否可請教你用的FTP server? 在 NAT (IP分享器上開幾個port? 我想 port21是必要的,
需要開Port 20嗎? 還有兩面倒底要不要用Passive? 謝謝!
我建議你換個ftp client重測過吧,
我的IP分享器只設定port 21轉給private IP,
另一邊用IP分享器也是只設port 21,
如果是用linux架的NAT則載入ftp模組,
不過ftp client都有開啟passive mode。
至於在intranet環境中,開不開passive mode應該不產生影響才對,
會出現這種問題跟你的dtp server程式有關,你是用哪種ftp server程式?
我個人用的ftp server是proftpd。
--
※ Origin: 交大資工鳳凰城資訊站 <bbs.csie.nctu.edu.tw> 
◆ From: 61-228-91-224.HINET-IP.hinet.net
經過了測試, 結果出乎意料之外, 只知其然, 不知其所以然, 不過能用了!

Server端用的是proftpd, 3個Client都是WinXP + WS_FTP, 都在不同廠牌的IP分享器後面,
其中一個Client在同一內部網域(intranet), 另外兩個分別在台灣與美國(應該沒有差別),
WS_FTP default 都有開啟 passive mode, 結果只有一台在美國的能連上, 在關閉 WS_FTP
的 passive mode 後, 3台都能連上了, U/L D/L 都沒問題, 但是正好與書上寫的相反;
也不知道是怎麼回事了. 有關內部一台, 在WS_FTP若是用internal IP 當然是沒問題, 打
192.168.0.xxx 無論開不開 passive 都行, 但若想用real IP 如 210.95.xxx.xxx 或者
Domain Name, 還是非得關掉 passive mode.
--
********************
James Ling
RadioCity Studio
********************
---
Posted via news://freenews.netfront.net
Complaints to ***@netfront.net
GrandPaul
2004-02-13 16:49:09 UTC
Permalink
Post by James Ling
Post by 福壽山楓葉紅
我建議你換個ftp client重測過吧,
我的IP分享器只設定port 21轉給private IP,
另一邊用IP分享器也是只設port 21,
如果是用linux架的NAT則載入ftp模組,
不過ftp client都有開啟passive mode。
至於在intranet環境中,開不開passive mode應該不產生影響才對,
會出現這種問題跟你的dtp server程式有關,你是用哪種ftp server程式?
我個人用的ftp server是proftpd。
--
※ Origin: 交大資工鳳凰城資訊站 <bbs.csie.nctu.edu.tw> 
◆ From: 61-228-91-224.HINET-IP.hinet.net
經過了測試, 結果出乎意料之外, 只知其然, 不知其所以然, 不過能用了!
Server端用的是proftpd, 3個Client都是WinXP + WS_FTP, 都在不同廠牌的IP分享器後面,
其中一個Client在同一內部網域(intranet), 另外兩個分別在台灣與美國(應該沒有差別),
WS_FTP default 都有開啟 passive mode, 結果只有一台在美國的能連上, 在關閉 WS_FTP
的 passive mode 後, 3台都能連上了, U/L D/L 都沒問題, 但是正好與書上寫的相反;
也不知道是怎麼回事了. 有關內部一台, 在WS_FTP若是用internal IP 當然是沒問題, 打
192.168.0.xxx 無論開不開 passive 都行, 但若想用real IP 如 210.95.xxx.xxx 或者
Domain Name, 還是非得關掉 passive mode.
本來就是如此吧, 書上寫的情況是 client 在 nat 後面, 所以要開passive
相反的就是server在nat後面, client 要關passive

passive mode 是由 server 開 port 給 client 連, 在client 下 PASV
指令之後, server 會回傳ip跟port, 如果server在nat下, 會傳給client 192.168.1.x y
這樣client 若不是在同一網域不就連不到了

關掉passive mode的話, 則是由client 開 port 給server 連, 指令 PORT 後接client ip
跟port, 如果client有真實ip, 就會 PORT 210.95.xxx.xxx y 告知server來連.

所以說NAT 要支援ftp 除了要在IP封包上改變IP以外, 還要改變ftp protocol 中的
PORT 指令跟 PASV 回傳的訊息(227), 但我買的IP分享器也是沒這麼好, 因此
我還是用傳統的做法, client拿真實ip 關 passive mode, 才能連回家.. :)

詳細的protocol 還是要查 RFC, 我上面的都只是隨便寫寫, 真實指令比較複雜

--
PaulLiu(劉穎駿)
E-mail address:***@bbs.cis.nctu.edu.tw
--
* Post by PaulLiu from sw67-154-33.adsl.seed.net.tw
* Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>
Loading...