(重磅發佈,一文學會烏班圖ssh升級)Ubuntu-openssl和openssh升級

来源:https://www.cnblogs.com/subsea/archive/2023/09/07/17682962.html
-Advertisement-
Play Games

博主之前發佈了紅帽體系的Centos7關於openssl和openssh的升級操作;本文就Ubuntu系統再次分享和交流ssh的升級。如有不正確,歡迎在評論區指出。 之前博主的相關文章: openssh-淺談openssl和openssh的升級 - 李宗盛 - 博客園 (cnblogs.com) o ...


 博主之前發佈了紅帽體系的Centos7關於openssl和openssh的升級操作;本文就Ubuntu系統再次分享和交流ssh的升級。如有不正確,歡迎在評論區指出。

 

之前博主的相關文章:

openssh-淺談openssl和openssh的升級 - 李宗盛 - 博客園 (cnblogs.com)

openssh-淺談openssl和openssh的升級_升級openssl需要升級openssh嗎_明風個人技術博客的博客-CSDN博客

linux科普:如何標準的安裝和升級軟體 - 李宗盛 - 博客園 (cnblogs.com)

linux科普:如何標準的安裝和升級軟體_linux升級軟體_明風個人技術博客的博客-CSDN博客

Ubuntu22-安裝telnet遠程 - 李宗盛 - 博客園 (cnblogs.com)

Ubuntu22-安裝telnet遠程_ubuntu安裝telnet_明風個人技術博客的博客-CSDN博客

 

 

一、  前言和環境準備

Ubutu系統是目前主流Linux系統之一,命令跟Debian類似一套體系,版本分為伺服器版和桌面版。目前各公司在生產環境多使用伺服器版,版本號多使用18\20\22等server版本。本文將會安裝3個版本進行實操分享,均升級至ssh新版。

 

系統

版本

網路

備註

Ubuntu-18.04.6-LTS

server

有互聯網

虛擬機

Ubuntu-20.04.6-LTS

server

有互聯網

虛擬機

Ubuntu-22.04.1-LTS

server

有互聯網

虛擬機

 

 

二、  標準升級方法

標準升級就是使用系統源自動更新最新版本,首先測試直接使用線上源進行升級

測試時間2023-9

 

系統

升級方法

升級前版本

升級後版本

Ubuntu-18.04.6-LTS

apt線上源更新

OpenSSL 1.1.1

OpenSSH_7.6p1

OpenSSL 1.1.1

OpenSSH_7.6p1

Ubuntu-20.04.6-LTS

apt線上源更新

OpenSSL 1.1.1f

OpenSSH_8.2p1

OpenSSL 1.1.1f

OpenSSH_8.2p1

Ubuntu-22.04.1-LTS

apt線上源更新

OpenSSL 3.0.2

OpenSSH_8.9p1

OpenSSL 3.0.2

OpenSSH_8.9p1

 

(三套系統操作命令均一致,升級前後無變化可能是因為更新源的時候自動更新了軟體)

#三套系統操作命令均一致
#查看當前版本
hostnamectl 
openssl version
ssh -V
dpkg -l | grep openssl
dpkg -l | grep openssh

#線上升級
apt-get install openssl
apt-get install openssh-server openssh-client openssh-sftp-server

#離線升級、去網站下載包升級
https://packages.ubuntu.com/

 

 

三、  手動下載編譯包進行升級

壓縮包編譯安裝是linux系統下軟體更新的第二種常用方式,軟體廠家只需要提供壓縮包的源碼或者編譯程式,適配各系統由用戶自行編譯,適合於各類系統安裝升級

(測試時間2023-9)

 

1、  ssl版本選擇

ssl版本選取兩個版本,兩個均選擇LTS長期穩定版

openssl-1.1.1v.tar.gz:2023-8 發佈  用於ubuntu18/20測試

openssl-3.0.10.tar.gz:2023-8 發佈  用於ubuntu22測試

https://www.openssl.org/source/

 

2、  ssh版本選擇

ssh版本選擇最新版9.4p1

openssl-1.1.1v.tar.gz:2023-8 發佈 三套系統均升級ssh最新版

https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/

 

 

四、  安裝telnet,防止ssh升級錯誤無法連接遠程

telnet安裝參考博主之前的文章:

Ubuntu22-安裝telnet遠程 - 李宗盛 - 博客園 (cnblogs.com)

Ubuntu22-安裝telnet遠程_ubuntu安裝telnet_明風個人技術博客的博客-CSDN博客

 

五、  先編譯更新openssl

openssl和openssh相互依賴,更新ssh需要先更新opnenssl

 

系統

升級方法

升級前版本

升級後版本

Ubuntu-18.04.6-LTS

編譯更新

OpenSSL 1.1.1

OpenSSL 1.1.1v

Ubuntu-20.04.6-LTS

編譯更新

OpenSSL 1.1.1f

OpenSSL 1.1.1v

Ubuntu-22.04.1-LTS

編譯更新

OpenSSL 3.0.2

OpenSSL 3.0.10

 

 

1、  Ubuntu18/20更新openssl

Ubuntu18/20系統均是升級opnessl1.1.1的最新版,在操作命令上基本一致

下麵以Ubuntu18為演示

a)  檢查當前版本和路徑

openssl version
which openssl

b)安裝依賴  

#配置源
cd /etc/apt/ && cp -a sources.list sources.list.bakk
sed -i 's/http:\/\/.*.ubuntu.com/https:\/\/mirrors.aliyun.com/g' /etc/apt/sources.list
apt-get update 

#線上安裝依賴
apt-get install -y gcc build-essential manpages-dev make perl 
apt-get install -y zlib1g zlib1g-dev 
apt-get install -y libssl-dev 
apt-get install -y linux-libc-dev

c)  備份之前的ssl文件

註意:不同版本可能ssl路徑不一樣,不用在意,主要備份/usr/bin/openssl下即可

#備份以前的文件
#在/home下創建opensslbak作為備份文件夾
mkdir -p /home/opensslbak
cd /home/opensslbak

ll /usr/bin/openssl
ll /usr/lib/ssl
ll /etc/ssl

mv /usr/bin/openssl /home/opensslbak/
cp -arp /usr/lib/ssl  /home/opensslbak/libssl
cp -arp /etc/ssl /home/opensslbak/etcssl

d)  下載openssl升級包和編譯

#下載官網安裝包-2023-9
https://www.openssl.org/source/openssl-1.1.1v.tar.gz
wget https://www.openssl.org/source/openssl-1.1.1v.tar.gz --no-check-certificate

#解壓並編譯安裝
tar -xzvf openssl-1.1.1v.tar.gz
cd openssl-1.1.1v/ 
./config  --shared zlib
make && make install

e)  編譯如果報錯

#如果遇到報錯缺少xxx.h,請重新安裝依賴
#crypto/comp/c_zlib.c:35:11: fatal error: zlib.h: No such file or directory
apt install --reinstall 軟體包名
apt-get install --reinstall  linux-libc-dev

f)  編譯後查看新生成文件夾和測試命令

openssl編譯安裝後,會需要用到兩個文件夾,做程式依賴

● 一個是有很多xxx.h的文件夾,一般升級後預設在【/usr/local/include/openssl】,它對應系統以前的【/usr/include/openssl】

● 另一個是有libssl.so的文件夾,一般升級後預設在【/usr/local/lib】或者【/usr/local/lib64】;它對應系統以前的【/urs/lib】或者【/usr/lib64】

#查看以前系統的ssl依賴文件夾
ls /usr/include/openssl
ls /usr/lib

#查看ssl新生成依賴文件夾
ls /usr/local/bin/openssl
ls /usr/local/include/openssl
ls /usr/local/ssl
ls /usr/local/lib/


find / -name 'libssl.so'
find / -name 'libcrypto.so'
find / -name 'libssl.so.1.1'
find / -name 'libcrypto.so.1.1'
ll /usr/local/lib/libssl.so
ll /usr/local/lib/libcrypto.so
ll /usr/local/lib/libssl.so.1.1
ll /usr/local/lib/libcrypto.so.1.1

#測試新命令可能會報錯,稍後更新下庫依賴路徑ldconfig後就正常了
/usr/local/bin/openssl version
#root@ubuntu18:/# /usr/local/bin/openssl version
#/usr/local/bin/openssl: relocation error: /usr/local/bin/openssl: symbol EVP_mdc2 version OPENSSL_1_1_0 not defined in file libcrypto.so.1.1 with link time reference

g)  重新掛載依賴庫和命令文件

#掛載新的文件
ln -s /usr/local/bin/openssl /usr/bin/openssl

mv /usr/include/openssl /usr/include/opensslold
ln -s /usr/local/include/openssl /usr/include/openssl
ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so
ln -s /usr/local/lib/libssl.so.1.1  /usr/lib/libssl.so.1.1
ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so
ln -s /usr/local/lib/libcrypto.so.1.1  /usr/lib/libcrypto.so.1.1


#寫入新的依賴庫路徑
echo "/usr/local/lib" >> /etc/ld.so.conf
echo "/usr/lib" >> /etc/ld.so.conf
ldconfig
ldconfig -v
#手動調整成新生成的依賴庫路徑
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib" >> ~/.bashrc
echo $LD_LIBRARY_PATH

#測試是否正常更新
bash
openssl version
OpenSSL 1.1.1v  1 Aug 2023

2、  Ubuntu22更新openssl

Ubuntu22系統預設ssl版本為3.0版本,因此更新到最新版本3.0.10版,不更新1.1.1版本

下麵以Ubuntu22為演示

a)  檢查當前版本和路徑

openssl version
which openssl

b) 安裝依賴  

#配置源
cd /etc/apt/ && cp -a sources.list sources.list.bakk
sed -i 's/http:\/\/.*.ubuntu.com/https:\/\/mirrors.aliyun.com/g' /etc/apt/sources.list
apt-get update 

#線上安裝依賴
apt-get install -y gcc build-essential manpages-dev make perl 
apt-get install -y zlib1g zlib1g-dev 
apt-get install -y libssl-dev 
apt-get install -y linux-libc-dev
#libidn11-dev libidn11
#libcrypt-dev libcrypt1 

c)  備份之前的ssl文件

註意:不同版本可能ssl路徑不一樣,不用在意,主要備份/usr/bin/openssl下即可

#備份以前的文件
#在/home下創建opensslbak作為備份文件夾
mkdir -p /home/opensslbak
cd /home/opensslbak

ll /usr/bin/openssl
ll /usr/lib/ssl
ll /etc/ssl

mv /usr/bin/openssl /home/opensslbak/
cp -arp /usr/lib/ssl  /home/opensslbak/libssl
cp -arp /etc/ssl /home/opensslbak/etcssl

d)  下載openssl升級包和編譯

#下載官網安裝包-2023-9
https://www.openssl.org/source/openssl-3.0.10.tar.gz
wget https://www.openssl.org/source/openssl-3.0.10.tar.gz --no-check-certificate

#解壓並編譯安裝
tar -xzvf openssl-3.0.10.tar.gz
cd openssl-3.0.10/ 
./config  --shared zlib
make && make install

e)  編譯如果報錯

#如果遇到報錯缺少xxx.h,請重新安裝依賴
#crypto/comp/c_zlib.c:35:11: fatal error: zlib.h: No such file or directory
apt install --reinstall 軟體包名
apt-get install --reinstall  linux-libc-dev

f)  編譯後查看新生成文件夾和測試命令

openssl編譯安裝後,會需要用到兩個文件夾,做程式依賴

● 一個是有很多xxx.h的文件夾,一般升級後預設在【/usr/local/include/openssl】,它對應系統以前的【/usr/include/openssl】

● 另一個是有libssl.so的文件夾,一般升級後預設在【/usr/local/lib】或者【/usr/local/lib64】;它對應系統以前的【/urs/lib】或者【/usr/lib64】

#查看以前系統的ssl依賴文件夾
ls /usr/include/openssl
ls /usr/lib
ls /usr/lib64

#查看ssl新生成依賴文件夾
find / -name 'libssl.so'
find / -name 'libcrypto.so'
find / -name 'libssl.so.1.1'
find / -name 'libcrypto.so.1.1'

ls /usr/local/bin/openssl
ls /usr/local/include/openssl
ls /usr/local/ssl
ls /usr/local/lib64

ll /usr/local/lib64/libssl.so
ll /usr/local/lib64/libcrypto.so
ll /usr/local/lib64/libssl.so.3
ll /usr/local/lib64/libcrypto.so.3

#測試新命令可能會報錯,稍後更新下庫依賴路徑ldconfig後就正常了
/usr/local/bin/openssl version
#root@ubuntu18:/# /usr/local/bin/openssl version
#/usr/local/bin/openssl: relocation error: /usr/local/bin/openssl: symbol EVP_mdc2 version OPENSSL_1_1_0 not defined in file libcrypto.so.1.1 with link time reference

g)  重新掛載依賴庫和命令文件

#掛載新的文件
ln -s /usr/local/bin/openssl /usr/bin/openssl

mv /usr/include/openssl /usr/include/opensslold
ln -s /usr/local/include/openssl /usr/include/openssl


ln -s /usr/local/lib64/libssl.so. /usr/lib/libssl.so
ln -s /usr/local/lib64/libssl.so.3  /usr/lib/libssl.so.3
ln -s /usr/local/lib64/libcrypto.so /usr/lib/libcrypto.so
ln -s /usr/local/lib64/libcrypto.so.3  /usr/lib/libcrypto.so.3


#寫入新的依賴庫路徑
echo "/usr/local/lib64" >> /etc/ld.so.conf
echo "/usr/lib" >> /etc/ld.so.conf
ldconfig
ldconfig -v
#手動調整成新生成的依賴庫路徑
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64" >> ~/.bashrc
echo $LD_LIBRARY_PATH

#測試是否正常更新
bash
openssl version
OpenSSL 3.0.10 1 Aug 2023 (Library: OpenSSL 3.0.10 1 Aug 2023)

六、  編譯升級openssh

三套系統openssh安裝過程基本一致,命令路徑基本無變化

下麵以Ubuntu18為演示

1、  Ubuntu18/20/22更新openssh

a)  下載新版和備份老的ssh文件

Index of /pub/OpenBSD/OpenSSH/portable/

cd /home/ 
wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.4p1.tar.gz --no-check-certificate
tar xfz openssh-9.4p1.tar.gz
chown -R root:root openssh-9.4p1
cd ./openssh-9.4p1

#備份ssh文件夾
mkdir -pv /home/sshbak
cp -arp /etc/ssh/ /home/sshbak/ssh
cp /etc/ssh/sshd_config /home/sshbak/sshd_config.backup
cp /etc/pam.d/sshd /home/sshbak/sshd.pambackup
cp /etc/init.d/ssh /home/sshbak/ssh.old
mv /etc/ssh /etc/ssholdbak
ll /home/sshbak/

 

 

 

 

 

 

 

b)  安裝依賴

apt-get install -y libpam0g-dev

c)  設置編譯參數和編譯安裝,註意要更新openssl後才能生效

註意:Ubuntu18/20路徑是--with-ssl-dir=/usr/local/lib,

Ubuntu22路徑是--with-ssl-dir=/usr/local/lib64

cd ./openssh-9.4p1

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/include/openssl --with-ssl-dir=/usr/local/lib --with-zlib --with-md5-passwords --with-pam --with-privsep-path=/var/lib/sshd
#./configure 
#--prefix=/usr 
#--sysconfdir=/etc/ssh #編譯後ssh路徑
#--with-openssl-includes=/usr/local/include/openssl #有很多xxx.h的文件目錄
#--with-ssl-dir=/usr/local/lib64 #有xxx.so的目錄
#--with-zlib
#--with-md5-passwords 
#--with-pam
#--with-privsep-path=/var/lib/sshd
              

make && make install

#升級完成
ssh -V

d)  修改配置文件/etc/ssh/sshd_config,取消註釋以下文件

#根據自己需要調整sshd配置文件,參考如下
vim /etc/ssh/sshd_config 

32 PermitRootLogin yes                                          #允許root登錄,root用戶必須添加
41 AuthorizedKeysFile      .ssh/authorized_keys    #指定公鑰文件的保存位置以及名稱
57 PasswordAuthentication yes                             #允許密碼驗證
82 UsePAM yes                                                      #PAM模塊
98 UseDNS no                                                        #關閉dns檢測
109 Subsystem       sftp    /usr/libexec/sftp-server    #開啟SFTP並指定路徑

e)  檢測文件配置測試

/usr/sbin/sshd -t -f /etc/ssh/sshd_config

f)  添加互信命令文件ssh-copy-id

#mv /usr/bin/ssh-copy-id /home/sshbak/
cd /home/openssh-9.4p1
install -v -m755 contrib/ssh-copy-id /usr/bin
ll /usr/bin/ssh-copy-id

 

七、  升級後配置openssh開機自啟

開機自啟網上有很多配置方法,結合博主實測,建議是自行學習後自定義開機systemd文件

1、  查看原版開機自啟服務配置,新建一個服務配置

#原版ssh自啟配置
cat /lib/systemd/system/ssh.service

[Unit]
Description=OpenBSD Secure Shell server
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target auditd.service
ConditionPathExists=!/etc/ssh/sshd_not_to_be_run

[Service]
EnvironmentFile=-/etc/default/ssh
ExecStartPre=/usr/sbin/sshd -t
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
ExecReload=/usr/sbin/sshd -t
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartPreventExitStatus=255
Type=notify
RuntimeDirectory=sshd
RuntimeDirectoryMode=0755

[Install]
WantedBy=multi-user.target
Alias=sshd.service

複製原版的配置,新建ssh9的開機自啟文件,並修改【Type=simple

#修改腳本啟動類型為simple,防止啟動通知服務過程卡死
cp /lib/systemd/system/ssh.service /lib/systemd/system/ssh9.service
vim /lib/systemd/system/ssh9.service

[Service]
#類型修改Type=forking為simple,防止啟動通知服務過程卡死
Type=simple
#Alias=sshd.service
#根據需要可以註釋別名

 

2、  連接telnet遠程,防止ssh異常故障

上面已經安裝了telnet,此時我們連接上telnet遠程,暫時不使用ssh遠程

3、  修改服務文件,生成systemd托管服務

#停止老的ssh服務
systemctl daemon-reload
systemctl stop ssh
systemctl disable ssh
systemctl unmask ssh
systemctl status ssh

#啟用新的ssh服務
systemctl daemon-reload
systemctl restart ssh9
systemctl status ssh9
systemctl enable ssh9

#查詢配置是否成功
systemctl list-unit-files | grep ssh

4、  這個時候已經升級完成,可以連接測試了

 

5、  補充:自定義ssh的開機自啟文件

vim /usr/lib/systemd/system/sshdnew.service

[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target

[Service]
Type=simple
ExecStart=/usr/sbin/sshd -D
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

 

作者: 博客園-李宗盛 如果覺得博主的文章對你有幫助,麻煩動動小手、點贊、評論、您的鼓勵是我最大的動力!!! 出處: https://home.cnblogs.com/u/subsea/ 博客園主頁:https://www.cnblogs.com/subsea/ CSDN主頁:https://blog.csdn.net/SUBSEA123/
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • > 關註TechLeadCloud,分享互聯網架構、雲服務技術的全維度知識。作者擁有10+年互聯網服務架構、AI產品研發經驗、團隊管理經驗,同濟本復旦碩,復旦機器人智能實驗室成員,阿裡雲認證的資深架構師,項目管理專業人士,上億營收AI產品研發負責人。 ![file](https://img2023. ...
  • [TOC](多線程) # 介紹: C++ 是一種支持多線程編程的編程語言,它提供了豐富的多線程支持來充分利用現代多核處理器的性能。 C++ 多線程編程通常使用標準庫中的 頭文件以及其他相關的標準庫組件來實現。 # 理論: 1. 常用的類: std::thread 類,用於創建和管理線程等等 std: ...
  • 阻塞隊列是一種常用的併發編程工具,它能夠在多線程環境下提供一種安全而高效的數據傳輸機制。本文將介紹阻塞隊列的原理和使用場景,並通過實例演示其在多線程編程中的應用。 # 一、什麼是阻塞隊列 阻塞隊列是一種特殊的隊列,它具有以下幾個特點: 1. 阻塞特性:當隊列為空時,從隊列中獲取元素的操作將會被阻塞, ...
  • 大家好,我是棧長。 最近看到一個話題: > **前幾天去華為面試,後來說通過了,但是HR告訴我簽約簽的是華為慧通的,我該不該去?** > > 來源:https://www.zhihu.com/question/310409624/answer/2437587008 面對這一問題,網友們紛紛表示當然不 ...
  • ### 歡迎訪問我的GitHub > 這裡分類和彙總了欣宸的全部原創(含配套源碼):[https://github.com/zq2599/blog_demos](https://github.com/zq2599/blog_demos) ### 本機情況 - 省吃儉用入手了ThinkPad T14, ...
  • 在 Spring 中,`@Autowired` 註解的使用在不同的上下文中會產生不同的效果,這取決於所在的組件或類是否由**Spring**管理。 1. **`@Aspect` 註解的使用**:`@Aspect` 註解通常用於聲明切麵,而切麵是 Spring 管理的組件。因此,`@Autowired ...
  • # Unity UGUI的ScrollRect(滾動視圖)組件的介紹及使用 ## 1. 什麼是ScrollRect組件? ScrollRect(滾動視圖)是Unity UGUI中的一個常用組件,用於在UI界面中創建可滾動的區域。通過ScrollRect組件,可以實現在有限的空間內顯示大量的內容,並且 ...
  • [toc] | 說明 | 內容 | | | | | 漏洞編號 | CVE-2017-10271 | | 漏洞名稱 | Weblogic 其中使用了XMLDecoder來解析用戶傳入的XML數據在解析的過程中出現反序列化漏洞,導致可執行任意命令 | | 修複方案 | 打補丁上設備升級組件 | ### ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...