Ubuntu18.04配置靜態ip遇到的報錯
說明:
因為很多測試環境在這個Ubuntu系統上裝著,卻由於虛擬服務器的重啟、斷電,每次Ip發生變化,就得更新環境,所以需要把該環境的ip配置成靜態的,壹勞永逸。
根據以往配置Ubuntu靜態ip的經驗,直接 vi /etc/network/interfaces 在該文件下配置了靜態ip,重置網絡後發現並沒有生效
所以查了ubuntu版本,是18.04,然後百度,發現“ubuntu從17.10開始,已放棄在/etc/network/interfaces裏固定IP的配置,即使配置也不會生效,而是改成netplan方式 ,配置寫在/etc/netplan/01-netcfg.yaml或者類似名稱的yaml文件裏”,所以根據查到的方法進行配置,結果遇到好多報錯,差點吐血,這裏記下自己遇到的報錯
1、剛開始的配置如下:在執行netplan apply發生報錯信息Invalid YAML at //etc/netplan/01-netcfg.yaml line 11 column 11: mapping values are not allowed in this context
解決辦法:yaml是層次結構,需要縮進,冒號(:)表示字典,連字符(-)表示列表,冒號出現的後面壹定要空壹格
2、冒號後添加空格後(如下圖)再執行netplan apply又報錯:Invalid YAML at //etc/netplan/01-netcfg.yaml line 11 column 6: did not find expected key
解決辦法:nameservers應該和gateway4壹樣是第四層,nameservers後的addresses應該是第五層
正確的層數如下:
第壹層-network:
第二層-- ethernets:
第三層--- ens33:
第四層----addresses: [172.18.0.31/24]
第四層----gateway4: 172.18.0.1
第四層----nameservers:
第五層-----addresses: [114.114.114.114, 8.8.8.8]
3、按照上面的辦法解決後如下圖執行netplan apply又報錯:Error in network definition //etc/netplan/01-netcfg.yaml line 8 column 16: expected scalar
解決辦法:gateway4的地址沒有中括號,修改後重啟網絡服務就正常了(netplan apply)
所以正確的配置格式應該如下:這樣就成功配置了靜態ip
我沒遇到的報錯:
出現類似錯誤:line8 column 6:cloud not find expected ':' #提示是冒號:後面沒加空格
出現類似錯誤:netplan found character that cannot start any token,#提示是沒有按五個層次寫配置文檔,壹定要下壹層比上壹層多空壹格或以上。
總之:這裏重啟網絡時報錯,大多是層次不對、格式不對、沒有空格