關於Anolis8/Centos8系統重啟後ip地址不顯示的原因

来源:https://www.cnblogs.com/kirin365/archive/2023/11/20/17843049.html
-Advertisement-
Play Games

關於Anolis8/Centos8系統重啟後ip地址不顯示的原因 版權聲明:原創作品,謝絕轉載!否則將追究法律責任。 ————— 作者:kirin #、今天把之前在VMware安裝的Anolis8系統重啟了,啟動之後發現Xshell連接不上。在VMware上登錄後執行ip a命令發現ip地址不見了 ...


關於Anolis8/Centos8系統重啟後ip地址不顯示的原因

版權聲明:原創作品,謝絕轉載!否則將追究法律責任。 ————— 作者:kirin

#、今天把之前在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 connecteth0

#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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最近天氣降溫厲害,咱們用Python來分析一下空氣質量如何~ 話不多說,我們直接開始上手。 環境以及模塊 環境使用 Python 3.8 Pycharm nodejs 模塊使用 import requests import execjs import json requests和execjs 都是第 ...
  • Windows Management Instrumentation(WMI)是一種用於管理和監視`Windows`操作系統的框架。它為開發人員、系統管理員和自動化工具提供了一種標準的介面,通過這個介面,可以獲取有關電腦系統硬體、操作系統和應用程式的信息,以及對系統進行管理和控制的能力。WQL 的... ...
  • 在 Go 語言中,panic、recover 和 defer 是用於處理異常情況的關鍵字。它們通常一起使用來實現對程式錯誤的處理和恢復。 1. defer 語句 defer 用於在函數返回之前執行一段代碼。被 defer 修飾的語句或函數會在包含 defer 的函數執行完畢後執行。defer 常用於 ...
  • 建議看看電腦科學速成課,一門很全面的電腦原理入門課程,短短10分鐘可以把大學老師十幾節課講的東西講清楚!整個系列一共41個視頻,B站上有中文字幕版。 每個視頻都是一個特定的主題,例如軟體工程、人工智慧、操作系統等,主題之間都是緊密相連的,比國內很多大學電腦課程強太多! 這門課程通過生動形象的講 ...
  • ✨前言✨ 本片文章,主要在於C#連接MySQL資料庫,由於這之間無法建立直接聯繫,這時候就涉及到了第三方連接工具.NET,以此來建立C#與MySQL資料庫的連接 🍒歡迎點贊 👍 收藏 ⭐留言評論 📝私信必回喲😁 🍒博主將持續更新學習記錄收穫,友友們有任何問題可以在評論區留言 目錄🍊 一, ...
  • SciPy庫的optimize模塊主要用於執行各種優化任務。優化是尋找特定函數的最小值或最大值的過程,通常用於機器學習、數據分析、工程和其他領域。 scipy.optimize提供了多種優化演算法,包括梯度下降法、牛頓法、最小二乘法等,可以解決各種複雜的優化問題。該模塊還包含一些特定的函數,用於解決某 ...
  • .NET8發佈後,Blazor支持四種渲染方式 靜態渲染,這種頁面只可顯示,不提供交互,可用於網頁內容展示 使用Blazor Server托管的通過Server交互方式 使用WebAssembly托管的在瀏覽器端交互方式 使用Auto自動交互方式,最初使用 Blazor Server,併在隨後訪問時 ...
  • AOT介紹 .Net8的本地預編機器碼AOT,它幾乎進行了100%的自舉。微軟為了擺脫C++的鉗制,做了很多努力。也就是代碼幾乎是用C#重寫,包括了虛擬機,GC,記憶體模型等等。而需要C++做的,也就僅僅是引導程式,本篇通過代碼來看下這段至關重要的引導程式的運作模式。 支持功能 SqlSugar OR ...
一周排行
    -Advertisement-
    Play Games
  • 隨著Aspire發佈preview5的發佈,Microsoft.Extensions.ServiceDiscovery隨之更新, 服務註冊發現這個屬於老掉牙的話題解決什麼問題就不贅述了,這裡主要講講Microsoft.Extensions.ServiceDiscovery(preview5)以及如何 ...
  • 概述:通過使用`SemaphoreSlim`,可以簡單而有效地限制非同步HTTP請求的併發量,確保在任何給定時間內不超過20個網頁同時下載。`ParallelOptions`不適用於非同步操作,但可考慮使用`Parallel.ForEach`,儘管在非同步場景中謹慎使用。 對於併發非同步 I/O 操作的數量 ...
  • 1.Linux上安裝Docken 伺服器系統版本以及內核版本:cat /etc/redhat-release 查看伺服器內核版本:uname -r 安裝依賴包:yum install -y yum-utils device-mapper-persistent-data lvm2 設置阿裡雲鏡像源:y ...
  • 概述:WPF界面綁定和渲染大量數據可能導致性能問題。通過啟用UI虛擬化、非同步載入和數據分頁,可以有效提高界面響應性能。以下是簡單示例演示這些優化方法。 在WPF中,當你嘗試綁定和渲染大量的數據項時,性能問題可能出現。以下是一些可能導致性能慢的原因以及優化方法: UI 虛擬化: WPF提供了虛擬化技術 ...
  • 引言 上一章節介紹了 TDD 的三大法則,今天我們講一下在單元測試中模擬對象的使用。 Fake Fake - Fake 是一個通用術語,可用於描述 stub或 mock 對象。 它是 stub 還是 mock 取決於使用它的上下文。 也就是說,Fake 可以是 stub 或 mock Mock - ...
  • 為.net6在CentOS7上面做準備,先在vmware虛擬機安裝CentOS 7.9 新建CentOS764位的系統 因為CentOS8不更新了,所以安裝7;簡單就一筆帶過了 選擇下載好的操作系統的iso文件,下載地址https://mirrors.aliyun.com/centos/7.9.20 ...
  • 經過前面幾篇的學習,我們瞭解到指令的大概分類,如:參數載入指令,該載入指令以 Ld 開頭,將參數載入到棧中,以便於後續執行操作命令。參數存儲指令,其指令以 St 開頭,將棧中的數據,存儲到指定的變數中,以方便後續使用。創建實例指令,其指令以 New 開頭,用於在運行時動態生成並初始化對象。方法調用指... ...
  • LiteDB 是一個輕量級的嵌入式 NoSQL 資料庫,其設計理念與 MongoDB 類似,但它是完全使用 C# 開發的,因此與 C# 應用程式的集成非常順暢。與 SQLite 相比,LiteDB 提供了 NoSQL(即鍵值對)的數據存儲方式,並且是一個開源且免費的項目。它適用於桌面、移動以及 We ...
  • 1 開源解析和拆分文檔 第三方的工具去對文件解析拆分,去將我們的文件內容給提取出來,並將我們的文檔內容去拆分成一個小的chunk。常見的PDF word mark down, JSON、HTML。都可以有很好的一些模塊去把這些文件去進行一個東西去提取。 優勢 支持豐富的文檔類型 每種文檔多樣化選擇 ...
  • OOM是什麼?英文全稱為 OutOfMemoryError(記憶體溢出錯誤)。當程式發生OOM時,如何去定位導致異常的代碼還是挺麻煩的。 要檢查OOM發生的原因,首先需要瞭解各種OOM情況下會報的異常信息。這樣能縮小排查範圍,再結合異常堆棧、heapDump文件、JVM分析工具和業務代碼來判斷具體是哪 ...