Ubuntu24.04从DHCP改为静态IP
最近在鼓捣一台内网的 Ubuntu Server 24.04 的机器。以前主要用来测试,安装的时候为了省事打开了DHCP让路由器自动分配。现在要用来跑一些服务,担心路由器会重新分配IP,于是打算改为手动指定IP。
如果是桌面版Ubuntu很简单,直接进设置里修改即可。不过对于Ubuntu Server,20.04/22.04/24.04 使用了 netplan
来管理网口,操作和其他大部分 Linux 不一样了,顺手写篇文章做下记录。
准备工作
进入终端或者用SSH远程连接。修改之前,先用以下命令查一下网口的名称。
ip link show
每个数字序号后面就网口的名称,其中第一个名叫 lo
的是本地回环设备,从第二个开始找。大多数机器只会有一个可用的网口(如下图),找到后复制名称出来备用。
备注:如果系统提示缺少 ip
命令,可能是在装系统的按最小模式安装的,用以下命令补充安装网络工具包:
sudo apt install net-tools
修改网口配置
先找到配置文件的目录
cd /etc/netplan && ls -l
如果没有调整过网络配置,正常情况下目录里只会有一个文件。注意在不同系统版本中的文件名会不一样(比如截图中的是Ubuntu 24.04 下文件名为 50-cloud-init.yaml
),但一般是以 -init.yaml
结尾。
打开并编辑这个文件,比如: nano 50-cloud-init.yaml
。
这是一个YAML格式的文件,默认内容如下:
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
enp6s18:
dhcp4: true
version: 2
ethernets
的下一层级就是每个网口对应的网络配置。
找到前面用命令查出来网口(比如这里是 enp6s18
),调整里面的内容。参考如下(#号后面是注释说明):
network:
ethernets:
enp6s18:
dhcp4: false
# dhcp6: false # 禁用IPv6 DHCP自动分配
# mtu: 1500 # 修改 MTU 帧大小
addresses:
- 192.168.1.181/24 # 静态 IP 地址和子网掩码
routes:
- to: default
via: 192.168.1.1 # 网关地址
nameservers:
addresses:
- 8.8.8.8 # DNS 服务器地址
- 8.8.4.4
version: 2
其中:
dhcp4
表示IPv4 DHCP自动分配开关,true
启用 / false
禁用。因为要把系统改为静态IP,所以得设为 false
。
dhcp6
一项是IPv6自动分配。同理,如果有需要可以加上。
addresses
下配置的就是静态IP地址了(注意一定要加上掩码)。这一项是数组,可以配置多个静态地址。(备注:YAML中每行前面的 -
(减号和空格)用来表示数组中的一项)。
routes
部分用于配置路由。网关(一般是路由器)地址也是在这项里面设置,属于固定写法。
nameservers.addresses
则是配置DNS服务的地址。可以配置多项(即其他系统中的主、备DNS),但至少要配置一项。按自己的需要填写,比如示例中给的这两DNS服务地址是 Google 的服务。
另外还有一项 mtu
用于修改网络帧大小,没有特殊需要也可以不配置,让系统用默认值。
其他的部分保持和原文件一样,不作修改即可。
保存后运行以下命令应用:
sudo netplan apply
稍等一会,当修改生效后,网络会断开一次。
当然,直接重启系统也可以。
验证
用SSH重新连接新的地址。输入 ip addr show
检查一下对应的网口,一切正常的话就会看到该网口下只有新的IP了。
https://xyuxf.com/archives/2313
欢迎关注 咸鱼先锋 (微信号公众号:xyuxf),获取干货推送
共有 0 条评论