Ubuntu 24.04 LTS 配置静态IP地址完全指南
问题背景
在日常的服务器运维中,我们经常会遇到服务器只有IPv6地址而没有IPv4地址的情况。最近在维护一台Ubuntu 24.04.2 LTS服务器时,就遇到了这个问题:服务器可以正常连接网络,但只分配了IPv6地址,缺少IPv4地址配置。
初始状态诊断
首先通过 ip a
命令查看网络接口状态:
$ ip a
2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 22:14:6c:01:01:9b brd ff:ff:ff:ff:ff:ff
inet6 240e:35f:bac:f000:2014:6cff:fe01:19b/64 scope global dynamic mngtmpaddr
valid_lft 259077sec preferred_lft 172677sec
inet6 fe80::2014:6cff:fe01:19b/64 scope link
valid_lft forever preferred_lft forever
可以看到网络接口 enp5s0
只有IPv6地址,缺少IPv4地址配置。
系统环境分析
通过一系列命令确认系统的网络管理方式:
# 检查网络管理器状态
$ sudo systemctl status NetworkManager
Unit NetworkManager.service could not be found.
# 检查netplan配置文件
$ sudo cat /etc/netplan/*.yaml
cat: '/etc/netplan/*.yaml': No such file or directory
# 确认使用systemd-networkd
$ sudo systemctl status systemd-networkd
● systemd-networkd.service - Network Configuration
Loaded: loaded (/usr/lib/systemd/system/systemd-networkd.service; enabled; preset: enabled)
Active: active (running) since Tue 2025-08-26 23:52:20 UTC; 1h 17min ago
关键发现:
系统使用
systemd-networkd
而非 NetworkManager/etc/netplan/
目录存在但为空/etc/systemd/network/
目录也为空没有任何网络配置文件
这解释了为什么只能通过自动配置获取IPv6地址,而无法获取IPv4地址。
解决方案:配置netplan
步骤1:创建基础配置
创建netplan配置文件启用DHCP:
sudo nano /etc/netplan/01-netcfg.yaml
添加以下内容:
network:
version: 2
renderer: networkd
ethernets:
enp5s0:
dhcp4: true
dhcp6: true
步骤2:应用配置并修复权限
# 应用配置
sudo netplan apply
# 修复文件权限(重要的安全措施)
sudo chmod 600 /etc/netplan/01-netcfg.yaml
应用配置后,成功获取到IPv4地址:
$ ip addr show enp5s0
2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 22:14:6c:01:01:9b brd ff:ff:ff:ff:ff:ff
inet 192.168.1.163/24 metric 100 brd 192.168.1.255 scope global dynamic enp5s0
valid_lft 86386sec preferred_lft 86386sec
inet6 240e:35f:bac:f000:2014:6cff:fe01:19b/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 259187sec preferred_lft 172787sec
进阶配置:静态IP地址
对于服务器环境,静态IP地址更加稳定和可预测。
步骤1:收集网络环境信息
# 查看路由信息
$ ip route show
default via 192.168.1.1 dev enp5s0 proto dhcp src 192.168.1.163 metric 100
192.168.1.0/24 dev enp5s0 proto kernel scope link src 192.168.1.163 metric 100
# 查看DNS配置
$ resolvectl status
Link 2 (enp5s0)
Current Scopes: DNS
Protocols: +DefaultRoute -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: fe80::1
DNS Servers: 192.168.1.1 fe80::1
步骤2:配置静态IP
修改netplan配置文件:
network:
version: 2
renderer: networkd
ethernets:
enp5s0:
addresses:
- 192.168.1.163/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 192.168.1.1
- 8.8.8.8
- 8.8.4.4
dhcp6: true
步骤3:应用并验证配置
sudo netplan apply
# 验证IP地址(注意valid_lft变为forever)
$ ip addr show enp5s0
inet 192.168.1.163/24 brd 192.168.1.255 scope global enp5s0
valid_lft forever preferred_lft forever
# 验证路由(注意proto变为static)
$ ip route show
default via 192.168.1.1 dev enp5s0 proto static
192.168.1.0/24 dev enp5s0 proto kernel scope link src 192.168.1.163
# 测试网络连通性
$ ping -c 3 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=114 time=54.4 ms
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
配置要点总结
1. 系统识别
Ubuntu 24.04 LTS 默认使用
systemd-networkd
+netplan
检查
/etc/netplan/
目录是否存在配置文件确认网络管理器类型:NetworkManager vs systemd-networkd
2. 安全注意事项
# netplan配置文件权限必须设置为600
sudo chmod 600 /etc/netplan/*.yaml
3. 配置文件结构
版本声明:
version: 2
渲染器:
renderer: networkd
网络接口:使用实际的接口名称(如enp5s0)
4. 动态vs静态配置对比
常见问题排查
1. 权限警告
WARNING: Permissions for /etc/netplan/01-netcfg.yaml are too open
解决方案:sudo chmod 600 /etc/netplan/01-netcfg.yaml
2. 配置不生效
检查YAML语法缩进(使用空格,不要用Tab)
确认网络接口名称正确
重启网络服务:
sudo systemctl restart systemd-networkd
3. DNS解析问题
验证DNS服务器可达性
检查
systemd-resolved
服务状态使用
resolvectl status
确认DNS配置
最终效果
配置完成后的网络状态:
✅ IPv4地址:192.168.1.163/24(静态配置)
✅ IPv6地址:240e:35f:bac:f000:2014:6cff:fe01:19b/64(动态配置)
✅ 网关路由:192.168.1.1(静态路由)
✅ DNS解析:多DNS服务器配置,提高可靠性
✅ 网络连通性:IPv4和IPv6双栈正常工作
这种配置方式既保证了IPv4的稳定性(静态IP),又保持了IPv6的灵活性(自动配置),是现代服务器网络配置的最佳实践。
总结
通过本文的实践,我们成功解决了Ubuntu 24.04 LTS服务器缺少IPv4地址的问题,并进一步配置了稳定的静态IP地址。关键在于理解系统的网络管理架构,正确使用netplan配置工具,以及注意配置文件的安全权限设置。
对于生产环境的服务器,建议使用静态IP配置以确保网络的稳定性和可预测性。同时,保持IPv6的自动配置可以为未来的网络扩展提供更好的兼容性。