[Ubuntu] Linux 設定固定ip

先查看目前ip資訊:
ip addr

127.0.0.1是本機
看第二個,網卡名稱是 ens33
當前 ip 是 172.17.108.128

先移動到 /etc/netplan 路徑下:
cd /etc/netplan/
查看檔案:
ls

目前的檔案名稱叫做01-network-manager-all.yaml,要編輯的就是他,每個人的可能會不一樣
使用管理員權限用 nano指令編輯,輸入nano和 剛剛找到的檔案名稱
sudo nano 01-network-manager-all.yaml 
原本長這樣:

改成這樣:
把 ens33 替換為上面查到的
addresses替換為目標ip
gateway4替換為預設閘道器

network:
version: 2
renderer: NetworkManager
ethernets:
ens33:
dhcp4: no
addresses: [192.168.11.15/24]
gateway4: 192.168.0.1
nameservers:
addresses: [8.8.8.8,7.7.7.7]



修改好了之後,使用:
sudo netplan try
如果內容沒有錯誤,按下Enter就會套用,120秒內沒有按下Enter,就不會套用
這樣的設計有可能是為了避免遠端登入的因為改了ip而連不回來


再次輸入 ip addr 查看 ip,會發現已經成功了!

註:本次示範跨網域是因為搭配VM修改網路設定

假設確定了可以使用下面的指令直接套用變更:
  
sudo netplan apply




補充:

如果有出現以下警告:
  
** (process:1618): WARNING **: 02:35:11.057: `gateway4` has been deprecated, use default routes instead.
See the 'Default routes' section of the documentation for more details.


說明 gateway4 已經要被棄用了,可以使用下面的方式取代:
  
# This is the network config written by 'subiquity'
network:
  ethernets:
    ens160:
      dhcp4: no
      addresses: [192.168.0.222/24]
      routes:
        - to: default
          via: 192.168.0.1
      nameservers:
        addresses: [8.8.8.8, 7.7.7.7]
  version: 2




再多一個範例:
  
# This is the network config written by 'subiquity'
network:
  ethernets:
    ens160:
      dhcp4: false
      addresses:
        - 192.168.0.200/24
      nameservers:
        addresses:
          - "8.8.8.8"
          - "7.7.7.7"
      routes:
        - to: default
          via: 192.168.0.1
    ens192:
      addresses:
        - 192.168.1.100/24
      nameservers:
        addresses:
          - "8.8.8.8"
          - "7.7.7.7"
  version: 2


留言