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