我是在虚拟机中安装的CentOS7,采用的是桥接模式。起初CentOS内的地址是动态获取的,想把它固定下来。

按照网上查到的资料,通过修改/etc/sysconfig/network-scripts/下的配置文件,重启后网络服务,暂时能把IP地址修改了,但是配置中的DNS始终没有生效,这样就无法访问外部网络(实际上也不是不能访问,只是不能通过域名访问,比如你要ping一个外部公网上的ip地址是通的,但你要访问一个网址需要域名解析就不行了)

还有的问题是,这个虚拟机重启后,发现修改的配置文件中的设置还是没有生效,还是需要重启网络服务,折腾好久,一直不明白为什么。后来终于知道,是因为NetManager在捣鬼。

下面是转载的:https://Linux.cn/article-3977-1.html,有较大的参考价值,前面的第一种方法我试过了,对我的机器不管用,重启后依然设置无效。第二种方法是可以的。

如果你想要为CentOS 7中的某个网络接口设置静态IP地址,有几种不同的方法,这取决于你是否想要使用网络管理器。

网络管理器(Network Manager)是一个动态网络的控制器与配置系统,它用于当网络设备可用时保持设备和连接开启并激活。默认情况下,CentOS/RHEL 7安装有网络管理器,并处于启用状态。

使用下面的命令来验证网络管理器服务的状态:

  1. $ systemctl status NetworkManager.service

运行以下命令来检查受网络管理器管理的网络接口:

  1. $ nmcli dev status

如果某个接口的nmcli的输出结果是“已连接”(如本例中的enp0s3),这就是说该接口受网络管理器管理。你可以轻易地为某个特定接口禁用网络管理器,以便你可以自己为它配置一个静态IP地址。

下面将介绍在CentOS 7上为网络接口配置静态IP地址的两种方式,在例子中我们将对名为enp0s3的网络接口进行配置。

不使用网络管理配置静态IP地址

进入/etc/sysconfig/network-scripts目录,找到该接口的配置文件(ifcfg-enp0s3)。如果没有,请创建一个。

打开配置文件并编辑以下变量:

在上图中,“NM_CONTROLLED=no”表示该接口将通过该配置文件进行设置,而不是通过网络管理器进行管理。“ONBOOT=yes”告诉我们,系统将在启动时开启该接口。

保存修改并使用以下命令来重启网络服务:

  1. # systemctl restart network.service

现在验证接口是否配置正确:

  1. # ip add

使用网络管理器配置静态IP地址

如果你想要使用网络管理器来管理该接口,你可以使用nmtui(网络管理器文本用户界面),它提供了在终端环境中配置配置网络管理器的方式。

在使用nmtui之前,首先要在/etc/sysconfig/network-scripts/ifcfg-enp0s3中设置“NM_CONTROLLED=yes”。

现在,请按以下方式安装nmtui。

  1. # yum install NetworkManager-tui

然后继续去编辑enp0s3接口的网络管理器配置:

  1. # nmtui edit enp0s3

在下面的屏幕中,我们可以手动输入与/etc/sysconfig/network-scripts/ifcfg-enp0s3中所包含的内容相同的信息。

使用箭头键在屏幕中导航,按回车选择值列表中的内容(或填入想要的内容),最后点击屏幕底部右侧的确定按钮。

最后,重启网络服务。

  1. # systemctl restart network.service

好了,现在一切都搞定了。

另外,纯粹修改DNS的话,下面这个方发是永久生效的:

#显示当前网络连接
#nmcli connection show
NAME UUID                                 TYPE           DEVICE
eno1 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 802-3-ethernet eno1

#修改当前网络连接对应的DNS服务器,这里的网络连接可以用名称或者UUID来标识
#nmcli con mod eno1 ipv4.dns "114.114.114.114 8.8.8.8"

#将dns配置生效
#nmcli con up eno1

Leave a Reply

Your email address will not be published. Required fields are marked *