注意:無法打開網站時,應該先搜索排查報錯提示的含義,本文列舉了一些常見的報錯情況。
無法訪問 ECS 實例上的網站時的分析思路:
根據報錯情況分析
網絡通信問題
ECS Linux 實例網絡通信問題排查
ECS Windows 實例網絡通信問題排查
端口通信問題
ECS Linux 實例端口通信問題
ECS Windows 實例端口通信問題
防火牆配置異常
ECS Windows 實例遠程無法連接,關閉防火牆後連接恢復正常
ECS Linux 實例 SSH 無法連接,關閉 Iptables 後連接恢復正常
重新配置安全組公網規則
網絡通信問題
ECS Linux 實例網絡通信問題排查
執行 ifconfig 和 ip addr 網絡檢測命令查看 IP 地址。
2. 執行命令 route -n 通過實例路由表查看網關。
ECS Windows 實例網絡通信問題排查
1. 打開 CMD,執行 ipconfig網絡檢測命令查看 IP 地址。
2. 執行命令 route print通過實例路由表查看網關。
注意:
若網卡驅動未開啟或網卡配置有問題,請檢查網卡驅動,並重新安裝。
關於網絡相關問題的測試工具,詳見 ping 丟包或不通時鏈路測試說明。
端口通信問題
ECS Linux 實例端口通信問題
執行命令 netstat –antpu | grep sshd 檢測 sshd 服務的運行狀態,確認端口是否有正常監聽。
2. 執行下列命令查看服務運行狀態:
CentOS6:service sshd status
CentOS7:systemctl status sshd
如果 sshd 服務沒有正常運行,執行下列命令手動啟動 sshd 服務:
CentOS6:service sshd restart
CentOS7:systemctl restart sshd
3.查看 sshd 程序日誌
1) 如果無法正常啟動 sshd 服務,CentOS 6 系統一般會直接輸出錯誤信息,而CentOS 7 啟動時沒有輸出信息,需要通過 secure 日誌進行查看。sshd 日誌:/var/log/secure。
2) 通過 secure 日誌的報錯信息,一般是可以定位絕大部分 sshd 啟動異常的問題。
ECS Windows 實例端口通信問題
執行遠程端口檢測命令:
1) Tasklist /svc | findstr “Ter”2) netstat –ano | findstr “$PID”
火牆配置異常
ECS Windows 實例遠程無法連接,關閉防火牆後連接恢復正常
前提條件:您只有在已授權可關閉防火牆的情況下,才能做該項排查。
調整防火牆配置策略,詳見:ECS Windows 遠程連接之防火牆設置。
調整後,重新進行遠程連接。
ECS Linux 實例 SSH 無法連接,關閉 Iptables 後連接恢復正常
前提條件:您只有在已授權可關閉 Iptables 的情況下,才能做調整 Iptables 配置策略排查。
1. 執行命令 iptables -nvL –line-number
查看防火牆規則:
1)n 不對 IP 地址進行反查,加上這個參數顯示速度會快很多。
2)v 輸出詳細信息,包含通過該規則的數據包數量、總字節數及相應的網絡接口。
3)L 查看當前表的所有規則,默認查看的是 filter 表,如果要查看 NAT 表,可以加上 -t NAT 參數。
2. 修改規則。(若您之前已設置過規則策略,執行命令 cp -a /etc/sysconfig/iptables /etc/sysconfig/iptables.bak
保存一份原有的 Iptables 文件,避免丟失已設置過策略。)
1)執行命令 iptables -F 清空實例上所有的規則。
2)執行命令 iptables -P INPUT DROP 拒絕 INPUT 方向所有的請求都。
3)執行下列命令放行端口 22:
1.iptables -A INPUT -p tcp --dport 22-j ACCEPT
2.iptables -A OUTPUT -p tcp --sport 22-j ACCEPT
4) 執行下列命令指定 IP 訪問端口 22:
1. iptables -I INPUT -s 192.168.1.1-p tcp --dport 22-j ACCEPT
說明: 192.168.1.1 為請求端 IP 地址。
5) 執行命令 iptables -L 查看添加的規則是否生效。
6) 執行命令 iptables-save > /etc/sysconfig/iptables保存添加的規則。
3. 執行命令 service iptables restart或 /etc/init.d/iptables restart重啟 Iptables。
4. 執行命令 systemctl reboot 重啟實例驗證配置。
5.重新進行 SSH 連接。
根據報錯情況分析
報錯情況比較複雜,此處列出比較常見的幾種報錯內容:
403 報錯:403 報錯是一個大類,403 的報錯基本上是權限問題,出現 403 報錯時您需要檢測權限配置問題。
403.1 錯誤是由於“執行”訪問被禁止而造成的。若試圖從目錄中執行 CGI、ISAPI 或其他可執行程序,但該目錄不允許執行程序時便會出現此種錯誤。
403.2 錯誤是由於”讀取”訪問被禁止而造成的。導致此錯誤是由於沒有可用的默認網頁並且沒有對目錄啟用目錄瀏覽,或者要顯示的 HTML 網頁所駐留的目錄僅標記為“可執行”或“腳本”權限。
403.3 錯誤是由於“寫入”訪問被禁止而造成的。當試圖將文件上載到目錄或在目錄中修改文件,但該目錄不允許“寫”訪問時就會出現此種錯誤。
403.4 錯誤是由於要求 SSL 而造成的。您必須在要查看的網頁的地址中使用 HTTPS。
403.5 錯誤是由於要求使用 128 位加密算法的 Web 瀏覽器而造成的。如果您的瀏覽器不支持 128 位加密算法就會出現這個錯誤,您可以連接微軟網站進行瀏覽器升級。
403.6 錯誤是由於 IP 地址被拒絕而造成的。如果服務器中有不能訪問該站點的IP地址列表,並且您使用的 IP 地址在該列表中時您就會返回這條錯誤信息。
403.7 錯誤是因為要求客戶證書。當需要訪問的資源要求瀏覽器擁有服務器能夠識別的安全套接字層(SSL)客戶證書時會返回此種錯誤。
403.8 錯誤是由於禁止站點訪問而造成的。若服務器中有不能訪問該站點的 DNS 名稱列表,而您使用的 DNS 名稱在列表中時就會返回此種信息。請注意區別 403.6 與 403.8 錯誤。
403.9 錯誤是由於連接的用戶過多而造成的,由於 Web 服務器很忙,因通訊量過多而無法處理請求時便會返回這條錯誤。
403.10 錯誤是由於無效配置而導致的錯誤。當您試圖從目錄中執行 CGI、ISAPI 或其他可執行程序,但該目錄不允許執行程序時便會返回這條錯誤。
403.11 錯誤是由於密碼更改而導致無權查看頁面。
403.12 錯誤是由於映射器拒絕訪問而造成的。若要查看的網頁要求使用有效的客戶證書,而您的客戶證書映射沒有權限訪問該 Web 站點時就會返回映射器拒絕訪問的錯誤。
403.13 錯誤是由於需要查看的網頁要求使用有效的客戶證書而使用的客戶證書已經被吊銷,或者無法確定證書是否已吊銷造成的。
403.14 錯誤 Web 服務器被配置為不列出此目錄的內容,拒絕目錄列表。
403.15 錯誤是由於客戶訪問許可過多而造成的。當服務器超出其客戶訪問許可限制時會返回此條錯誤。
403.16 錯誤是由於客戶證書不可信或者無效而造成的。
403.17 錯誤是由於客戶證書已經到期或者尚未生效而造成的。
404 報錯:404 報錯主要是頁面顯示問題或者頁面的鏈接有問題,意味著鏈接指向的網頁不存在,即原始網頁的 URL 失效。當 Web 服務器接到類似請求時,會返回一個 404 狀態碼,告訴瀏覽器已請求的資源並不存在。導致這個錯誤的原因一般有以下幾種情況:
無法在所請求的端口上訪問 Web 站點。
Web 服務擴展鎖定策略阻止本請求。
MIME 映射策略阻止本請求。
網站更新改版,但某些局部板塊沿用原來的模塊,而原有的模塊調用的文件已經被刪除或轉移了路徑。
跟蹤訪問的各類腳碼或 CSS 文件無效但調用代碼依然存在。
某個目錄直接刪除(導致一段時間該目錄的文件在被爬行時全部報 404 Not Found 錯誤)
網頁 URL 生成規則改變、網頁文件更名或移動位置、導入鏈接拼寫錯誤等,導致原來的 URL 地址無法訪問
502 報錯:當測試訪問報錯為 502 Bad Gateway,這是 Web 程序配置異常導致的。建議結合 Web 訪問日誌,檢測一下 Web 程序配置的參數設置是否有異常。詳情請參見 502 bad gateway問題的解決方法。
503 報錯:503 報錯是一種 HTTP 狀態碼,與 404 同屬一種網頁狀態出錯碼。兩者的區別是:前者是服務器出錯的一種返回狀態,後者是網頁程序沒有相關結果後返回的一種狀態。503 報錯產生的原因有可能是以下幾種情況:
網絡管理員可能關閉應用程序池以執行維護。
當請求到達時應用程序池隊列已滿。
應用程序池標識沒有使用預定義賬戶:網絡服務。而自己配置了標識,但是配置的這個用戶不屬於 IIS_WPG 組。
應用程序池啟用了 CPU 監視,並且設置了 CPU 利用率超過一定百分比關閉應用程序池,而開發人員寫的服務端頁面 (.asp、.aspx) 執行效率不高,會引起 CPU 的長時間佔用,最終達到設置的百分比,從而引起應用程序池關閉。
應用程序池的性能選項卡的請求隊列限制所填的數值太小,默認為 1000。
某個目錄直接刪除(導致一段時間該目錄的文件在被爬行時全部報 404 Not Found 錯誤)。
網頁 URL 生成規則改變、網頁文件更名或移動位置、導入鏈接拼寫錯誤等,導致原來的 URL 地址無法訪問。
該站點正在被攻擊。對於最新型的攻擊,其實是 DDoS 的一種派生,原理在於找數千個IP,同時向服務器的 Apache 發出請求,然後 立即斷開,讓 Apache 處於等待狀態,致使 Apache 線程全部被填滿,致使服務器死機。因此,為了保證大多數客戶的利益,我們給每個空間,作出了每 19 秒 64 個 php 請求的限制。注意,是 php 請求,一般的圖片請求和 html 請求不包括在內。
該程序佔用的 php 線程過多,有的程序沒有進行好優化處理,一個點擊即可產生數個,甚至數十個 php 線程。這樣的話,幾個點擊就可以把該時段的64個 php 線程全部填滿了。因此出現 503 錯誤。建議優化一下程序,儘量少用 require (請求)等語句。