天在windows 2003 server上安裝iis的ftp,伺服器開了windows防火牆,新增了例外:允許外界連線21埠。一切設定完畢,使用ie連線卻始終無法開啟,狀態列顯示「正在獲取資料夾的內容」,最後提示「操作超時」。
在命令提示符下登陸一切正常,可以dir目錄內容,get檔案等。
重新調整了ftp設定、使用者許可權、ntfs許可權,問題依舊。
用cuteftp軟體連線,發現了問題所在,使用pasv模式無法傳輸資料改用port模式一切正常。
上網查詢了關於ftp兩種連線模式的資料:
ftp的連線模式有兩種,port和pasv。port模式是乙個主動模式,pasv是被動模式,這裡都是相對於伺服器而言的。
port模式建立資料傳輸通道是由伺服器端發起的,伺服器使用20埠連線客戶端的某乙個大於1024的埠;
在pasv模式中,資料傳輸通道的建立是由ftp客戶端發起的,他使用乙個大於1024的埠連線伺服器的1024以上的某乙個埠。
如果從c/s模型這個角度來說,port對於伺服器來說是outbound,而pasv模式對於伺服器是inbound,這一點請特別注意,尤其是在使用防火牆的企業裡,比如使用微軟的isa server 2000發布乙個ftp伺服器,這一點非常關鍵,如果設定錯了,那麼客戶將無法連線。
[參考]
至此清楚了故障的原因:伺服器開啟了windows防火牆,ifly通過新增埠允許外界訪問伺服器的21埠,因此ftp的控制資訊可以正常傳輸。使用cmd登陸時,由於採用的是port模式,伺服器使用20埠向客戶端發起連線,這個outbound過程會被windows防火牆放行,因此可以建立資料通道。而使用ie登陸時,預設採用的是pasv模式,客戶端試圖連線伺服器1024以上的某個埠,這個對於伺服器的inbound過程被防火牆過濾掉了,因此無法建立資料通道,出現超時錯誤。
解決這個問題可以從伺服器或客戶端兩方面著手:
對於伺服器可以開啟需要的埠,但pasv模式連線的埠號不定,不能通過「新增埠」的方式,可以照(圖1)那樣通過「新增程式」的方式在防火牆上打洞。
對於客戶機,指定ie只使用port模式也可以解決問題。見圖2,ie工具選單->
internet選項->高階->去掉「使用被動ftp」前面的勾即可。
圖1、windows防火牆新增程式例外
圖2、ie設定不使用pasv模式
使用kvm的一例故障
機房中有一台伺服器,使用kvm後,一直滑鼠和鍵盤都不能使用,平時只能通過rdp來遠端控制,十分不方便。但是kvm相關的資料實在很少,查詢很久也沒有找到解決辦法。最近將該伺服器重新安裝了作業系統,再次發生類似情況。但是明明在bios時,滑鼠和鍵盤都能正常,但是啟動到桌面後,隨即滑鼠和鍵盤無法使用。隨後...
使用kvm的一例故障
機房中有一台伺服器,使用kvm後,一直滑鼠和鍵盤都不能使用,平時只能通過rdp來遠端控制,十分不方便。但是kvm相關的資料實在很少,查詢很久也沒有找到解決辦法。最近將該伺服器重新安裝了作業系統,再次發生類似情況。但是明明在bios時,滑鼠和鍵盤都能正常,但是啟動到桌面後,隨即滑鼠和鍵盤無法使用。隨後...
一例因終端服務引發的故障
某2003 server安裝終端服務後,發現機器上某軟體提示找不到授權檔案。經檢查,該軟體授權檔案存放於c windows目錄無誤,檔案未損壞且許可權設定正確。經過查閱文件,得知windows在配置了終端服務後,使用者程式對 windir 的請求,就被指向到 userprofile windows下...