虛擬機中ubuntu20配置NAT靜態IP踩坑記


背景

在使用ubuntu嵌入式開發過程中,不管是使用ssh登錄虛擬機還是需要使用FTP,NFS等都需要開發虛擬機的IP一直不變,一般我們有兩種方案,其一是使用一個路由器,虛擬機使用橋接的方式,直接接入路由器,然后設置使用靜態IP的方式,另外一種就是是用NAT的方式,同時設置NAT方式為靜態IP。這里只說明在設置NAT方式,及這過程中遇到的問題及解決方式

1、vmware的配置

Vmware客戶端的配置,編輯->虛擬網絡編輯器,點擊更改設置,然后安裝下圖

1、取消DHCP的勾選,2、NAT設置,記住其中的網關配置信息,如下圖中的192.168.128.2,后面配置靜態IP時需要用到

2、VMNet8配置

配置主機vmnet8的靜態IP信息,如下圖步驟所示,IP地址及其掩碼參考vmware的NAT配置信息,DNS可以自己指定,下面使用的是阿里雲的DNS

3、ubuntu虛擬機配置

從Ubuntu 17.10開始,已放棄在 /etc/network/interfaces 里固定 IP 的配置,即使配置也不會生效。Ubuntu引入了一個名為Netplan的新工具,用於網絡設置管理,Netplan將根據YAML描述文件,來配置網關參數信息。我們使用的是20.04的版本,我們需要修改/etc/netplay/目錄下的.yaml文件,沒有的話就新建一個,根據需要,配置如下:

network:
    ethernets:
    ens33:     #配置的網卡的名稱
      addresses: [192.168.128.158/24]    #配置的靜態ip地址和掩碼
      dhcp4: no    #關閉DHCP,如果需要打開DHCP則寫yes
      optional: true
      gateway4: 192.168.128.2    #網關地址
      nameservers:
         addresses: [192.168.31.2]    #DNS服務器地址,多個DNS服務器地址需要用英文逗號分隔開
  version: 2
  renderer: networkd    #指定后端采用systemd-networkd或者Network Manager,可不填寫則默認使用systemd-workd

執行 sudo netplan apply
另外,有的說需要修改/etc/NetworkManager/NetworkManager.conf文件,將managed=false 改為managed=true,但是我不修改也可以,供參考吧
在設置這個文件時,一定要注意:

1、ip地址和DNS服務器地址需要用[]括起來,但是網關地址不需要
2、注意每個冒號后邊都要先加一個空格
3、注意每一層前邊的縮進,至少比上一層多兩個空格,推薦直接用4個空格,2個空格有時也會報錯

4、其中遇到的巨坑,就是在填寫DNS服務器時,也就是nameservers的addresses信息,我開始填寫的是223.5.5.5,也就是一個公網阿里的DNS信息,導致在shell中ping百度時,怎么都是顯示域名解析失敗,但是ping百度的IP時,又是可以的,想了各種辦法,發現是需要設置成網關的地址就行了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM