場(chǎng)景還原:我們的一位客戶做了一個(gè)商城網(wǎng)站,測(cè)試階段結(jié)束后,發(fā)現(xiàn)數(shù)據(jù)量比較大,于是客戶購(gòu)買(mǎi)了一臺(tái)獨(dú)立的服務(wù)器來(lái)托管。服務(wù)器用了已經(jīng)有大半年了,之前一切順利,最近出現(xiàn)FTP軟件無(wú)法連接服務(wù)器,一連接就出現(xiàn)提示:服務(wù)器無(wú)法識(shí)別命令。請(qǐng)使用原始 ftp HELP來(lái)識(shí)別服務(wù)器所支持的所有命令。相關(guān)的錯(cuò)誤命令是:500 Invalid PORT Command。經(jīng)過(guò)與服務(wù)器供應(yīng)商和機(jī)房溝通均未解決,于是求助于我們,在技術(shù)員的幫助下,客戶服務(wù)器最終完美解決了這個(gè)問(wèn)題。
問(wèn)題關(guān)鍵:500 Invalid PORT Command的中文意思是端口不可用,可能是因?yàn)槟撤N原因?qū)е轮暗亩丝谔?hào)被不明原因的禁用,所以只需要更換端口號(hào)就可以解決問(wèn)題。
解決方法:
1.到服務(wù)器的IIS的FTP中修改網(wǎng)站默認(rèn)的端口號(hào),例如:4722
2.到服務(wù)器的防火墻中,添加兩個(gè)例外端口號(hào),例如:4721、4722
3.開(kāi)啟剛剛添加的這兩個(gè)端口號(hào),在開(kāi)始→運(yùn)行中輸入cmd回車(chē),分別輸入以下兩行代碼并執(zhí)行。
cd c:InetpubAdminScripts
adsutil.vbs set /MSFTPSVC/PassivePortRange "4721-4722"
如果在執(zhí)行第二條代碼時(shí)出現(xiàn)this script does not work with wscript等類(lèi)似錯(cuò)誤提示,則需要在前面加cscript.exe,然后重新執(zhí)行!
this script does not work with wscript
Object required
ErrNumber:424(0x1A8)
to run this script using cscript,type:"CScript.exe adsutil.vbs",
如遇錯(cuò)誤不能執(zhí)行,則請(qǐng)直接使用以下代碼替換第二條代碼并重新執(zhí)行。
cscript.exe adsutil.vbs set /MSFTPSVC/PassivePortRange "4721-4722"
設(shè)置完成后,重啟一下IIS即可。
4.最后在FTP軟件中重新設(shè)置剛剛重新分配的端口號(hào),數(shù)據(jù)連接類(lèi)型建議使用PASV,部分FTP軟件中叫做“被動(dòng)防火墻”設(shè)置。
在網(wǎng)上看了一下,還沒(méi)有發(fā)現(xiàn)有比較完整的解決方案,而問(wèn)題解決過(guò)程略顯復(fù)雜,因此我們特地將這個(gè)問(wèn)題的解決方法整理出來(lái),方便大家也方便我們自己以后參考。