關於Anolis8/Centos8系統重啟後ip地址丟失的原因 #、今天把之前在VMware安裝的Anolis8系統重啟了,啟動之後發現Xshell連接不上。在VMware上登錄後執行ip a命令發現ip地址不見了 #、我的網卡配置信息如下: [[email protected] ~]# cat /etc ...
關於Anolis8/Centos8系統重啟後ip地址丟失的原因
#、今天把之前在VMware安裝的Anolis8系統重啟了,啟動之後發現Xshell連接不上。在VMware上登錄後執行ip a命令發現ip地址不見了
#、我的網卡配置信息如下:
[[email protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.103
PREFIX=255.255.255.0
GATEWAY=10.0.0.2
DNS1=223.5.5.5
DNS1=223.6.6.6
#、然後在網上查了一圈,發現關於Anolis8系統網卡配置的文章少之又少,把搜索關鍵字`Anolis`換成`Centos`之後總算是找到了一些有用的文章。Anolis(龍蜥)系統其實就是復刻的Centos。
8系統與7不一樣,在Anolis8之後,不再使用`network.service `(只能手動去安裝),預設安裝的是`NetworkManager.service`
1、解決方法
#1、啟動NetworkManager.service服務
[[email protected] ~]# systemctl start NetworkManager
#2、重新載入網卡配置文件
[[email protected] ~]# nmcli c reload eth0
#3、激活網卡
[[email protected] ~]# nmcli d connect eth0
#4、再次執行ip a命令,發現ip地址已經出來了。但是這個地址是不對的。我配置的網卡地址是:10.0.0.103。
因為我實在是不熟悉使用`NetworkManager.service`服務的`nmcli`命令。只能繼續使用`network.service `了哈哈
#5、安裝`network.service `服務
[[email protected] ~]# yum install -y network-scripts.x86_64
#6、關閉`NetworkManager.service`
[[email protected] ~]# systemctl stop NetworkManager
[[email protected] ~]# systemctl disable NetworkManager
#7、啟動`network.service `服務,再次執行ip a命令查看網卡ip。發現已經可以了
[[email protected] ~]# systemctl start network.service
[[email protected] ~]# ip a
雖然服務起來了,ip也有了,但是我們發現。目前在eth0這塊網卡上有兩個ip,是因為`NetworkManager.service`服務雖然關閉了,但是網卡配置還在。此時我們在重啟一下`network.service `服務就可以了。Xshell連接也沒問題了。
[[email protected] ~]# systemctl restart network.service
[[email protected] ~]# ip a
#、系統重啟下,驗證`network.service `服務 可用性
重啟後重新連接。是沒問題的。執行`ip a`命令可以看到ip地址。問題得到解決!
2、Anolis8網路配置詳細介紹
2.1、NetworkManager介紹
2.1.1、Anolis8網路配置的區別
#、在 CentOS7上同時支持network.service和NetworkManager.service。預設情況下,這2個服務都有開啟。在Anolis8和CentOS8上,已廢棄network.service(只能手動去安裝),預設安裝的是NetworkManager.service,因此推薦通過NetworkManager.service進行網路配置,網卡配置包括設置動態和靜態IP。
2.1.2、NetworkManager作用
#、NetworkManager是2004年Red Hat啟動的項目,旨在能夠讓Linux用戶更輕鬆地處理現代網路需求,尤其是無線網路,能自動發現網卡並配置ip地址。類似在手機上同時開啟wifi和蜂窩網路,Anolis8網路自動探測可用網路並連接,無需手動切換Anolis8網卡。
2.1.3、NetworkManager支持的網路
#、NetworkManager支持的網路:
有線網卡、無線網卡
動態ip、靜態ip
乙太網、非乙太網
物理網卡、虛擬網卡
2.1.4、NetworkManager使用方式
#、NetworkManager使用方式
nmcli:命令行
nmtui:在shell終端開啟文本圖形界面
Freedesktop applet:如GNOME上自帶的網路管理工具
cockpit:redhat自帶的基於web圖形界面的"駕駛艙"工具,具有dashborad和基礎管理功能
#、使用 nmcli 時,NetworkManager 必須保持開啟。
#、NetworkManager 的相關命令:
查看運行狀態:systemctl status NetworkManager
啟動:systemctl start NetworkManager
重啟:systemctl restart NetworkManager
關閉:systemctl stop NetworkManager
查看是否開機啟動:systemctl is-enabled NetworkManager
開機啟動:systemctl enable NetworkManager
禁止開機啟動:systemctl disable NetworkManager
#、註意:NetworkManager 中開頭的 N 和中間的 M 必須大寫。
2.2、nmcli常用命令
2.2.1、nmcli介紹
在NetworkManager里,有2個維度:連接(connection)和設備(device),可以為一個設備配置多個連接,這裡特別需要指出的是,一個設備只能有一個活躍連接,每個連接可以理解為一個 ifcfg 配置文件。
2.2.2、顯示 NetworkManager 是否接管網路設置:
[[email protected] ~]# nmcli networking
enabled
#、networking 可以簡寫為 n、ne、net、netw…… 所以以上命令可以簡寫為:
nmcli n
2.2.3、查看網路連接狀態:
[[email protected] ~]# nmcli n connectivity
full
2.2.4、NetworkManager 接管網路設置:
#、設定 NetworkManager 接管網路設置
[[email protected] ~]# nmcli n on
#、取消 NetworkManager 接管網路設置:
[[email protected] ~]# nmcli n off
2.2.5、nmcli general
#、顯示系統網路狀態:
[[email protected] ~]# nmcli general status
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
已連接 完全 已啟用 已啟用 已啟用 已啟用
#、general 可以簡寫為 g、ge、gen、gene……
#、status 是 general 的預設項,可以省略不寫。所以,以上命令可簡寫為:
[[email protected] ~]# nmcli g
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
已連接 完全 已啟用 已啟用 已啟用 已啟用
connected full enabled enabled enabled enabled
#、其中:
STATE 顯示網路是否連接;
CONNECTIVITY 與前面介紹的 nmcli networking connectivity 相同;
WIFI-HW 表示 WIFI 硬體開關、WIFI 表示 WIFI 軟體開關;
WWAN-HW 表示 WWAN 硬體開關、WWAN 表示 WWAN 軟體開關。
HW 代表 HardWare,WWAN 代表 Wireless Wide Area Network。
2.2.6、顯示主機名:
[[email protected] ~]# nmcli g hostname
anolis8
[[email protected] ~]# nmcli g h
Anolis8.6
#、更改主機名:
nmcli g hostname newHostName
#或
nmcli g h newHostName
#、註意:
newHostName是你設置的新主機名。
主機名存放在 /etc/hostname 文件中。
修改主機名後,需要重啟 NetworkManager。
2.2.7、顯示所有網路連接的信息:
[[email protected] ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens192 c296eeaa-0c9a-4621-8b32-4903e26009f9 ethernet ens192
#、connection 可以簡寫為 c、co、con、conn……
#、show 是 connection 的預設項,可以省略不寫。所以,以上命令可簡寫為:
[[email protected] ~]# nmcli c
NAME UUID TYPE DEVICE
ens192 c296eeaa-0c9a-4621-8b32-4903e26009f9 ethernet ens192
#、nmcli connection show 有一個 -active 參數,可以只顯示當前啟動的連接:
nmcli c s --active
#或
nmcli c s -a # 因為 show 後面有參數項,所以此時的 show 不能省
[[email protected] ~]# nmcli c s -a
NAME UUID TYPE DEVICE
ens192 c296eeaa-0c9a-4621-8b32-4903e26009f9 ethernet ens192
#、顯示某一特定連接的詳細信息(以 ens192 為例):
[[email protected] ~]# nmcli c s ens192
connection.id: ens192
connection.uuid: c296eeaa-0c9a-4621-8b32-4903e26009f9
connection.stable-id: --
connection.type: 802-3-ethernet
connection.interface-name: ens192
connection.autoconnect: 是
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
connection.multi-connect: 0(default)
connection.auth-retries: -1
connection.timestamp: 1664789124
connection.read-only: 否
......
DHCP4.OPTION[25]: subnet_mask = 255.255.255.0
IP6.ADDRESS[1]: fe80::18b9:6600:f377:2d7b/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[2]: dst = ff00::/8, nh = ::, mt = 256, table=255
2.2.8、啟動指定連接:
[[email protected] ~]# nmcli c up ens192
連接已成功激活(D-Bus 活動路徑:/org/freedesktop/NetworkManager/ActiveConnection/2)
#、如果 ens192 本來就出於連接狀態,那此命令會重啟 ens192。
#、關閉指定連接:
nmcli c down ens192
關閉連接後,使用 nmcli c 命令, DEVICE 項將顯示為 – 。
2.2.9、修改連接:
nmcli c modify ens192 [ + | - ]選項 選項值 # 或
nmcli c m ens192 [ + | - ]選項 選項值
#、下麵給出常用修改示例:
nmcli c m ens192 ipv4.address 192.168.100.83/24 # 修改 IP 地址和子網掩碼
nmcli c m ens192 ipv4.method manual # 修改為靜態配置,預設是 auto
nmcli c m ens192 ipv4.gateway 192.168.100.1 # 修改預設網關
nmcli c m ens192 ipv4.dns 192.168.100.1 # 修改 DNS
nmcli c m ens192 +ipv4.dns 114.114.114.114 # 添加一個 DNS
nmcli c m ens192 ipv6.method disabled # 將 IPv6 禁用
nmcli c m ens192 connection.autoconnect yes # 開機啟動
#、註意,必須先修改 ipv4.address,然後才能修改 ipv4.method!
用空引號""代替選項的值,可將選項設回預設值(以 ipv4.method 為例):
nmcli c m ens192 ipv4.method ""
#、選項有很多,詳細信息可以通過以下命令查看:
man 5 nm-settings-nmcli
#、主要可以看裡面 connection setting 和 ipv4 setting 部分。
2.2.10、新增連接:
nmcli c add tyep 連接類型 選項 選項值
#或
nmcli c a tyep 連接類型 選項 選項值
#、type 為必選項,我們通常用到的是 802-3-ethernet(別名 ethernet)。
#、選項與前面介紹的“修改連接”中的選項一樣,其中重要的幾個選項:
connection.id(別名 con-name):連接名;
connection.interface-name(別名 ifname):設備名;
connection.autoconnect(別名 autoconnect):是否開機自啟,其值只能是 yes 或 no,預設 yes。
#、下麵給出一個示例:
nmcli c a type ethernet con-name ens36 ifname ens36
2.2.11、刪除指定連接:
nmcli c delete ens33
#或
nmcli c de ens33 # delete 不可簡寫為 d,否則與 down 衝突,但可以簡寫為 de
2.2.12、重載所有連接的配置文件:
nmcli c reload
#或
nmcli c r
#、重載某一指定連接的配置文件:
nmcli c load ifcfg-ens192
#或
nmcli c l ifcfg-ens192
#、網路配置文件預設保存在 /etc/sysconfig/network-scripts/ 路徑下,如果配置文件在其它位置,則需要填寫完整路徑。
網路配置文件的命名方式就是ifcfg-連接名,例如 ens33 的配置文件名為ifcfg-ens33。
#、網路配置文件說明:
TYPE="Ethernet" //乙太網,還有其他的如bond,bridge
PROXY_METHOD="none"//預設代理方式:關閉狀態
BROWSER_ONLY="no" //預設只是瀏覽器:否
BOOTPROTO="none" //dhcp 表示動態獲取IP地址, static 表示表態IP,none表示不指定,就是靜態
DEFROUTE="yes" //預設路由:是
IPV4_FAILURE_FATAL="no" //是否開啟IPV4致命錯誤檢測:否
IPV6INIT="yes" //預設IPV6是否自動初始化: 是
IPV6_AUTOCONF="yes" //預設IPV6是否自動配置:是
IPV6_DEFROUTE="yes" //預設IPV6是否預設路由:是
IPV6_FAILURE_FATAL="no" //如果IPv4或IPv6配置失敗,此介面將被禁用,否:如果配置失敗,此介面不會被禁用
IPV6_ADDR_GEN_MODE="stable-privacy" //IPV6地址生成模型
NAME="ens192" //名稱
UUID="51e111fd-ec09-44f5-8163-81d8f8ebc8f4" //唯一ID
DEVICE="ens192" //設備名稱
ONBOOT="yes" //開啟啟動
IPADDR="192.168.100.83" //IP
PREFIX="24" //子網掩碼長度
GATEWAY="192.168.100.1" //網關
DNS1="114.114.114.114" //DNS1
DNS2="8.8.8.8" //DNS1
IPV6_PRIVACY="no" //IPV6隱私
2.2.13、顯示所有網路介面設備的狀態:
nmcli device status
device 可以簡寫為 d、de、dev……
#、status 是 device 的預設項,可以省略不寫。所以,以上命令可簡寫為:
[[email protected] ~]# nmcli d
DEVICE TYPE STATE CONNECTION
ens192 ethernet 已連接 ens192
lo loopback 未托管 --
[[email protected] ~]# nmcli device
DEVICE TYPE STATE CONNECTION
ens192 ethernet 已連接 ens192
lo loopback 未托管 --
#、顯示所有設備的詳細信息:
nmcli d show
#或
nmcli d sh # show 不可簡寫為 s,否則與 status 衝突,但可以簡寫為 sh
[[email protected] ~]# nmcli d sh
GENERAL.DEVICE: ens192
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:5D:B2:19
GENERAL.MTU: 1500
GENERAL.STATE: 100(已連接)
GENERAL.CONNECTION: ens192
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
WIRED-PROPERTIES.CARRIER: 開
IP4.ADDRESS[1]: 192.168.100.83/24
IP4.GATEWAY: 192.168.100.1
IP4.ROUTE[1]: dst = 0.0.0.0/0, nh = 192.168.100.1, mt = 100
IP4.ROUTE[2]: dst = 192.168.100.0/24, nh = 0.0.0.0, mt = 100
IP4.DNS[1]: 192.168.100.1
IP4.DNS[2]: 4.2.2.2
IP6.ADDRESS[1]: fe80::18b9:6600:f377:2d7b/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[2]: dst = ff00::/8, nh = ::, mt = 256, table=255
GENERAL.DEVICE: lo
GENERAL.TYPE: loopback
GENERAL.HWADDR: 00:00:00:00:00:00
GENERAL.MTU: 65536
GENERAL.STATE: 10(未托管)
GENERAL.CONNECTION: --
GENERAL.CON-PATH: --
IP4.ADDRESS[1]: 127.0.0.1/8
IP4.GATEWAY: --
IP6.ADDRESS[1]: ::1/128
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = ::1/128, nh = ::, mt = 256
2.2.14、顯示某一特定設備的詳細信息:
[[email protected] ~]# nmcli d sh ens192
GENERAL.DEVICE: ens192
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:5D:B2:19
GENERAL.MTU: 1500
GENERAL.STATE: 100(已連接)
GENERAL.CONNECTION: ens192
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
WIRED-PROPERTIES.CARRIER: 開
IP4.ADDRESS[1]: 192.168.100.83/24
IP4.GATEWAY: 192.168.100.1
IP4.ROUTE[1]: dst = 0.0.0.0/0, nh = 192.168.100.1, mt = 100
IP4.ROUTE[2]: dst = 192.168.100.0/24, nh = 0.0.0.0, mt = 100
IP4.DNS[1]: 192.168.100.1
IP4.DNS[2]: 4.2.2.2
IP6.ADDRESS[1]: fe80::18b9:6600:f377:2d7b/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[2]: dst = ff00::/8, nh = ::, mt = 256, table=255
2.2.15、連接設備:
nmcli d connect ens192
#或
nmcli d c ens192
#、如果 ens192 本來就出於連接狀態,那此命令會重啟 ens192。
2.2.16、斷開設備:
#、斷開設備:
nmcli d disconnect ens33
#或
nmcli d d ens33
#、更新設備信息:
nmcli d reapply ens33
#或
nmcli d r ens33
只有在設備處於連接狀態,才可以更新設備。
更新設備相當於重啟連接。
2.2.17、Anolis8網路切換連接
[[email protected] ~]# nmcli c up ens192
連接已成功激活(D-Bus 活動路徑:/org/freedesktop/NetworkManager/ActiveConnection/3)
2.2.18、Anolis8網路查看IP
[[email protected] ~]# nmcli
ens192: 已連接 到 ens192
"VMware VMXNET3"
ethernet (vmxnet3), 00:0C:29:5D:B2:19, 硬體, mtu 1500
ip4 預設
inet4 192.168.100.83/24
route4 0.0.0.0/0
route4 192.168.100.0/24
inet6 fe80::18b9:6600:f377:2d7b/64
route6 fe80::/64
route6 ff00::/8
lo: 未托管
"lo"
loopback (unknown), 00:00:00:00:00:00, 軟體, mtu 65536
DNS configuration:
servers: 192.168.100.1 4.2.2.2
interface: ens192
使用 "nmcli device show" 獲取關於已知設備的完整信息,以及
"nmcli connection show" 獲取活動連接配置集的概述。
完整的用法細節,可參考 nmcli(1) 和 nmcli-examples(7) 手冊頁。
2.2.19、CentOS8網路啟用網卡ensX,例如ens160
nmcli c up ens160
2.2.20、Anolis8網路停止connection
nmcli c down
2.2.21、CentOS8網路刪除connection
nmcli c delete ens160
2.2.22、立即生效connection
nmcli c up ens160
nmcli d reapply ens160
nmcli d connect ens160
2.2.23、關閉網路
nmcli r all off
3、常見的AnolisOS 8網卡配置方式
通過NetworkManager進行AnolisOS 8網卡配置時候,會自動將connection同步到ifcfg配置文件中,這裡特別指出eth和ens的區別,ethX是真實物理網卡,ensX是虛擬網路會話。
手工配置ifcfg,通過NetworkManager來生效
通過NM自帶工具配ip,比如nmcli
手工配置ifcfg,通過傳統network.service來生效
3.1、通過手工配置AnolisOS 8網卡ifcfg的方式
#、這裡推薦使用上述第1種AnolisOS 8網卡配置方法,就是手工配置ifcfg,通過NetworkManager來生效,因為這樣既相容了傳統的ifcfg配置,又能熟悉nmcli。
#、打開配置文件,ifcfg-開頭的,根據實際名稱修改。例如我的機器是ifcfg-ens192
vi /etc/sysconfig/network-scripts/ifcfg-ens192
#、配置參數示例,大家可以根據實際接入的網路進行配置AnolisOS 8網卡,試試吧已經對此配置做了詳細備註。
TYPE="Ethernet" //乙太網,還有其他的如bond,bridge
PROXY_METHOD="none"//預設代理方式:關閉狀態
BROWSER_ONLY="no" //預設只是瀏覽器:否
BOOTPROTO="none" //dhcp 表示動態獲取IP地址, static 表示表態IP,none表示不指定,就是靜態
DEFROUTE="yes" //預設路由:是
IPV4_FAILURE_FATAL="no" //是否開啟IPV4致命錯誤檢測:否
IPV6INIT="yes" //預設IPV6是否自動初始化: 是
IPV6_AUTOCONF="yes" //預設IPV6是否自動配置:是
IPV6_DEFROUTE="yes" //預設IPV6是否預設路由:是
IPV6_FAILURE_FATAL="no" //如果IPv4或IPv6配置失敗,此介面將被禁用,否:如果配置失敗,此介面不會被禁用
IPV6_ADDR_GEN_MODE="stable-privacy" //IPV6地址生成模型
NAME="ens192" //名稱
UUID="51e111fd-ec09-44f5-8163-81d8f8ebc8f4" //唯一ID
DEVICE="ens192" //設備名稱
ONBOOT="yes" //開啟啟動
IPADDR="192.168.100.83" //IP
PREFIX="24" //子網掩碼長度
GATEWAY="192.168.100.1" //網關
DNS1="114.114.114.114" //DNS1
DNS2="8.8.8.8" //DNS1
IPV6_PRIVACY="no" //IPV6隱私
3.2、CentOS8網卡配置後重啟網路
systemctl restart NetworkManager
3.3、檢測網路狀態
ping www.baidu.com
curl www.baidu.com
4、網路重啟
#、CentOS 8 、Red Hat 8、Anolis 8 、fedora 33/34/35 、Alibaba Cloud Linux 3操作系統,請執行以下操作:
#4.1、執行以下命令,重新載入所有網卡配置。
nmcli c reload
#4.2、執行以下命令,激活網卡。
nmcli d connect eth0
參考文章鏈接:https://www.jianshu.com/p/ed411ebd9cc4
本文來自博客園,作者:kirin(麒麟),轉載請註明原文鏈接:https://www.cnblogs.com/kirin365/p/17843049.html