CentOS 7 中用于静态 IP 网络的 nmcli 命令

CentOS 7 中用于静态 IP 网络的 nmcli 命令

nmcli在 CentOS 7 中可以使用哪些特定的命令序列来有效配置静态 IP 网络?

下面显示的四个步骤过程确实可以有效地配置静态 IP 网络。

但下面的过程依赖于配置文件,这可能不容易适合以后的自动化脚本方法。如果我们继续使用下面所示的配置文件方法,我会想象很多过于复杂的脚本。例如,该UUID行需要在脚本中进行特殊处理,只需复制配置文件并重新启动计算机即可。

相反,我想要一系列nmcli可以手动输入终端的特定命令,并且这也可以使以后更轻松地设计 bash 脚本。

这是当前有效的手动流程:

1.) 该设备eno1是在自动安装过程中创建的。

2.) 将具有给定网络掩码的 IP 地址分配给eno1

ip addr 12.34.567.8xx/29 dev eno1 

3.) 编辑配置文件:

$ vi /etc/sysconfig/network-scripts/ifcfg-eno1

        TYPE="Ethernet"
        BOOTPROTO="static"
        DEFROUTE="yes"
        IPV4_FAILURE_FATAL="no"
        IPV6INIT="yes"
        IPV6_AUTOCONF="yes"
        IPV6_DEFROUTE="yes"
        IPV6_FAILURE_FATAL="no"
        NAME="eno1"
        UUID="some-very-long-complex-string"
        DEVICE="eno1"
        ONBOOT="yes"
        DNS1=aa.aa.aa.aa
        DNS2=aa.aa.bb.bb
        IPADDR=12.34.567.8xx
        NETMASK=255.255.255.248
        PREFIX=29
        GATEWAY=12.34.567.8yy
        PEERDNS=yes
        PEERROUTES=yes
        IPV6_PEERDNS=yes
        IPV6_PEERROUTES=yes
        NM_CONTROLLED="no"

4.) 然后保存文件并重新启动计算机。

请注意,12.34.567.8xx12.34.567.8yy是公共 IP 地址,12.34.567.8__表示 IP 和网关的前 8 个字符相同。

另请注意,BOOTPROTO=static并且NM_CONTROLLED=no需要以命令的任何结果结束nmcli

哪些特定的命令序列nmcli可以有效替代上述 4 个步骤过程?

答案1

尝试以下操作::

nmcli con mod eno1 ipv4.addresses 12.345.67.8xx/29
nmcli con mod eno1 ipv4.gateway 12.34.567.8yy
nmcli con mod eno1 ipv4.dns "aa.aa.aa.aa bb.bb.bb.bb"
nmcli con mod eno1 ipv4.method manual
nmcli con mod eno1 connection.autoconnect yes

重新启动,它应该可以工作。

如果您不知道网络连接的名称,可以运行:

CON="$(nmcli -f NAME -m multiline show con | awk '{ print $2; }')"

在上面的命令中使用"$CON"而不是。eno1例如:

nmcli con mod "$CON" ipv4.addresses 12.345.67.8xx/29

这只适用于只有一个连接的情况。如果您的虚拟机有多个网络连接,那么您需要在上面添加一些逻辑来确定使用哪一个。

相关内容