CentOS優化

来源:http://www.cnblogs.com/dazhidacheng/archive/2017/11/02/7771550.html
-Advertisement-
Play Games

CentOS系統的優化 優化之前,首先查看版本信息 # cat /etc/redhat-release CentOS release 6.7 (Final) # 系統版本信息 # uname –r 2.6.32-573.el6.x86_64 # 內核版本信息 # uname -m x86_64 #表 ...


 

CentOS系統的優化

   優化之前,首先查看版本信息

# cat /etc/redhat-release  
CentOS release 6.7 (Final)                    # 系統版本信息
# uname –r
2.6.32-573.el6.x86_64                           # 內核版本信息
# uname -m
x86_64                                                  #表示為64位系統
# uname –a                                          # 顯示全部信息
Linux hostname2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux                        
Linux基礎優化與安全重點小結
 1  不用root登錄管理系統,而以普通用戶登錄通過sudo授權管理
 2  更改預設的遠程連接SSH服務埠,禁止root用戶遠程連接,甚至要更改SSH服務只監聽內網IP
 3  定時自動更新伺服器時間,使其和互聯網同步
 4  配置yum更新源,從國內更新源下載安裝軟體包
 5  關閉SELinux及iptables
 6  定時自動清理郵件臨時目錄垃圾文件,防止磁碟inodes數被小文件占滿
 7  調整文件描述符的數量,進程及文件的打開都會消耗文件描述符的數量
 8 精簡並保留必要的開機啟動服務
 9 Linux內核參數優化/etc/sysctl.config,執行sysetl –p生效
10 更改系統字元集, 為“zh_CN.UTF-8”,使其支持中文,防止出現亂碼問題。
11 鎖定關鍵文件,如: passwd、/etc/shadow/、/etc/group/、/etc/gshadow、/etc/inittab,處理以上內容後把chattr、lsattr、改名為root,轉移走,這樣就安全多了。
12 清空/etc/issue /etcissue.net,去除系統及內核版本登錄前的屏幕顯示
13 清除多餘的系統虛擬用戶賬號
14 為grub引導菜單加密碼
15 禁止主機被ping
16 打補丁並升級有已知漏洞的軟體

 拓展

掌握Linux系統的7種運行級別

1 運行級別0:系統停機狀態,系統預設運行級別不能設為0,否則不能正常啟動
2 運行級別1:單用戶工作狀態,root許可權,用於系統維護,禁止遠程登陸
3 運行級別2:多用戶狀態(沒有NFS)
4 運行級別3:完全的多用戶狀態(有NFS),登陸後進入控制台命令行模式
5 運行級別4:系統未使用,保留
6 運行級別5:X11控制台,登陸後進入圖形GUI模式
7 運行級別6:系統正常關閉並重啟,預設運行級別不能設為6,否則不能正常啟動

 掌握Linux系統從開機到登錄之前的啟動流程。是由etc/inittab控制

1.    使用阿裡雲鏡像做樣本源

預設國外的yum源比較慢,所以換成國內的。

1 #  cd /etc/yum.repos.d/
2 #  ls
3 CentOS-Base.repo       CentOS-Media.repo
4 CentOS-Debuginfo.repo  CentOS-Vault.repo
5 CentOS-fasttrack.repo
6 # cp CentOS-Base.repo CentOS-Base.repo.ori                    更改配置文件之前進行備份
7 # wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo                         centos6系統
8 # echo "192.168.14.200 mirrors.aliyun.com" >>/etc/hosts    公網地址換成內網地址 
9 # yum -y install tree nmap sysstat lrzsz dos2unix telnet                                        安裝必要的軟體包(tree)

2.    關閉SELinux功能

1)  修改配置文件,使關閉SELinux永久生效:

l        第一種方法

1 # vim /etc/selinux/config
2 然後找到SELINUX=enforcing改成SELINUX=disabled
3 ESC:wq結束

l        第二種方法

1 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
2 sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config

2)  臨時關閉SELinux,可在命令行執行如下命令:

 1 [root@rootedu ~]# getenforce                  <--查看現在狀態
 2 
 3 Enforcing
 4 
 5 [root@rootedu ~]# setenforce 
 6 
 7 usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]
 8 
 9 [root@rootedu ~]# setenforce 0          <-- 臨時將selinux調成下麵的狀態
10 
11 [root@rootedu ~]# getenforce 
12 
13 Permissive

命令說明:setenforce:用於命令行管理SELinux的級別,

                  getenforce:查看SELinux當前級別

提示:修改配置SELinux後,要想其生效,必須要重啟系統。再生產場景中不能隨意重啟系統。  

3)    關閉iptables防火牆

l        臨時關閉,關機之後會重新啟動

1 /etc/init.d/iptables status                <-- 查看看是否開啟
2 /etc/init.d/iptables stop                   <-- 關閉防火牆

l        關閉開機自啟動的防火牆

第一種方法

1 [root@rootedu ~]# chkconfig --list|grep ipt        <-- 查看狀態
2 iptables        0:off   1:off   2:on    3:on    4:on    5:on     6:off
3 [root@rootedu ~]# chkconfig iptables off          <--下一次系統開啟不運行防火牆
4 [root@rootedu ~]# chkconfig --list|grep ipt
5 iptables        0:off   1:off   2:off   3:off   4:off   5:off    6:off

第二種方法  

1        /etc/init.d/iptables stop            <--當前關閉防火牆
2        chkconfig iptables off               <--關閉開機自啟動命令 

 

4)    設置運行級別為3(文本模式)

1 設定運行級別(runlevel)為3(一般安裝系統後預設為3)即表示使用文本命令模式管理linux
2 
3 grep 3:initdefault /etc/inittab      <-- 檢查命令
4 runlevel                                      <--另一種簡單方法
5 init 3                                           <--切換運行級別

 

5)    精簡開機系統啟動

1)系統開機必須要開啟的服務

l        sshd

遠程連接linux伺服器時需要用到這個服務程式,所以必須開啟

l        rsyslog

日誌相關軟體,

l        network

網路服務

l        crond

會周期的執行系統和用戶配置的任務計劃。

l        sysstat

sysstat是一個軟體包,包含檢測系統性能及效率的一組工具.\

 

2)設置開啟自啟動服務的方法

手動關閉用setup

chkconfig --list|grep 3:on   <--查看開機自啟動的項目
第一種快速處理方法:先全關閉,再開啟需要保留的。
操作思路:先將3級別文本模式下預設開啟的服務都關閉,然後開啟需要開啟的服務。
操作命令如下:
1 LANG=en
2 for root in `chkconfig --list|grep 3:on|awk '{print $1}'`;do chkconfig --level 3 $root off;done 
3 for root in crond network rsyslog sshd sysstat ;do chkconfig --level 3 $root on;done
4 chkconfig --list|grep 3:on
第二種快速處理方法
1 for root in `chkconfig --list|grep "3:on"|awk '{print $1}'|grep -vE "crond|network|sshd|rsyslog|sysstat"`;do chkconfig $root off;done
第三種快速處理方法(逼格最高)
chkconfig --list|grep 3:on|grep -vE "crond|sshd|network|rsyslog|sysstat " |awk '{print "chkconfig " $1 " off"}'|bash

6)    添加普通用戶賬號

linux/unix是一個多用戶,多任務的操作系統

超級管理員(root):擁有最高許可權

普通用戶

l     一條命令設置密碼

echo '123456'|passwd --stdin root       <--root用戶名,密碼為123456

|    使用命令添加一個普通用戶,命令如下: 

1 useradd  root                           <--添加用戶
2 passwd  root                            <--設置用戶密碼

l    嘗試切換用戶角色,命令如下:

1 [root@hostname ~]# su – root                  <--由root管理員,切換到普通用戶root
2 [root@hostname ~]$ whoami            <--查看當前用戶
3 root                                 
4 [root@hostname ~]$ su -                   <--切到root用戶
5 Password:

l        linux命令提示符由PS1環境變數

查看環境變數:    echo $PS1  

7)    利用sudo控制用戶的使用許可權

為了方便管理,可以給用戶授權,過程:輸入vi sudoers找到98行,在下麵放入如下內容:

oldboy   ALL=(ALL)   NOPASSWD: ALL      <--all表示完全的系統許可權,NOPASSWD表示提示許可權命令時不需要密碼

配置完成後要進行檢查,命令如下:

[oldboy@hostname ~]# grep root /etc/sudoers
oldboy    ALL=(ALL)   NOPASSWD: ALL

此時再以oldboy用戶登錄系統時,就可以通過執行sudo ls –l  /root (sudo後面跟正常命令)的命令以root用戶的許可權管理系統了,如下:

[oldboy@hostname ~]$ ls /root/
ls: cannot open directory /root/: Permission denied
[oldboy@hostname ~]$ sudo ls /root/
HostKeyDB.txt       test.txt      12345                         install.log         woaini

8)    Linux系統安全最小化原則說明

a)         安裝Linux系統最小化,即選包最小化。

b)        開機自啟動服務最小化,即不用的服務不開啟。

c)         操作命令最小化。

d)        登錄Linux用戶最小化。平時沒有特殊需要就用普通用戶登錄即可。

e)         普通用戶授權許可權最小化。只給用戶必要的管理系統的命令。

f)         Linux系統文件及目錄的許可權設置最小化。禁止隨意創建,更改,刪除文件。

g)        程式服務運行最小化,即程式服務運行儘量不用root身份進行。

9)    更改SSH服務端遠程登錄的配置

windows伺服器的預設遠程管理埠是3389,管理員用戶是administrator,普通用戶guest。Linux管理用戶是root,遠程連接預設埠port22。

1 [root@hostname ~]#cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ori <--備份配置文件,簡單寫法cp /etc/ssh/sshd_config{,.ori}
2 [root@hostname ~]# vim /etc/ssh/sshd_config
3
進入17行加入:
4
####by root#2011-11-24##
5
rt 52113
6
PermitRootLogin no
7
PermitEmptyPasswords no
8
UseDNS no
9
GSSAPIAuthentication no
10 ####by root#2011-11-24##
11 /etc/init.d/sshd reload     <--reload為平滑重啟,不會影響正在SSH連接的其他用戶,restart直接斷開生效

然後就連不上了,因為埠改了。

然後更改會話選項里的SSH2里的埠還有用戶名。就OK了

10)         Linux中文顯示設置

此選項為優化可選項,即調整Linux系統的字元集設置。

簡單的說,字元集就是一套文字元號及其編碼。目前linux下常用的字元集有:

  GBK:定長雙位元組

  UTF-8:非定常,1~4位元組,廣泛支持

臨時生效,命令:LANG=”zh_CN.UTF-8’

永久生效,可以通過快捷的命令方式在/etc/sysconfig/i18n中添加如下內容,使其支持中文顯示:

 1 [root@hostname ~]# echo $LANG
 2 en_US.UTF-8
 3 [root@hostname ~]# cat /etc/sysconfig/i18n
 4 LANG="en_US.UTF-8"
 5 SYSFONT="latarcyrheb-sun16"
 6 [root@hostname ~]# cp /etc/sysconfig/i18n  /etc/sysconfig/i18n.ori
 7 [root@hostname ~]#echo ‘LANG=”zh_CN.UTF-8”’>/etc/sysconfig/i18n
 8 [root@hostname ~]#source /etc/sysconfig/i18n  <--使其生效
 9 [root@hostname ~]#echo $LANG
10 zh_CN.UTF-8

11)         設置linux伺服器時間同步

 1 ntpdate time.nist.gov<--時間同步
 2 ntpdate ntp1.aliyun.com<--國內阿裡雲時間同步伺服器
 3 利用定時任務crond把上述命令每5分鐘自動執行一次,命令如下:
 4 
 5 echo '#time sync by root at 2010-2-1' >>/var/spool/cron/root
 6 echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1' >>/var/spool/cron/root
 7 crontab –l
 8 [root@rootedu ~]# crontab -l
 9 #time sync by root at 2010-2-1
10 */5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1

12)  歷史記錄數及登錄超時環境

1.設置閑置賬號超時時間,命令如下,此處為臨時生效

export TMOUT=10  <--設置連接會話的超時時間

2.設置Linux的命令行歷史記錄數, 命令如下,此處為臨時生效

1    export HISTSIZE=5
2    export TMOUT=10               連接的超時時間控制變數。
3 
4    export HISTSIZE=5              命令行的歷史記錄數量變數。
5    export  HISTFILESIZE=10   歷史記錄文件的命令數量變數(~/.bash_history)。

13)  調整Linux系統描述符數量和最大進程數

系統描述符

先用ulimit –n查看有幾個描述符,規則是“軟(soft)”或“硬(hard)”

對於高併發的業務Linux伺服器來說,預設的設置值是不夠的,需要調整

調整方法:

執行vim /etc/security/limits.conf再文件結尾加上如下一行(全局)
*               -       nofile          65535

或者直接執行下麵的命令

1 echo '*               -       nofile          65535 ' >>/etc/security/limits.conf
2 tail -4 /etc/security/limits.conf              <--查看文件最後4行
3 [root@rootedu tmp]# ulimit –n            <--查看是否生效
4 65535

總結:

1 臨時生效  ulimit -SHn 65535
2 永久生效 echo '*               -       nofile          65535 ' >>/etc/security/limits.conf
3  或者:
4 cat /etc/security/limits.conf
5        *                               soft    nofile  65536
6        *                               hard    nofile  65536

最大線程數

ulimit -a

max user processes              (-u) #系統限制某用戶下最多可以運行多少進程或線程

root 賬號下 ulimit -u 出現的max user processes 的值預設是 # cat /proc/sys/kernel/threads-max的值/2,即系統線程數的一半

普通賬號下 ulimit -u  出現的max user processes的值 預設是 /etc/security/limits.d/20-nproc.conf(centos6 是90-nproc.conf)   文件中的

1.在/etc/security/limits.conf文件里添加如下內容:

* soft nproc 65535   # 打開進程數   * hard nproc 65535   # 打開進程數 操作方法:
1 echo "* soft nproc 65535"  >> /etc/security/limits.conf
2 echo "* hard nproc 65535"  >> /etc/security/limits.conf

註意:修改這裡,普通用戶 max  user process值是不生效的,需要修改/etc/security/limits.d/20-nproc.conf文件中的值。或者90-nproc.conf

如果使用*號讓全局用戶生效是受文件/etc/security/limits.d/20-nproc.conf中nproc值大小制約的,而如果僅僅是針對某個用戶,那麼就不受該文件nproc值大小的影響。

2.修改 /etc/security/limits.d/20-nproc.conf

因為普通用戶受這個文件里的值影響

修改為:

*          soft    nproc     65535

3.系統總限制

其實上面的 max user processes  65535 的值也只是表象,普通用戶最大進程數無法達到65535 ,因為用戶的max  user processes的值,最後是受全局的kernel.pid_max的值限制。也就是說kernel.pid_max=1024  ,那麼你用戶的max user processes的值是127426 ,用戶能打開的最大進程數還是1024。

查看全局的pid_max方法: 方法一:
cat /proc/sys/kernel/pid_max
方法二:
# sysctl kernel.pid_max
kernel.pid_max = 32768

修改這個值方法:

echo 65535 > /proc/sys/kernel/pid_max 所以以上都操作完成後,才算是正確修改了max user processes 的值 上面只是臨時生效,重啟機器後會失效 永久生效方法: 在/etc/sysctl.conf中添加kernel.pid_max = 65535
1 # vim /etc/sysctl.conf
2 kernel.pid_max = 65535
3 或者:
4 echo "kernel.pid_max = 65535" >> /etc/sysctl.conf
然後重啟機器。

 

14)linux伺服器內核參數優化

優化的方法

 1 cat>>/etc/sysctl.conf<<EOF
 2 net.ipv4.tcp_fin_timeout = 2
 3 net.ipv4.tcp_tw_reuse = 1
 4 net.ipv4.tcp_tw_recycle = 1
 5 net.ipv4.tcp_syncookies = 1
 6 net.ipv4.tcp_keepalive_time = 600
 7 net.ipv4.ip_local_port_range = 4000    65000
 8 net.ipv4.tcp_max_syn_backlog = 16384
 9 net.ipv4.tcp_max_tw_buckets = 36000
10 net.ipv4.route.gc_timeout = 100
11 net.ipv4.tcp_syn_retries = 1
12 net.ipv4.tcp_synack_retries = 1
13 net.core.somaxconn = 16384
14 net.core.netdev_max_backlog = 16384
15 net.ipv4.tcp_max_orphans = 16384
16 net.nf_conntrack_max = 25000000
17 net.netfilter.nf_conntrack_max = 25000000
18 net.netfilter.nf_conntrack_tcp_timeout_established = 180
19 net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
20 net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
21 net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
22 EOF

然後用sysctl –p使其生效

然後vimdiff /etc/sysctl.conf /etc/sysctl.conf.ori      更改的文件與拷貝的文件對比

15)  隱藏Linux版本信息顯示

登錄後執行如下命令,顯示其實際存放內容

1 [root@rootedu ~]# cat /etc/issue            <--查看當前主機信息
2 CentOS release 6.7 (Final)
3 Kernel \r on an \m
4 [root@rootedu ~]# uname  -r
5 2.6.32-573.el6.x86_64
6 [root@rootedu ~]# uname  -m
7 x86_64

執行以下命令清除系統版本及內核信息(清空就好,不用刪除)

 >/etc/issue              <--清空
 >/etc/issue.net        <--清空
cat /etc/redhat-release(需要的情況,能過內部其它文件還是可以查到)

16)  鎖定關鍵系統文件,防止提權被篡改(可選)

 要鎖定關鍵系統文件,必須對賬號密碼及啟動文件加鎖,防止被篡改。上鎖命令如下

chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

提示:上鎖後,所有用戶都不能對文件進行修改

解鎖:chattr -i

17)  清除多餘的系統虛擬賬號(可選)

操作前要先根據公司系統提供的服務確定那些賬號不需要使用,如果不確定就不要操作了,一般情況下,一個規範的系統提供的服務都比較少,因此,系統中預設的絕大多數虛擬用戶都是可以刪除掉的(不直接刪除,註釋即可)。

18)  為grub菜單加密碼(可選)

為grup菜單加密碼的目的是防止他人修改grup做內核等啟動設置,以及用單用戶模式啟動破解root密碼等做操作。也可以在安裝系統過程中設定。 
流程: 
1)先用/sbin/grup-crypt產生一個MD5密碼串 
2)修改grup.conf文件 
3)重啟生效

可以在安裝過程中設定.

 

19)  禁止Linux系統被ping(可選)

此優化項從安全形度,禁止ping會增加系統安全,但是我們自己也會通過ping來檢查伺服器是否異常,所以這不是一個好方法,不建議使用。 
比較好一點的是通過iptabies設置讓特定的IP可以ping.

禁止ping的命令如下:

1 echo “net.ipv4.icmp_echo_ignore_all=1” >> /etc/sysctl.conf    <--禁止ping
2 tail -1 / etc/sysctl.conf                                                                <--查看
3 sysctl -p                                                                                     <--生效
4 echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all                   <--臨時ping不通
5 echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all                   <--臨時還原的方法

20)  升級具有典型漏洞的軟體版本

步驟 
1)查看相關軟體的版本號

[root@rootedy ~]# rpm -qa openssl
openssl-1.0.1e-42.el6_7.4.x86_64

2)執行升級已知漏洞的軟體版本到最新

 [root@rootedy ~]# yum install openssl -y 
Loaded plugins: fastestmirror, security
Setting up Install Process
Determining fastest mirrors
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                      | 3.7 kB     00:00     
extras                                                    | 3.4 kB     00:00     
updates                                                 | 3.4 kB     00:00     
updates/primary_db                              | 5.2 MB     00:22     
Package openssl-1.0.1e-42.el6_7.4.x86_64 already installed and latest version
Nothing to do

 

 

 


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

-Advertisement-
Play Games
更多相關文章
  • 參考文檔: 本文簡單介紹smokeping的安裝配置操作。 一.環境 1. OS Server:10.11.4.250/CentOS-7-x86_64-1511 2. Smokeping版本 smokeping-2.6.11:http://oss.oetiker.ch/smokeping/pub/s ...
  • 同步首發:http://www.yuanrengu.com/index.php/20171112.html 一.GitLab簡介 GitLab是利用Ruby On Rails開發的一個開源版本管理系統,實現了一個自托管的Git項目倉庫,是集代碼托管,測試,部署於一體的開源git倉庫管理軟體,可通過w ...
  • IP地址分類: IP地址根據首首位元組開始位可以分為5大類: 分類 首位元組開始位 首位元組數字範圍 網路地址格式 最大網路個數 每個網路最多主機個數 A 0 0~127 網路 主機 主機 主機 127 16777214 B 10 128~191 網路 網路 主機 主機 16384 65534 C 110 ...
  • 近期使用ASP.NET Core2.0對博客進行了重寫,在部署到伺服器時遇到了一些問題,來記錄一下留用。 配置環境 安裝 .Net Framework3.5 在IIS管理器上直接開啟,這裡總是失敗,上網上找了找,發現了可以使用命令行安裝,打開PowerShell,依次執行: ​ ​ ​ 執行完就安裝 ...
  • 先停止docker服務 設置阿裡加速器 看到“Daemon has completed initialization”執行結果就表示配置完成。 重啟docker服務 然後再去打鏡像,速度無比快。。。 End ...
  • 一、準備 環境:centos6.8 nginx:1.13.6 二、開始 首先安裝依賴包: yum install -y gcc gcc-c++ autoconf automake make zlib zlib-devel openssl openssl-devel pcre pcre-devel 開 ...
  • 為何創建此腳本是因為方便項目的佈署,不需要手動地去同步不同的項目,而只需要簡單的執行shell腳本,輸入項目名就能發佈到服器上。 1、shell文件代碼 2、關鍵字解釋: name表示要同步的文件名 --exculde="node_modules"表示過濾的文件夾 --progress 顯示文件同 ...
  • 1. cyclictest 簡介以及安裝 1.1 cyclictest 簡介 cyclictest 是什麼? 看名字應該就能大致猜出來它是一種 test 程式,Cyclictest的維基主頁這麼介紹它“Cyclictest is a high resolution test program, wri ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...