輸入網站連結,卻遇到網路連線逾時 (network connection timed out) 錯誤訊息時。從網站服務、主機內部、防火牆議題逐層找到問題原因。
Photo by Lenharth Systems on StockSnap |
錯誤狀況
Detail: x.x.x.x: Fetching http://www.網站.com.tw/.well-known/acme-challenge/6gT5QrYjlZ_7CcqBDmm_yr1F2G5WEqxQSE1jwrzyBvA: Timeout during connect (likely firewall problem)
手動在同樣位置建立檔案,將同樣連結貼到瀏覽器,瀏覽時也遇到同樣連線逾時狀況。
瞭解問題
從使用者瀏覽器輸入連結到網站,總共經過四個階段:互聯網 --> 主機機房 --> 實體主機、雲端主機 --> 網站服務。
1. 網站服務
SSH 登入該網站所在主機後,先檢查網路服務是否正在啟動的狀態:
網站服務可能是 Apache HTTP Server、NGINX Web Server ,請自行確認。Linux 作業系統確認 Apache HTTP Server 是否正在啟動的語法是
sudo systemctl status apache2 # 適用 Debian/Ubuntu 作業系統
systemctl status httpd # 適用 RHEL/CentOS/Fedora 作業系統
2. 主機內部
(1) 安裝 lynx 文字瀏覽器
sudo apt install lynx # 適用 Debian/Ubuntu 作業系統
sudo yum -y install lynx # 適用 RHEL/CentOS/Fedora 作業系統
(2) 使用 lynx 文字瀏覽器瀏覽網站
lynx http://127.0.01
或 lynx http://localhost
(3) 檢查網站存取紀錄檔:
因為不同網站服務紀錄檔存放位置可能不同,以下以 Ubuntu Apache 為例。
sudo tail /var/log/apache2/access.log
sudo tail /var/log/apache2/error.log
成功瀏覽網站的同時,網站存取紀錄檔會自動新增一筆紀錄
如果不是網站服務,則可以使用
telnet 127.0.0.1 <PORT>
3. 防火牆議題
「主機機房的防火牆」還需要去聯絡機房網管才能知道防火牆規則,所以我們先旁敲側擊分析防火牆的狀況。
檢查 Ubuntu 主機本身並未啟用防火牆服務 (Ubuntu UFW),也沒有啟用 SELinux。問題很有可能出在「主機機房的防火牆」。使用外部網路打開瀏覽器輸入連結,再檢查網站存取紀錄檔:
因為不同網站服務紀錄檔存放位置可能不同,以下以 Ubuntu Apache 為例。
sudo tail /var/log/apache2/access.log
sudo tail /var/log/apache2/error.log
切換到儲存到網站紀錄的目錄,觀察有沒有其他更新的 log
sudo ls -lht /var/log/apache2
沒有新增任何存取紀錄,代表連線還沒有到網站服務,就被機房的防火牆擋掉。這時候可以有禮貌地寫信給網管陳述問題。
附帶一提:Amazon RDS 雲端服務為例,預設是關閉外部連線。需要額外設定連入 (inbound) 與連出 (outbound) 的防火牆規則。
4. 互聯網 ISP
有些時候是 ISP 網路 (網際網路連線服務公司,Internet Service Provider) 連線出問題,如果要排除是不是這個環節出問題,可以
- 切換網路連線方式,例如切換公司網路或自己手機熱點不同連線方式
- 使用國外網站 Is it down? Check at Down for Everyone or Just Me 輸入連結確認
如果要例行性定期監測自己網站是否要線上,請參考 Web ping 清單
如果不是網站服務,則可以使用
telnet 主機網域或IP <PORT>
參考資料
- Start / Stop and Restart Apache 2 Web Server Command - nixCraft
- 3 Ways to Check Apache Server Status and Uptime in Linux
- How to Install Lynx Browser on Ubuntu 20.04 – LinuxWays
- How To Install lynx on CentOS 8 | Installati.one
- How to Check Firewall Status in Ubuntu Firewall
- 安全增強式Linux - 維基百科,自由的百科全書
- Cannot connect to a database | DataGrip
圖片素材
- Website icon in Hand Drawn Style by Icons8
- Photo by Lenharth Systems on StockSnap
- File:Apache Feather Logo.svg - Wikimedia Commons
留言
張貼留言