今天使用ftp連接我局域網的另一台主機時,發現無法連接那台FTP服務器,然后我關閉了被動ftp后,發現還是無法連接那台FTP服務器。然后我使用主機ping FTP服務器主機,發現ping不通,使用FTP服務器主機ping FTP客戶端主機也無法ping通。
- 解決辦法:我在FTP服務器上開啟對有線網卡的抓包,然后使用FTP客戶端主機ping服務器有線網卡的IP地址。然后在FTP服務器上發現了客戶端的ICMP request請求包,說明ICMP包沒有被攔截。但是無法在服務器端看到回應的reply回應包。說明FTP服務器沒有回應ICMP包。
- 於是上網查詢為什么不回應ICMP包,查詢結果是防火牆設置攔截了回應包。於是設置防火牆:打開控制面板,選擇查看方式為“類別”,然后選擇系統和安全:
在安全頁選擇windows defender防火牆:
然后選擇側邊欄的高級設置:
然后在側邊欄選擇“入站規則”,然后往列表下面找到“文件和打印機共享(回顯請求-ICMPv4-In)”,這一選項有3個名字一樣的,注意看這個選項的第三欄,選擇網絡為“專用”的那一個,因為這樣更安全,全部選擇也可以。
然后選中這個選項,鼠標右鍵:啟用規則:
然后關閉頁面,再用客戶端ping服務端主機,發現可以ping通,問題解決。
需要說明的是,這個ICMP無法回顯,不是造成ftp無法連接的問題,關閉ICMP回顯依然可以使用ftp連接服務器。只需在IE瀏覽器的高級選項里,關閉被動ftp即可連接ftp服務器了。