![]() |
|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
![]() ![]() |
|
主題工具 | 顯示模式 |
![]() |
#1 |
|
![]() 請問一下有人知道ftp的pasv模式的什麼東西
我在連ftp時都會卡在list, 可是如果我選pasv模式,就可以很正常, 我用ie來連ftp確一直出現權限有問題, 請問是為什麼?是ftp server的關係嗎? |
送花文章: 0,
![]() |
![]() |
#2 (permalink) |
管理版主
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() [轉貼]
PORT和PASV模式的最核心區別在於服務器和客戶端誰主動去連接誰。如果服務器和客戶端都有合法(Internet上唯一)的IP地址(使用端口映射等技術讓自己看起來有合法地址也可以),兩種模式其實沒什麼區別。關鍵在於有一方或兩方是在內網中,通過PROXY或網關使用NAT上網時,兩種方式區別就出來了。 PORT模式是讓服務器去連接客戶端,這時客戶端必須有合法的IP地址,服務器端可以用網關NAT的方式去找到客戶端,服務器可以沒有合法IP地址,例如192.168.*.*之類,因為這時對服務器來說IP地址無關緊要,祇要服務器端能上網找到客戶端即可。如果客戶端這時也是用的通過內網網關上網就麻煩了,客戶端給服務器報告自己的IP是192.168.*.*、10.*.*.*之類不合法、不唯一的地址,結果服務器打著燈籠也找不到客戶端,數據Socket自然就聯不起來。 PASV模式正好相反,這時服務器必須有合法的IP地址,客戶端可以是內網機器,道理和上面是一樣的。一般來說,開始的時候FTP總是客戶端主動連上服務器的,因此絕大多數情況下,PASV總是好用的,也因此部分下載軟件,如Netants把PASV模式作為唯一下載模式。什麼時候有問題呢,當服務器躲在防火牆之後,防火牆軟件僅把21端口映射給服務器時就會有問題。 我們知道Socket連接有兩個重要參數,一個是IP地址,一個是端口(PORT)。端口是用來區分服務類型的東西,有了端口的區別,一台計算機才可以既提供FTP下載,又可以開Web讓大家瀏覽,還可以同時開個BBS,一個IP地址就夠了。端口號從1到65535。如果是FTP服務,則是端口21。 PORT模式下是客戶端向服務器報告自己的IP地址,同時報告自己的一個端口,意思是說:我這裡有個端口****空閒,你來連吧。PASV模式則將前面的客戶端和服務器調過個就是了。 一般內網開服務器必須做端口映射。因為一般稱為網關的那台計算機(或路由器)才有合法IP,內網開服務器時,客戶端連接服務器實際上連的是它,並沒能直接連接到真正開服務的那台計算機上。這時,網關必須設置好一些參數,區分連到自己的各個端口的請求應該自己處理還是扔給內網的某台服務器處理,例如把21端口的請求都轉給內網的某台FTP服務器去處理。在PORT模式下,這就夠了。 PASV模式是服務器提供自己的IP和一個端口號(>1024)讓客戶端來連,服務器的IP不合法一般不要緊,數據包從網關出去時多數情況會自動翻譯成網關自己的合法IP的(NAT——網絡地址轉換,共享上網的基礎技術),但端口號就不行了,客戶端按照這個端口來連接到網關時,網關如果不設置把這些端口的請求都轉給FTP服務器,Socket就連不起來。這種情況的設置經常漏掉,所以內網開FTP服務器常不能支持PASV模式。——是設置不全,而不是不可能。 內網FTP支持PASV模式的詳細設置可參考Serv-U的幫助Passive Mode Data Transfers Behind a Firewall。 讓你的FTP支持所有模式吧,就象下面我的內網FTP一樣。 |
![]() |
送花文章: 2029,
![]() |