Ubuntu 22虛擬機【網絡故障】快速解決指南

Ubuntu22虛擬機突然無法連接網絡了,以下是故障排除步驟記錄。

Ubuntu 22虛擬機網絡故障快速解決指南

當在虛擬機中安裝的 Ubuntu 22 系統出現 ping: connect: 網絡不可達ping: www.baidu.com: 域名解析出現暫時性錯誤的報錯時,通常意味著虛擬機無法正常連接到外部網絡。這可能是由虛擬機軟件的網絡設置、Ubuntu 內部的網絡配置或宿主機的網絡狀況引起的。

本教程將引導一步步排查并解決這些問題。

所需環境與準備

  • 安裝了 Ubuntu 22 的虛擬機(如 VirtualBox, VMware Workstation/Fusion)。
  • 宿主機(運行虛擬機的電腦)能夠正常訪問互聯網。
  • 具備基本的 Linux 命令行操作知識。

排查和解決步驟

第一步:檢查虛擬機軟件的網絡適配器設置 (在您的宿主機上操作)

這是最常見的問題原因。錯誤的虛擬機網絡配置會導致虛擬機無法與宿主機或外部網絡建立連接。

  1. 關閉您的Ubuntu虛擬機。
  2. 打開您的虛擬機軟件 (如 VirtualBox 或 VMware)。
  3. 找到您的 Ubuntu 虛擬機,選中它,然后進入設置 (Settings)
  4. 導航到“網絡 (Network)”或“網絡適配器 (Network Adapter)”部分。
  5. 檢查并確認以下關鍵設置:
    • 適配器已啟用/已連接 (Adapter Enabled/Connected): 確保“啟用網絡適配器”或“已連接”選項是勾選的。
    • “數據線已連接 (Cable connected)”或“在啟動時連接 (Connect at power on)”: 確保這個選項是勾選的。
    • 連接方式 (Attached to/Network Connection Type):
      • 推薦首選:NAT (網絡地址轉換)。 這是最常用和最簡單的設置,它允許虛擬機通過宿主機的網絡連接訪問互聯網,無需復雜的配置。虛擬機通常能自動獲取IP地址。
      • 備選方案:橋接模式 (Bridged Adapter)。 如果NAT不起作用,或者您希望虛擬機在您的物理網絡中獲得一個獨立的IP地址(就像一臺真實的電腦一樣),可以嘗試“橋接模式”。選擇此項后,請確保選擇正確的宿主機物理網卡進行橋接。
  6. 保存設置并重新啟動Ubuntu虛擬機。
第二步:在Ubuntu虛擬機內部檢查網絡接口狀態 (使用 ip a)

虛擬機重啟后,進入Ubuntu系統,打開終端,執行以下命令來檢查網絡接口的狀態。

  1. 檢查網卡狀態和IP地址:

    ip a
    
    • 查看結果: 尋找一個網絡接口(通常是 ens33enp0s3eth0 或類似名稱)。
    • 確認:
      • 該接口后面是否有 UP,BROADCAST,RUNING,MULTICAST 字樣,表明網卡處于運行狀態。
      • 是否有 inet 行,后面跟著一個IP地址(例如 inet 192.168.x.x/24inet 10.0.x.x/24)。
    • 常見問題: 如果您的網卡顯示 state DOWN 且沒有 inet IP 地址,說明網卡未被激活或未獲取到IP。這正是您最初遇到的問題。
第三步:手動激活網卡 (如果網卡是 DOWN 狀態)

如果第二步中發現您的網卡(例如 ens33)顯示 state DOWN 且沒有 IPv4 地址,需要手動將其激活。

  1. 手動將網卡激活:

    在Ubuntu終端中輸入以下命令(請將

    sudo ip link set <接口名稱> up
    

    注:<接口名稱> # 替換為實際的網卡名稱,例如 ens33

  2. 再次檢查網卡狀態:

    激活后,等待幾秒鐘,然后再次運行

    ip a
    

    命令:

    ip a
    
    • 預期結果: 此時,網卡(例如 ens33)應該顯示 UP,BROADCAST,RUNNING,MULTICAST。這表示網卡已激活。
    • 注意: 此時它可能仍然沒有 IPv4 地址 (inet 行),這是正常現象,我們將在下一步解決。
第四步:強制獲取 IPv4 地址 (DHCP 續租)

即使網卡已處于 UP 狀態,如果沒有獲取到 IPv4 地址,仍然無法進行網絡通信。我們需要強制網卡通過 DHCP 協議請求一個 IP 地址。

  1. 釋放當前的IP地址(如果有的話)并重新獲取:

    在Ubuntu終端中輸入以下命令(別忘了將 <接口名稱> 替換為實際網卡名稱):

    sudo dhclient -r <接口名稱>
    sudo dhclient <接口名稱>
    
    • sudo dhclient -r <接口名稱>:這個命令會釋放當前網卡可能持有的任何 DHCP 租約。
    • sudo dhclient <接口名稱>:這個命令會強制網卡向 DHCP 服務器請求一個新的 IP 地址。
  2. 再次檢查網卡狀態和IP地址:

    執行完上述兩條命令后,等待幾秒鐘,然后再次運行 ip a 命令,查看網卡的狀態:

    ip a
    
    • 預期結果: 應該能看到在自己的網卡(例如 ens33)下方出現了一行 inet,后面跟著一個有效的 IPv4 地址(例如 inet 192.168.220.128/24),這表明已經成功獲取到了 IP 地址。
第五步:檢查默認網關和 DNS 服務器 (確認基礎網絡配置)

現在虛擬機就有 IP 地址了,接下來我們需要確保它有正確的路由和 DNS 配置來訪問互聯網。

  1. 檢查默認網關 (Default Gateway):

    運行以下命令來查看您的默認網關地址:

    ip r
    
    • 查看結果: 尋找一行以 default via 開頭的記錄,例如 default via 192.168.220.1 dev ens33。這里的 192.168.220.1 就是自己的默認網關地址。

    • 嘗試 ping 自己的默認網關:

      ping <自己的網關IP地址>
      # 例如:ping 192.168.220.1
      
      • 預期結果: 如果能正常ping通,說明自己的虛擬機與虛擬路由器之間連接正常。
  2. 檢查 DNS 服務器 (域名解析):

    即使可以 ping 通 IP 地址,如果 DNS 服務器有問題,則仍然無法通過域名訪問網站。

    resolvectl status
    
    • 查看結果: 在輸出中找到自己的網絡接口(如 ens33),在其下方查找 DNS Servers 字段。它應該顯示至少一個DNS服務器的IP地址(例如 8.8.8.8 或自己的路由器的IP)。

    • 如果DNS服務器為空或不正確,或者 ping 8.8.8.8 成功但 ping www.baidu.com 仍然失敗:

      可以嘗試手動編輯

      /etc/resolv.conf
      

      來添加公共 DNS 服務器。

      sudo nano /etc/resolv.conf
      

      在文件中添加或修改為:

      nameserver 8.8.8.8
      nameserver 114.114.114.114
      

      保存文件(按

      Ctrl+O
      

      ,回車,然后按

      Ctrl+X
      

      退出)。

第六步:最終驗證網絡連接

完成上述所有步驟后,再次嘗試ping以驗證網絡是否完全恢復。

  1. 測試外部 IP 地址連通性:

    ping 8.8.8.8
    
    • 預期結果: 應該能看到數據包正常返回。
  2. 測試域名解析和外部網絡連通性:

    ping www.baidu.com
    
    • 預期結果: 應該能看到 www.baidu.com 被解析成一個 IP 地址并且數據包正常返回。
第七步:配置靜態IP(可選)

可參考教程:(2024年最新)Linux(Ubuntu) 中配置靜態IP(包含解決每次重啟后配置文件失效問題)

  1. 打開 netplan 配置文件
# 找到配置文件名
hua@hua-vm:~$ ls /etc/netplan/
01-network-manager-all.yaml# 打開配置文件
hua@hua-vm:~$ sudo vim /etc/netplan/01-network-manager-all.yaml
  1. 編輯 netplan 配置文件
network:version: 2renderer: networkd   # 使用 systemd-networkd 作為后端,對于靜態 IP 配置,networkd 通常更為直接和穩定# renderer: NetworkManager   # 使用 NetworkManager 作為后端ethernets:ens33:dhcp4: false            # 使用靜態 IP addresses:- 192.168.220.128/24   # 靜態 IP 和子網掩碼routes:- to: defaultvia: 192.168.220.2   # 默認路由nameservers:addresses:- 8.8.8.8                 # DNS 服務器 1- 114.114.114.114         # DNS 服務器 2

執行以下命令將權限設置為安全值:

sudo chmod 600 /etc/netplan/01-static-net.yaml
  1. 處理潛在的配置文件沖突

? 方案 (推薦 - 如果只使用靜態 IP):刪除或禁用默認的網絡管理文件。

? 如果自己的 01-static-net.yaml 已經包含了所有必要的配置(包括 renderer: NetworkManager,因為自 己的靜態配置依賴它),那么默認的 01-network-manager-all.yaml 文件可能會導致沖突,或者至少是多余 的。可以將其刪除或重命名以禁用它:

# 備份著不用
sudo mv /etc/netplan/01-network-manager-all.yaml /etc/netplan/01-network-manager-all.yaml.backup
# 或者直接刪除,如果確定不需要它:
# sudo rm /etc/netplan/01-network-manager-all.yaml

? 這樣做可以確保自己的 01-static-net.yaml唯一控制 ens33 的 Netplan 配置。

  1. 重新應用 Netplan 配置

    在完成權限修正和可能的沖突處理后,再次嘗試應用配置:

# 先檢測配置,再根據提示應用配置
sudo netplan try# 或者,如果確信配置無誤,可以直接應用(不提供回滾選項)
sudo netplan apply

額外提示與注意事項

  • 宿主機網絡檢查: 確保自己的宿主機(運行虛擬機的電腦)可以正常訪問互聯網。如果宿主機本身沒有網絡,虛擬機自然也無法上網。
  • 防火墻: 極少數情況下,Ubuntu 內置的防火墻 UFW 可能會阻止連接。自己可以臨時禁用它進行測試:sudo ufw disable。如果網絡恢復,說明是防火墻問題,需要配置防火墻規則而不是禁用它。測試完記得 sudo ufw enable 重新啟用。
  • Netplan 配置: Ubuntu 22.04 使用 Netplan 管理網絡配置,文件通常在 /etc/netplan/*.yaml。雖然我們的方法通過 dhclient 解決了問題,但如果將來出現持久性問題,可以檢查這些文件內容(如 cat /etc/netplan/*.yaml),確保 dhcp4: true 配置正確。不過,在桌面版Ubuntu上,通常由 NetworkManager 負責管理,其配置文件非常簡潔。
  • 重啟虛擬機: 在某些情況下,簡單地重啟整個虛擬機可以解決一些臨時的網絡問題。

希望這份詳細的教程能幫助您順利解決 Ubuntu 虛擬機網絡問題!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/80431.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/80431.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/80431.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

實戰springcloud alibaba

實戰springcloud alibaba 前言 如何搭建一套最新的springcloud alibaba&#xff0c;以適配項目升級需求&#xff1f; 1.版本的選擇 2.各組件的適配 3.新技術的敏感性 4.前瞻性&#xff0c;幾年內不會被淘汰 參考資料&#xff1a;Spring Cloud Alibaba 參考文檔 https://spring…

泰迪杯特等獎案例學習資料:基于卷積神經網絡與集成學習的網絡問政平臺留言文本挖掘與分析

(第八屆“泰迪杯”數據挖掘挑戰賽A題特等獎案例深度解析) 一、案例背景與核心挑戰 1.1 應用場景與行業痛點 隨著“互聯網+政務”的推進,網絡問政平臺成為政府與民眾溝通的重要渠道。某市問政平臺日均接收留言超5000條,涉及民生、環保、交通等20余類訴求。然而,傳統人工…

DVWA靶場保姆級通關教程--06不安全驗證機制

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 目錄 文章目錄 前言 原理詳解 1. 前后端驗證邏輯不一致 2. 驗證碼值保存在客戶端 3. 驗證碼可預測或重復 4. 驗證碼驗證與邏輯解耦 一、處理關卡報錯 二、low級別源…

【LeetCode Hot100 | 每日刷題】排序數組

912. 排序數組 - 力扣&#xff08;LeetCode&#xff09; 題目&#xff1a; 給你一個整數數組 nums&#xff0c;請你將該數組升序排列。 你必須在 不使用任何內置函數 的情況下解決問題&#xff0c;時間復雜度為 O(nlog(n))&#xff0c;并且空間復雜度盡可能小。 示例 1&…

Windows系統下使用Kafka和Zookeeper,Python運行kafka(二)

1.配置 Zookeeper 進入解壓后的 Zookeeper 目錄&#xff08;例如 F:\zookeeper\conf&#xff09;&#xff0c;復制 zoo_sample.cfg 文件并命名為 zoo.cfg&#xff08;如果 zoo.cfg 已經存在&#xff0c;則直接編輯該文件&#xff09;。 打開 zoo.cfg 文件&#xff0c;配置相關…

Web 自動化之 HTML JavaScript 詳解

文章目錄 一、HTML 常用標簽二、javascript 腳本1、什么是 javascript(js)2、 js變量和函數3、js 彈窗處理4、js 流程控制語句和 switch 結構語句應用 一、HTML 常用標簽 HTML&#xff1a;超文本標記語言 超文本&#xff1a;不僅只包含文字&#xff0c;還有超鏈接、視頻…這些…

el-date-picker的type為daterange時僅對開始日期做限制

文章目錄 前言繡球html代碼一、正確代碼二、錯誤代碼 前言繡球 需求是這樣的&#xff0c;開始日期需要限制只能選擇今天的日期&#xff0c;結束日期只能選擇今天之后的日期。結束日期很常見&#xff0c;但是單純限制開始日期&#xff0c;還是蠻少見的&#xff0c;尤其是datera…

觀測云:安全、可信賴的監控觀測云服務

引言 近日&#xff0c;“TikTok 遭歐盟隱私監管機構調查并處以 5.3 億歐元”一案&#xff0c;再次引發行業內對數據合規等話題的熱議。據了解&#xff0c;僅 2023 年一年就產生了超過 20 億美元的 GDPR 罰單。這凸顯了在全球化背景下&#xff0c;企業在數據隱私保護方面所面臨…

認識中間件-以及兩個簡單的示例

認識中間件-以及兩個簡單的示例 什么是中間件一個響應處理中間件老朋友 nest g如何使用為某個module引入全局引入編寫邏輯一個日志中間件nest g mi 生成引入思考代碼進度什么是中間件 官方文檔 中間件是在路由處理程序之前調用的函數。中間件函數可以訪問請求和響應對象,以及…

基于Flask、Bootstrap及深度學習的水庫智能監測分析平臺

基于Flask、Bootstrap及深度學習的水庫智能監測分析平臺 項目介紹 本項目是基于Flask框架構建的水庫智能監測分析平臺&#xff0c;集水庫數據管理、實時監測預警、可視化分析和智能預測功能于一體。 預測水位的預警級別&#xff1a;藍色預警沒有超過正常水位且接近正常水位1米…

springboot生成二維碼到海報模板上

springboot生成二維碼到海報模板上 QRCodeController package com.ruoyi.web.controller.app;import com.google.zxing.WriterException; import com.ruoyi.app.domain.Opportunity; import com.ruoyi.app.tool.QRCodeGenerator; import com.ruoyi.common.core.page.TableDat…

如何使用極狐GitLab 軟件包倉庫功能托管 maven?

極狐GitLab 是 GitLab 在中國的發行版&#xff0c;關于中文參考文檔和資料有&#xff1a; 極狐GitLab 中文文檔極狐GitLab 中文論壇極狐GitLab 官網 軟件包庫中的 Maven 包 (BASIC ALL) 在項目的軟件包庫中發布 Maven 產物。然后&#xff0c;在需要將它們用作依賴項時安裝它…

企業如何將釘釘付款單高效集成到金蝶云星空?

釘釘數據集成到金蝶云星空&#xff1a;修改下推的付款單③ 在企業信息化系統中&#xff0c;數據的高效流轉和準確對接是實現業務流程自動化的關鍵。本文將分享一個實際案例&#xff0c;展示如何通過輕易云數據集成平臺&#xff0c;將釘釘中的付款單數據無縫集成到金蝶云星空系…

python 實現文件批量重命名

以下是使用Python實現文件批量重命名的示例代碼。該代碼可以將指定目錄下的文件按照一定規則進行重命名,這里以將文件重命名為帶有編號的文件名為例: import osdef batch_rename(directory):if not os.path.isdir(directory):print(

Pandas學習筆記(四)

DataFrame對象 文章目錄 DataFrame對象導入本文需要的包DataFrame與Series的相似之處使用read_csv函數導入DataFrameSeries和DataFrame的共享與專有屬性Series和DataFrame的共有方法 對DataFrame進行排序按照單列進行排序按照多列進行排序按照索引進行排序對列索引進行排序 設置…

DA14585墨水屏學習(2)

一、user_svc2_wr_ind_handler函數 void user_svc2_wr_ind_handler(ke_msg_id_t const msgid,struct custs1_val_write_ind const *param,ke_task_id_t const dest_id,ke_task_id_t const src_id) {// sprintf(buf2,"HEX %d :",param->length);arch_printf("…

樹莓派5+Ubuntu24.04 LTS串口通信 保姆級教程

【背景】 各位&#xff0c;除了樹莓派4B之外&#xff0c;我又搞了個樹莓派5, 裝的也是Ubuntu24.04 LTS服務器版。裝系統的方法跟樹莓派4B一樣&#xff0c;沒什么好說的。裝完了系統之后&#xff0c;我就想裝個wiringPi來試試串口&#xff0c;卻發現這個樹莓派5的串口和樹莓派4…

【QT】UDP通訊本地調試

qt已經寫好了udp通訊代碼&#xff0c;現在要進行測試。 1、終端輸入ipconfig查看本機網卡的ipv4地址 2、 用udpBind函數&#xff0c;綁定到此ip和自定義的端口號。 3、 打開網絡調試助手&#xff0c;自動檢測到本機的ip地址&#xff0c;輸入任意一個和程序里不一樣的端口號。 …

在 Elasticsearch 中連接兩個索引

作者&#xff1a;來自 Elastic Kofi Bartlett 解釋如何使用 terms query 和 enrich processor 來連接 Elasticsearch 中的兩個索引。 更多有關連接兩個索引的查詢&#xff0c;請參閱文章 “Elastic&#xff1a;開發者上手指南” 中的 “豐富數據及 lookup” 章節。 Elasticsea…

LabVIEW的PID參數自適應控制

在工業控制領域&#xff0c;PID 控制憑借結構簡單、穩定性好、工作可靠等優點被廣泛應用。然而&#xff0c;傳統固定參數的 PID 控制在面對復雜多變的工況時&#xff0c;控制效果往往難以達到最優。基于 LabVIEW 實現 PID 控制根據情況選擇參數&#xff08;即參數自適應調整&am…