# 【網路相關】

# 【Linux】【Ubuntu】如何修改 ip

以下提供在 **Ubuntu 18.04 以後（netplan）** 與 **Ubuntu 16.04 舊版（/etc/network/interfaces）** 的常見修改方式，請依照你實際版本選擇。

---

## 1️⃣ 確認目前網路設定工具

Ubuntu 18.04 以後預設使用 **Netplan**

```bash
ls /etc/netplan/

```

若此資料夾存在 YAML 檔案（例如 `00-installer-config.yaml`），代表使用 Netplan。

---

## 2️⃣ Netplan 修改（Ubuntu 18.04+）

1. **查詢目前網卡名稱**
    
    ```bash
    ip link
    
    ```
    
    例如 `ens33`、`enp0s3`。
2. **編輯設定檔**
    
    ```bash
    sudo nano /etc/netplan/00-installer-config.yaml
    
    ```
    
    內容範例：
    
    ```yaml
    network:
      version: 2
      renderer: networkd
      ethernets:
        ens33:
          dhcp4: no
          addresses:
            - 192.168.1.100/24
          gateway4: 192.168.1.1
          nameservers:
            addresses: [8.8.8.8, 8.8.4.4]
    
    ```
3. **套用設定**
    
    ```bash
    sudo netplan apply
    
    ```
    
    建議第一次可用 `sudo netplan try`，若有誤會自動還原。

---

## 3️⃣ 傳統 /etc/network/interfaces（Ubuntu 16.04 或自行安裝 ifupdown）

1. 編輯：
    
    ```bash
    sudo nano /etc/network/interfaces
    
    ```
2. 範例：
    
    ```
    auto ens33
    iface ens33 inet static
        address 192.168.1.100
        netmask 255.255.255.0
        gateway 192.168.1.1
        dns-nameservers 8.8.8.8 8.8.4.4
    
    ```
3. 套用：
    
    ```bash
    sudo systemctl restart networking
    
    ```

---

## 4️⃣ 臨時修改 IP（重開機後失效）

若只想暫時修改：

```bash
sudo ip addr add 192.168.1.100/24 dev ens33
sudo ip route add default via 192.168.1.1

```

---

## 5️⃣ 驗證設定

```bash
ip addr show
ip route
ping 8.8.8.8

```

---

### 小提醒

- 若同時使用 **VPN** 或 **Cloud Provider（AWS/GCP/Azure）**，請確認平台的網卡策略與安全群組。
- 修改前最好備份設定檔：
    
    ```bash
    sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.bak
    
    ```

以上即可依版本與需求選擇永久或臨時的 Ubuntu IP 修改方式。

---

###  如果出現警告畫面

[![image-1757918219117.png](https://bookstack.treemanou.com/uploads/images/gallery/2025-09/scaled-1680-/xbg0Z279VoutyXEI-image-1757918219117.png)](https://bookstack.treemanou.com/uploads/images/gallery/2025-09/xbg0Z279VoutyXEI-image-1757918219117.png)

從這張截圖可以看到兩類主要警告訊息：

---

## 1️⃣ 檔案權限過開 (Permissions are too open)

```
Permissions for /etc/netplan/00-installer-config.yaml are too open.
Netplan configuration should NOT be accessible by others.

```

**原因**：  
Netplan 要求設定檔必須只有 root 可以寫，否則 `netplan apply` 會拒絕。

**解法**：  
把檔案權限調整為 600 或 640，例如：

```bash
sudo chmod 600 /etc/netplan/00-installer-config.yaml
# 或若需要同群組讀取
sudo chmod 640 /etc/netplan/00-installer-config.yaml

```

再確認：

```bash
ls -l /etc/netplan/00-installer-config.yaml
# -rw------- 或 -rw-r----- 都可以

```

---

## 2️⃣ `gateway4` 已被棄用

```
'gateway4' has been deprecated, use default routes instead.

```

Ubuntu 22.04 之後 `gateway4` 舊語法建議改成 `routes:` 或 `default`。

**修改範例**  
舊：

```yaml
ethernets:
  ens33:
    dhcp4: no
    addresses: [192.168.1.100/24]
    gateway4: 192.168.1.1

```

新：

```yaml
ethernets:
  ens33:
    dhcp4: no
    addresses: [192.168.1.100/24]
    routes:
      - to: default
        via: 192.168.1.1

```

---

## 3️⃣ 其他訊息

```
WARNING:root:Cannot call Open vSwitch: ovsdb-server.service is not running.

```

如果沒有使用 Open vSwitch 可以忽略；若有需要，就啟動服務：

```bash
sudo systemctl enable --now ovsdb-server

```

---

### 建議修正步驟總結

1. **調整權限**
    
    ```bash
    sudo chmod 600 /etc/netplan/00-installer-config.yaml
    
    ```
2. **修改 YAML 把 `gateway4` 換成 routes**
3. 驗證語法：
    
    ```bash
    sudo netplan try
    
    ```
    
    沒問題後：
    
    ```bash
    sudo netplan apply
    
    ```

這樣就能消除「Permissions too open」與「gateway4 deprecated」兩個警告。