Centos
在 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.8xx
和12.34.567.8yy
是公網IP地址,12.34.567.8__
表示IP和網關的前8個字元是相同的。另請注意,
BOOTPROTO=static
並且NM_CONTROLLED=no
需要以nmcli
命令的任何結果結束。什麼具體的命令序列
nmcli
可以有效地替代上述 4 步流程?
嘗試以下操作::
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
這僅在您有單個連接時才有效。如果你的虛擬機有多個網路連接,那麼你需要在上面添加一些邏輯來確定使用哪一個。