Ubuntu server 24.04.3 设置静态IP

Ubuntu Server 24.04.3 中设置静态 IP 地址已经与之前的版本(如 18.04)有了很大的不同。它不再使用传统的 `netplan` 配置,而是默认采用了新的 **`networkd`** 和 **`systemd-networkd`** 作为网络管理工具。

以下是两种主流方法,**方法一(使用 netplan)是官方推荐且更易于管理的方式**。


方法一:使用 Netplan(推荐,尤其对新手)

尽管 `systemd-networkd` 是新的默认项,但 `netplan` 仍然被支持并作为其前端配置工具。这是最清晰、最不容易出错的方法。

  1. **定位 Netplan 配置文件**

Netplan 配置文件位于 `/etc/netplan/` 目录下,通常命名为 `00-installer-config.yaml`、`01-netcfg.yaml` 或类似名称。使用 `ls` 命令查看。

```bash

ls /etc/netplan/

```

  1. **编辑配置文件**

使用 `nano` 或 `vim` 编辑你找到的 YAML 文件。这里以 `nano` 和常见的 `00-installer-config.yaml` 为例:

```bash

sudo nano /etc/netplan/00-installer-config.yaml

```

  1. **修改配置内容**

文件原始内容可能使用的是 `dhcp4: true`。你需要将其修改为静态 IP 配置。请根据你的网络环境替换以下参数:

* `192.168.1.100/24`:你想要的静态 IP 地址和子网掩码位数(`/24` 对应 `255.255.255.0`)。

* `192.168.1.1`:你的网关(通常是你的路由器地址)。

* `addresses: [8.8.8.8, 1.1.1.1]`:DNS 服务器地址,可以设置多个。

```yaml

network:

version: 2

renderer: networkd

ethernets:

enp0s3: # 这是你的网络接口名称,请使用 `ip a` 命令确认你的正确网卡名

addresses:

  • 192.168.1.100/24

routes:

  • to: default

via: 192.168.1.1

nameservers:

addresses: [8.8.8.8, 1.1.1.1]

可选:如果你的网络需要MAC地址克隆等功能,可以设置

match:

macaddress: aa:bb:cc:12:34:56

set-name: enp0s3

```

**⚠️ 重要:** 确保缩进是空格(通常是 2 个),而不是制表符(Tab),YAML 对格式要求非常严格。

  1. **应用新的网络配置**

使用 `netplan apply` 命令来应用更改,而无需重启。

```bash

sudo netplan apply

```

  1. **验证配置**

使用 `ip a` 命令检查你设置的网卡(如 `enp0s3`)是否已经获取了新的静态 IP 地址。

```bash

ip a show enp0s3

```

同时测试网络连通性:

```bash

ping -c 4 8.8.8.8 # 测试外网连通性

ping -c 4 192.168.1.1 # 测试网关连通性

```


方法二:直接使用 systemd-networkd(底层方式)

这种方法直接配置 `systemd-networkd`,不通过 `netplan`。

  1. **创建或编辑网络配置文件**

配置文件位于 `/etc/systemd/network/`。你需要为你的网卡创建一个以 `.network` 结尾的文件,例如 `10-static-enp0s3.network`(`enp0s3` 替换为你的网卡名)。

```bash

sudo nano /etc/systemd/network/10-static-enp0s3.network

```

  1. **写入配置内容**

将以下内容填入文件,并替换为你的网络参数。

```ini

Match

Name=enp0s3 # 你的网卡名称

Network

Address=192.168.1.100/24

Gateway=192.168.1.1

DNS=8.8.8.8

DNS=1.1.1.1

```

  1. **重启 `systemd-networkd` 服务**

让配置生效。

```bash

sudo systemctl restart systemd-networkd

```

  1. **配置 DNS(如果需要)**

虽然在上面的文件中指定了 DNS,但有时仍需配置 `systemd-resolved`。编辑 `/etc/systemd/resolved.conf`:

```bash

sudo nano /etc/systemd/resolved.conf

```

取消注释并修改以下行:

```ini

Resolve

DNS=8.8.8.8 1.1.1.1

#FallbackDNS=

#Domains=

#DNSSEC=no

#DNSOverTLS=no

#MulticastDNS=no

#LLMNR=no

#Cache=yes

#DNSStubListener=yes

#ReadEtcHosts=yes

```

然后重启服务:

```bash

sudo systemctl restart systemd-resolved

```


关键命令和故障排查

* **查找你的网络接口名称**:使用 `ip a` 或 `ls /sys/class/net` 命令。通常是以 `en`(有线)或 `wl`(无线)开头的名字,如 `enp0s3`, `eth0`。

* **检查网关地址**:你的网关通常是路由器的 IP 地址,如 `192.168.1.1` 或 `192.168.0.1`。

* ** netplan 尝试/调试**:在应用配置前,可以使用 `sudo netplan try` 命令来测试配置是否正确。它会给你一个回滚的机会。

* ** netplan 生成配置**:如果你直接配置了 `systemd-networkd`,但想回到 `netplan`,可以运行 `sudo netplan generate` 来重新生成 `netplan` 配置。

**总结:对于 Ubuntu Server 24.04.3,强烈建议使用【方法一:Netplan】**,因为它提供了更友好、更易于维护的抽象层,并且是 Ubuntu 官方标准的网络配置方式。

相关推荐
努力努力再努力wz44 分钟前
【C++进阶系列】:万字详解unordered_set和unordered_map,带你手搓一个哈希表!(附模拟实现unordered_set和unordered_map的源码)
java·linux·开发语言·数据结构·数据库·c++·散列表
Small___ming1 小时前
【Linux基础学习】Linux Ubuntu 权限管理:从入门到精通
linux·学习·ubuntu
tan77º1 小时前
【项目】基于多设计模式下的同步&异步日志系统 - 项目介绍与前置知识
linux·c++·设计模式
yalipf2 小时前
忘记密码更改ubuntu18.08的密码--前提是要知道用户名work
linux·运维·ubuntu
怀旧,2 小时前
【Linux系统编程】3. Linux基本指令(下)
linux·开发语言·c++
艾莉丝努力练剑2 小时前
【C++STL :stack && queue (三) 】优先级队列的使用以及底层实现
linux·开发语言·数据结构·c++·stl
web安全工具库3 小时前
Makefile 模式规则精讲:从 %.o: %.c 到静态模式规则的终极自动化
linux·运维·c语言·开发语言·数据库·自动化
清静诗意4 小时前
Ubuntu 系统下 MySQL 8.0 安装与远程访问完整教程
mysql·ubuntu·adb
江公望7 小时前
Qt的环境变量QT_QPA_PLATFORM浅解
linux·qt
Wang's Blog8 小时前
Linux小课堂: 文件操作核心命令深度解析(cat、less、head、tail、touch 与 mkdir 命令)
linux·chrome·less