文章目录

最近在玩ubuntu,发现如果系统中有podman容器处于开启状态,则在重启ubuntu后会出现找不到网卡,找不到网卡也就没有IP地址,这里需要再次重启ubuntu才能正常(解决方案见后文: 开机自动运行容器)。 在虚拟机上这样玩的时候,出现另一个问题就是,如果虚拟机使用的DHCP分配的IP地址,则IP地址会发生变化。那么如何才能设置静态的IP地址呢?

一、确认网关地址

首先需要知道网关地址,比如笔者的虚拟机网关地址为:192.168.1.2

如果是使用VMware虚拟机可以直接在虚拟机网络编辑器中查看网关地址:

二、修改配置文件

1.ubuntu

以笔者使用的ubuntu 21.10版本为例:

a.查看DHCP模式下的DNS信息

使用下面的命令查看DNS信息:

1systemd-resolve --stautus

b. 修改/etc/netplan/00-installer-config.yaml文件

1sudo vi /etc/netplan/00-installer-config.yaml

笔者的系统安装后默认内容为:

1# This is the network config written by 'subiquity'
2network:
3  ethernets:
4    enp3s0:
5      dhcp4: true
6  version: 2

比如我们将IP地址固定为192.168.1.8,则修改为:

 1# This is the network config written by 'subiquity'
 2network:
 3  ethernets:
 4    ens33:
 5      addresses: [192.168.1.8/24] 	# 新加行,固定IP地址,/24表示子网掩码为:255.255.255.0
 6      dhcp4: no					  	# 修改dhcp4,关闭dhcp4
 7      nameservers:					# 新加行,设置DNS服务器
 8      	addresses: [192.168.1.2]	# 新加行,设置DNS服务器地址,一般为网关地址
 9      routes:					   	# 新加行,设置路由
10      - to: default         # 新加行
11        via: 192.168.1.2			# 新加行,设置网关地址
12  version: 2
13  renderer: NetworkManager			# 新加行(静态IP非必加行),默认值为networkd,cockpit要求为NetworkManager

c.应用设置

使用下面的命令应用设置

1sudo netplan apply

d.测试

1systemd-resolve --status
2ifconfig
3curl www.163.com

可以看到一切正常

2. CentOS

以笔者的CentOS 8为例

a.修改配置

修改/etc/sysconfig/network-scripts目录下的配置文件,笔者的为ifcfg-ens33(网卡设备名不一样则名字也不一样),原内容如下:

 1TYPE=Ethernet
 2PROXY_METHOD=none
 3BROWSER_ONLY=no
 4BOOTPROTO=dhcp
 5DEFROUTE=yes
 6IPV4_FAILURE_FATAL=no
 7IPV6INIT=yes
 8IPV6_AUTOCONF=yes
 9IPV6_DEFROUTE=yes
10IPV6_FAILURE_FATAL=no
11NAME=ens33
12UUID=de9eae99-0cca-4d5a-904c-db4904e7d420
13DEVICE=ens33
14ONBOOT=yes

假设将IP固定为192.168.1.10,修改为:

 1TYPE=Ethernet
 2PROXY_METHOD=none
 3BROWSER_ONLY=no
 4BOOTPROTO=static # 由dhcp修改为static
 5DEFROUTE=yes
 6IPV4_FAILURE_FATAL=no
 7IPV6INIT=yes
 8IPV6_AUTOCONF=yes
 9IPV6_DEFROUTE=yes
10IPV6_FAILURE_FATAL=no
11NAME=ens33
12UUID=de9eae99-0cca-4d5a-904c-db4904e7d420
13DEVICE=ens33
14ONBOOT=yes
15IPADDR=192.168.1.10 # 新加行,设置IP地址
16NETMASK=255.255.255.0 # 新加行,设置子网掩码,固定值
17GATEWAY=192.168.1.2 # 新加行,设置网关
18DNS1=192.168.1.2 # 新加行,设置DNS

b.应用设置

修改配置完成后,需要让配置生效:

1sudo nmcli c reload ens33
2sudo nmcli c up ens33

c.测试

1ifconfig
2curl www.163.com