起因
發現更新套件請求失敗
從圖中的錯誤尋息來看,發現 download.docker.com 無法被解析
檢測步驟
第一步:在瀏覽器上驗證網址的有效性
將 download.docker.com 的網址放置瀏覽器上,實際送出確認是否有異常
從圖中來看,請求的 status code 200 OK ,無異常
第二步:在虛擬機 ping 網址看是否有回應
ping download.docker.com 確認是否有回應
從圖中發現 download.docker.com 名稱解析暫時失敗
需要留意的事情是, ping 這個工具的特性是網址的 ICMP 服務要是開啟的,故我們無法確認 download.docker.com 是否有開 ICMP 功能
不過我們知道 google.com 有開啟 ICMP 功能
因此我們可以 ping google.com 確認
google.com 名稱解析也失敗,證實 ping 網址確實不通
第三步:在虛擬機 ping google IP 看是否有通
如果 ping IP 有通,代表虛擬機的 DNS 沒有設定好
那我們來 ping google 的 DNS (8.8.8.8) 確認是否有通
圖片中可以看到,封包 100% 遺失 (100% packet loss) ,表示虛擬機無法連上網際網路
第四步:查看 gateway IP 以及檢測其是否有通
因為虛擬機會透過 gateway 連到網際網路,所以要確保其 gateway 設定正確,且可被連上
從圖中可知,此時的 gateway IP 為 192.168.1.1
接著 ping gateway IP 確認 gateway 可以被虛擬機連上
圖片中可以看到,此時的封包亦是 100% 遺失 (100% packet loss) , 表示虛擬機無法連上 gateway
檢測結論:gateway 沒有設定好,導致無法連線到網際網路,後來發現正確的 gateway IP 為 192.168.1.254
修正問題
調整虛擬機上的 gateway IP (此調整的版本為 Ubuntu20.04 ,如果使用其他版本,可詢問 chatGPT )
設定完成後,記得進行套用,套用後即可生效
此時可以再次確認 gateway IP 是否成功調整
這樣就完成調整了
驗證是否成功設定
第一步:查看 gateway 是否能成功 ping 到
ping gateway IP 查看是否接收到封包
圖片中可以看到沒有封包遺失 ( 0% packet loss ) ,表示虛擬機到 gateway 的線路正常
第二步:查看 google DNS IP 是否能成功 ping 到
ping google DNS IP 查看是否接收到封包
圖片中可以看到沒有封包遺失 ( 0% packet loss ) ,表示網際網路可以正常連線
第三步:查看 google 網址是否能成功 ping 到
ping google.com 查看是否接收到封包
圖片中可以看到沒有封包遺失 ( 0% packet loss ) ,表示網址可以正常連線
第四步:回到最初的指令,查看 apt update 是否有作用
圖片中可以看到 apt update 無異常錯誤訊息
結論
gateway 沒有設定好,倒置無法連線到網際網路