0%

Ubuntu Server修改静态IP

Ubuntu 信息:

  • Distributor ID: Ubuntu
    Description: Ubuntu 24.04.3 LTS
    Release: 24.04
    Codename: noble

在较新版本的发行版Ubuntu或者Debian及Debian系的各种发行版中修改系统的IP是十分重要的,特别是在本地部署的服务器,在使用本地服务器连接到路由器并通过内网地址进行ssh连接时,由于路由器的DHCP设置,系统可能会在某次开机后备DHCP分配一个与上次使用不同的IP地址。当你在某ssh客户端计划继续使用旧配置连接至服务器时,可能会出现无法连接的情况。这时候就需要在路由器绑定MAC地址分配静态IP或者直接修改服务器的网络配置文件。

注意

新版本的Ubuntu网络配置文件的地址在:

1
/etc/netplan/*****.yaml

其中提到的*****.yaml可能为 50-cloud-init.yaml或者其他文件,该目录下影带只有一个yaml文件,所以直接修改此文件即可。

系统默认开启DHCP,所以打开文件后文件内容可能会显示如下:

1
2
3
4
5
network:
version: 2
ethernets:
ens33:
dhcp4: true

从配置内容可以看到,网卡的名称为ens33 , DHCP的状态为开启(true).

修改为静态IP时需要将true修改为false,并且在对齐dhcp配置的下面还需要添加相关的静态地址信息,比如addressesroutesnameservers参数内容。

addresses参数

需要添加你的自定义局域网IP,并且指定时要在左后使用斜杠跟上一个子网掩码的CIDR信息.例如:

1
2
addresses:
- 192.168.31.77/24

其中的/24指的就是我的网络中前缀长度,如何判断/后的数字怎么选?

常见家庭/办公网络 推荐 CIDR
192.168.0.x /24
192.168.1.x /24
192.168.31.x /24
10.0.0.x /24/16(看规划)

routers参数

这里的参数要添加两个变量,例:

1
2
3
routes:
- to: default
via: 192.168.31.1

- to 就填写默认的default

via参数需要填写你的局域网网关地址

nameserveres 参数

这里添加的是名称服务器,该参数是一个元组,有两个数据,如无特殊需求,第一个参数填你的网关地址,第二个参数填写任意公共DNS

1
2
nameservers:
addresses: [192.168.31.1, 1.1.1.1]

注意: 元组(使用中括号表示的内容就叫元组)中的多个数据要使用英文逗号隔开,英文逗号后还需要加一个英文空格以做区分。

我们来对比一下前后配置文件的区别:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 旧的配置文件

network:
version: 2
ethernets:
ens33:
dhcp4: true


# 新的配置文件
network:
version: 2
ethernets:
ens33:
dhcp4: false
addresses: # addresses参数要和上一条参数左对齐
- 192.168.31.77/24 # 参数内容要相对于上面缩进两字符
routes:
- to: default
via: 192.168.31.1
nameservers:
addresses: [192.168.31.1, 1.1.1.1]

修改时注意缩进关系以及配置文件中是否有-符号,nameservers 配置项的元组内容要注意,且这项配置开头不含-,必须注意。