電腦網絡連接正常,微信、QQ能正常使用,但無法訪問網頁?DNS問題的解決方案和背后原理。

文章目錄

  • 1. 問題背景
  • 2. 解決方案
    • 2.1 手動刷新DNS
      • 2.1.1 Windows版本
      • 2.1.2 Mac版本
    • 2.2 手動設置DNS服務器
      • 2.2.1 Windows版
      • 2.2.2 Mac版
    • 2.3 其他解決方案
  • 3. DNS是什么?
    • 3.1 詳細解釋DNS
      • 3.1.1 A distributed, hierarchical database(一個分布式和分層數據庫結構)
      • 3.1.2 Iterated query and Recursive query(迭代查詢和遞歸查詢)
      • 3.1.3 Caching, Updating records(緩存和記錄更新)
      • 3.1.4 DNS protocol,messages

1. 問題背景

相信大家一定遇到過電腦網絡連接正常,微信、QQ能正常使用,但無法訪問網頁這樣的問題。甚至有的時候我們的瀏覽器可以打開大部分網頁,然后部分網頁之前能打開現在打不開了。這些都是DNS的問題。那這樣的問題該怎么解決呢?DNS又是什么呢?這篇文章將在后面的部分講述這兩塊問題。

2. 解決方案

2.1 手動刷新DNS

2.1.1 Windows版本

我們按下鍵盤上的win和R鍵打開運行,然后輸入cmd后按下回車打開命令行。
在這里插入圖片描述
或者我們直接打開菜單欄后在輸入框里輸入命令提示符找到并打開命令提示符。
在這里插入圖片描述

打開后,我們輸入ipconfig /flushdns按下回車后,我們就手動刷新了DNS。在這里插入圖片描述
這里也會提示我們刷新成功。
在這里插入圖片描述
一般來說這么操作這個問題就解決了,如果還沒有解決可以參考下一個方案。

2.1.2 Mac版本

我們打開啟動臺,在上面的搜索中輸入terminal就可以找到終端,我們點擊以打開命令行。
在這里插入圖片描述
然后我們輸入sudo dscacheutil -flushcache后回車后,系統會要求你輸入密碼,這時候我們輸入是無法看見內容的,我們輸入密碼后回車即可。
請添加圖片描述
這樣就手動刷新了DNS。
一般來說這么操作這個問題就解決了,如果還沒有解決可以參考下一個方案。

2.2 手動設置DNS服務器

2.2.1 Windows版

我們打開菜單欄后在輸入框里輸入設置找到并打開設置。
在這里插入圖片描述
然后點擊網絡和Internet,然后選擇第二個以太網。
在這里插入圖片描述
在這里我們能看到DNS服務器是自動尋找的,我們可以點擊編輯進行修改。
在這里插入圖片描述
然后將這里的自動改為手動,然后打開IPv4,輸入8.8.8.8(谷歌)和1.1.1.1(Cloudflare)后點擊保存。
在這里插入圖片描述
然后按照方案一刷新一下DNS即可。
下面列舉了一些DNS服務器的地址,大家可以優先選擇國內的DNS服務器,這里由于谷歌等比較容易記憶,所以以此為例。
國內服務器DNS列表。

提供商IPv4 地址IPv6 地址DoH / DoT 備注
DNSPod(騰訊)119.29.29.29
119.28.28.28
2402:4e00::DoH: https://doh.pub/dns-query
DoT: dot.pub
阿里 AliDNS223.5.5.5
223.6.6.6
2400:3200::1
2400:3200:baba::1
DoH: https://dns.alidns.com/dns-query
DoT: dns.alidns.com
114DNS114.114.114.114
114.114.115.115
官網 https://www.114dns.com[^3^]
百度 DNS180.76.76.762400:da00::6666暫無官方 DoH/DoT
360 安全 DNS電信/移動:101.226.4.6 / 218.30.118.6
聯通:123.125.81.6 / 140.207.198.6
DoH: https://doh.360.cn
DoT: dot.360.cn
國外服務器DNS列表。
提供商IPv4 地址IPv6 地址DoH / DoT 備注
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Google Public DNS8.8.8.8
8.8.4.4
2001:4860:4860::8888
2001:4860:4860::8844
DoH: https://dns.google/dns-query
DoT: dns.google
Cloudflare DNS1.1.1.1
1.0.0.1
2606:4700:4700::1111
2606:4700:4700::1001
DoH: https://cloudflare-dns.com/dns-query
DoT: 1dot1dot1dot1.cloudflare-dns.com
Quad99.9.9.9
149.112.112.112
2620:fe::fe
2620:fe::9
DoH: https://dns.quad9.net/dns-query
DoT: dns.quad9.net
OpenDNS(思科)208.67.222.222
208.67.220.220
2620:119:35::35
2620:119:53::53
DoH: https://doh.opendns.com/dns-query[^2^]
OpenDNS FamilyShield208.67.222.123
208.67.220.123
2620:119:35::123
2620:119:53::123
自動攔截成人內容

但其實我們一般方案一就能解決問題,我們很少會遇到自動尋找的DNS服務器出現問題的情況,如果出了問題我們也可以用這個方案解決。

2.2.2 Mac版

我們打開啟動臺,找到系統設置。請添加圖片描述
然后點擊Wi-Fi,選擇連接的Wi-Fi的詳細信息,會打開如下界面。
在這里插入圖片描述
然后選擇DNS后再點擊加號然后輸入自己想添加的DNS服務器,然后回車以確認,或者點擊右下角的好以確認。
在這里插入圖片描述
然后按照方案一刷新一下DNS即可。
下面列舉了一些DNS服務器的地址,大家可以優先選擇國內的DNS服務器,這里由于谷歌等比較容易記憶,所以以此為例。
國內服務器DNS列表。

提供商IPv4 地址IPv6 地址DoH / DoT 備注
DNSPod(騰訊)119.29.29.29
119.28.28.28
2402:4e00::DoH: https://doh.pub/dns-query
DoT: dot.pub
阿里 AliDNS223.5.5.5
223.6.6.6
2400:3200::1
2400:3200:baba::1
DoH: https://dns.alidns.com/dns-query
DoT: dns.alidns.com
114DNS114.114.114.114
114.114.115.115
官網 https://www.114dns.com[^3^]
百度 DNS180.76.76.762400:da00::6666暫無官方 DoH/DoT
360 安全 DNS電信/移動:101.226.4.6 / 218.30.118.6
聯通:123.125.81.6 / 140.207.198.6
DoH: https://doh.360.cn
DoT: dot.360.cn
國外服務器DNS列表。
提供商IPv4 地址IPv6 地址DoH / DoT 備注
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Google Public DNS8.8.8.8
8.8.4.4
2001:4860:4860::8888
2001:4860:4860::8844
DoH: https://dns.google/dns-query
DoT: dns.google
Cloudflare DNS1.1.1.1
1.0.0.1
2606:4700:4700::1111
2606:4700:4700::1001
DoH: https://cloudflare-dns.com/dns-query
DoT: 1dot1dot1dot1.cloudflare-dns.com
Quad99.9.9.9
149.112.112.112
2620:fe::fe
2620:fe::9
DoH: https://dns.quad9.net/dns-query
DoT: dns.quad9.net
OpenDNS(思科)208.67.222.222
208.67.220.220
2620:119:35::35
2620:119:53::53
DoH: https://doh.opendns.com/dns-query[^2^]
OpenDNS FamilyShield208.67.222.123
208.67.220.123
2620:119:35::123
2620:119:53::123
自動攔截成人內容

但其實我們一般方案一就能解決問題,我們很少會遇到自動尋找的DNS服務器出現問題的情況,如果出了問題我們也可以用這個方案解決。

2.3 其他解決方案

當時我特別小的時候,電腦還流行裝殺毒軟件之類的,當時電腦裝的是360安全管家,里面有一個網絡工具箱,當時每次電腦沒網了,用那個檢測,就會跟我說是DNS問題,然后就能幫我修復了。
前面的第一種方案相當于是我們使用命令行修復這個問題,而這個方案就相當于是現在有一個軟件,它提供了一個圖形化的窗口,讓用戶只需要點擊就能完成這個操作,降低了修復的難度,但實際的操作方式其實就和前兩種方案是一樣的。如果你覺得你的電腦經常會出問題,然后不知道怎么解決,你當然可以選擇裝一個安全管家之類的軟件來幫助你解決問題。但是其實現在時代不斷進步,電腦出現問題的幾率越來越低,而且我們獲得解決方案的途徑也越來越方便,如果遇到問題我們可以上網找這樣的解決方案,按照每一步操作,或者詢問AI得到解決方案都是可以選擇的方案。所以我們其實不太需要一個安全管家在我們的電腦中,這也是這篇文章希望能夠幫助到大家的地方。

3. DNS是什么?

我們聽說過IP地址,IP地址相當于是我們現實生活里的門牌號,它對應的才是我們在網絡世界的真實位置。但是IP地址對于我們人來說是難以記憶的,因為他是數字符號組合來的,比如我們訪問www.baidu.com百度的網頁,其實際的IP地址是119.75.217.109,DNS服務器就負責將我們輸入的網站地址如www.baidu.com翻譯成IP地址119.75.217.109。DNS的作用就相當于是電話簿,我們可能記不得一些聯系人的電話號碼,我們將這些存在電話簿中,當我們想給張三打電話的時候,我們選擇張三,DNS幫我們翻譯成對應的電話號碼從而將電話打給張三。
因此這個過程可能有的一個問題就是,張三換了一個號碼,所以DNS翻譯的號碼如果還是以前的號碼,那我們就無法打給張三,這就是第一個方案的操作,我們清空現在的DNS結果,讓DNS給我們一個新的結果。這樣DNS就會幫我們找最新張三的電話號碼是多少。
當然也有可能DNS本身就不知道最新的張三的電話號碼或者DNS服務器本身出現了問題,那么這就需要我們使用方案2換一個DNS服務器來看看了。

3.1 詳細解釋DNS

我們平時輸入的一般都是www.baidu.com而不是對應的IP地址,因為IP地址難以記憶,而www.baidu.com正是domin name(域名),我們一般記憶的就是domin name(域名)。我們的電腦中有hosts文件(Windows:C:\Windows\System32\drivers\etc\目錄下,Unix-like: /etc/ 目錄下)記錄了IP地址和域名的映射關系。所以當我們輸入www.baidu.com后,電腦會在hosts文件中尋找對應的IP地址,從而建立了連接,成功訪問了百度。所以這個hosts文件如何更新呢?這就要借助DNS服務器,將對應的域名解析為相應的IP地址。這便是DNS。

DNS是一種應用層協議(學習網絡知識后,我們就會知道網絡有多個層次),它采用客戶端/服務器架構,使用UDP協議并默認端口號為53。
resolve(解析)域名又稱name/address translation(名稱/地址轉換)的兩種方式:通過本地的hosts文件或通過與name servers(名稱服務器,名稱服務器就是DNS服務器)通信。
DNS使用分布式數據庫的方式來存儲域名和IP地址的映射關系。這些數據庫被實現為許多名稱服務器的層次結構,這種層次結構使得DNS系統能夠高效地進行域名解析,并且具有一定的容錯能力和可擴展性。例如當你查詢一個域名的對應IP時,一個服務器會告訴你去哪一個服務器,這個服務器可能會告訴你去下一個服務器,再下一個服務器會告訴你具體的IP地址。

DNS服務包括以下功能:
1.Hostname to IP address translation(主機名到IP地址的轉換)。這一步使用Address Record(A記錄)完成,它是一種在DNS數據庫中的數據結構。
2.Host aliasing(主機別名),這一步將一個主機名映射到另一個主機名,從而實現主機名的別名或重定向。這一步包括Canonical names(規范名稱),指向實際的主機名。還包括Alias names(別名),主機的替代名稱,用于提供更易記的名稱。這一步使用cname record(Canonical Name Record)完成,這種數據結構可以讓多個域名指向同一個IP地址。
3.Mail server aliasing(郵件服務器別名),用于指定郵件服務器的主機名,允許郵件系統找到接收特定域名郵件的郵件服務器。它使用的數據結構是mx record(Mail Exchange Record)。
4.Load Distribution(負載均衡),DNS可以將請求分配到多個服務器,以實現負載均衡和高可用性。
5.Replicated Web servers(復制的Web服務器),多個IP地址對應一個名稱,允許實現多個服務器共享同一個域名,提高網站的可靠性和性能。比如當一個服務器故障時,DNS可以停止解析到那個服務器的IP,將流量轉移到其他服務器。前面負載均衡也指出了,DNS服務器會根據當前的網絡狀況和服務器負載來決定指向哪個IP地址。

3.1.1 A distributed, hierarchical database(一個分布式和分層數據庫結構)

那我們現在說DNS的結構。如果DNS是中心化的,那么會有以下幾個問題:
1.如果出現single point of failure(單點故障),整個DNS都會受到影響。
2.所有的DNS都集中在一個地方,那么這個地方將承受巨大的流量壓力。
3.網絡傳輸和距離有關,所以如果集中在一個地方,必定會存在因為距離而導致網絡延遲高而解析速度慢的問題出現。
4.在維護上集中管理的維護成本也跟分散式的相比更高。
因此DNS是a distributed, hierarchical database(一個分布式和分層數據庫結構)
在這里插入圖片描述
首先Root DNS servers(根DNS服務器)是DNS層次結構的最頂層,它們知道所有頂級域名(如.com、.org、.edu)的權威DNS服務器的位置。
下面是一些頂級域名的權威DNS服務器,例如com DNS servers(.com域名的DNS服務器)。它們下面還管理各自頂級域名下的二級域名,例如(yahoo.com、amazon.com等)。
再下一層便是各個域名的權威DNS服務器,它們存儲了各自域名下的詳細DNS記錄,包括A記錄、CNAME記錄等。

所以當一個客戶端向獲取www.amazon.com的IP地址時,客戶端首先向根DNS服務器發送查詢,請求找到負責.com域名的DNS服務器,再接著向負責.com域名的DNS服務器發送查詢,請求找到負責amazon.com域名的DNS服務器,最后向amazon.com的DNS服務器發送查詢,以獲取www.amazon.com的具體IP地址。

回到現實應用中,當本地DNS服務器無法解析某個域名時,它會聯系根域名服務器以獲取幫助。如果根域名服務器不知道某個域名的映射,它會聯系相應的權威名稱服務器。根域名服務器獲取域名到IP地址的映射。根域名服務器將獲取到的映射信息返回給本地DNS服務器。
下圖展示了全球13個邏輯上的根域名服務器,每個根域名服務器都有多個副本。
在這里插入圖片描述
TLD servers(Top-level domain servers,頂級域名服務器)負責管理頂級域名,比如com,org,net,edu等。它還負責管理各個國家代碼頂級域名,比如cn,uk,fr,ca,jp等。
Authoritative DNS servers(權威DNS服務器)是指組織自身維護的DNS服務器,用于提供對該組織命名主機的權威主機名到IP地址的映射。這些服務器可以由組織自己或者服務提供商進行維護管理。
Local DNS name server(本地DNS名稱服務器)是指屬于特定網絡(如住宅ISP、公司、大學等)的DNS服務器,它并不嚴格屬于DNS層次結構中的任何一級。每個ISP都會擁有自己的本地DNS名稱服務器,有時也被稱為“默認名稱服務器”。當主機發起DNS查詢時,查詢會發送到它所在網絡的本地DNS服務器。本地DNS服務器通常會維護一個本地緩存,其中包含最近的主機名到IP地址的映射,以便加快解析速度。然而,這些緩存中的信息可能已經過時。本地DNS服務器還充當代理,它會將查詢轉發到DNS層次結構中的其他級別。

3.1.2 Iterated query and Recursive query(迭代查詢和遞歸查詢)

Iterated query(迭代查詢):
當一個DNS服務器不知道所請求的域名時,它會告訴請求者去詢問另一個DNS服務器。
如圖所示,請求主機向本地DNS服務器發送查詢請求。如果本地DNS服務器不知道答案,它會向根DNS服務器發送查詢。根DNS服務器告訴本地DNS服務器去詢問頂級域DNS服務器。本地DNS服務器向TLD DNS服務器發送查詢。TLD DNS服務器告訴本地DNS服務器去詢問權威DNS服務器。本地DNS服務器向權威DNS服務器發送查詢。權威DNS服務器返回域名對應的IP地址。本地DNS服務器將IP地址返回給請求主機。
在這里插入圖片描述
Recursive query(遞歸查詢)
被查詢的DNS服務器(如本地DNS服務器)會代表客戶端(如用戶的電腦)進行后續的查詢,直到找到所需的記錄或確定記錄不存在。
這意味著名稱解析的負擔被放在了被聯系的DNS服務器上。服務器需要處理查詢并可能進行額外的查詢,這可能導致DNS層次結構的上層(如根DNS服務器和TLD DNS服務器)承受較重的負載,因為它們需要處理大量的查詢請求。
如圖所示,請求主機向本地DNS服務器發送查詢請求。如果本地DNS服務器不知道答案,它會向根DNS服務器發送查詢。根DNS服務器如果不知道答案,根DNS服務器會向TLD DNS服務器發送查詢。如果TLD DNS服務器不知道答案,TLD DNS服務器會向權威DNS服務器發送查詢。最后權威DNS服務器將IP地址返回給TLD DNS服務器,TLD DNS服務器將這個IP地址返回給根DNS服務器,根DNS服務器將這個IP地址返回給本地DNS服務器,本地服務器再返回給請求主機。
在這里插入圖片描述
dig +trace是一個命令行工具,用于顯示從客戶端到權威DNS服務器的完整遞歸查詢過程。

3.1.3 Caching, Updating records(緩存和記錄更新)

一旦任何一個DNS名稱服務器學習到了域名到IP地址的映射關系,它會將這些映射信息緩存起來。緩存中的條目會在一定時間后(TTL,time to live,生存時間)過期并消失。通常,頂級域名服務器的信息會被緩存在本地名稱服務器中,這樣就不需要經常訪問根名稱服務器。
然而,由于緩存中的條目可能會過時,如果某個主機的IP地址發生了變化,這個變化可能需要等到所有TTL過期后才能在整個互聯網中得到更新。而我們的方案一就是手動清理所有的緩存,從而更新這里的記錄。
為了解決這個問題,IETF提出了更新/通知機制的標準,其中的一個標準便是RFC 2136。

DNS是一個分布式數據庫,用于存儲資源記錄(RR, resource records)。資源記錄的格式通常為(name, value, type, ttl)。
這里如果type=A,便是A記錄,代表主機地址記錄,name是主機名,value是對應的IP地址。
如果type = CNAME,便是CNAME記錄,指向“規范”(真實)名稱,name是別名,value是規范名稱,也就是真實的目標主機名。
如果type = NS,代表域名服務器記錄,name是域名(例如foo.com),value是該域名的權威名稱服務器的主機名。
如果type=MX,便是MX記錄,代表郵件交換記錄,value是與name相關聯的郵件服務器的名稱。

我們可以使用nslookup命令去查詢一個域名對應的IP地址,如下圖所示。
當我們使用不同的網絡我們獲得的DNS解析的IP地址可能不同,如下圖所示。前兩次都是使用學校的兩個不同的網絡查詢的,它們返回的是路由器的默認網關IP地址,因為它們都是內網。而第三個不是內網,返回的IP地址就不會是前面一樣的私有IP了。
在這里插入圖片描述
我們還可以使用whois命令去獲取域名的注冊信息。如下圖所示。
在這里插入圖片描述

3.1.4 DNS protocol,messages

DNS的查詢和回復信息共享相同的信息格式。如下圖所示。
在這里插入圖片描述
第一行是消息頭,包含關鍵的元數據,用于標識和處理DNS消息。信息頭包含identification(標識)和flags(標志)。Identification(標識)是一個16位的數字,用于唯一標識一個查詢。當服務器回復查詢時,會使用相同的標識符,以便客戶端能夠將回復與原始查詢匹配。一個16位的數字,用于唯一標識一個查詢。當服務器回復查詢時,會使用相同的標識符,以便客戶端能夠將回復與原始查詢匹配。包含多個標志位,用于控制消息的行為和狀態。其中包括:
1.指示信息是查詢還是回復。
2.客戶端希望服務器執行遞歸查詢。
3.服務器能夠執行遞歸查詢。
4.回復是否來自權威DNS服務器。
# questions(問題數量),表示消息中包含的查詢問題數量。
# answer RRs(回答資源記錄數量),表示消息中包含的答案資源記錄的數量。
# authority RRs(權威資源記錄數量),表示消息中包含的權威資源記錄的數量,這些記錄指出了哪個服務器是某個域名的權威服務器。
# additional RRs(附加資源記錄數量),表示消息中包含的附加資源記錄的數量,這些記錄提供了額外的信息,如DNS服務器的地址。
questions,包含客戶端提出的查詢問題,可以有一個或多個。查詢中包含域名和查詢類型的字段,指定了要查詢的域名和查詢的資源類型(如A記錄、MX記錄等)。
answers,包含包含對查詢問題的響應,可以有一個或多個資源記錄,提供了查詢域名的解析結果。
authority,提供權威信息,指出哪個DNS服務器是某個域名的權威服務器。
additional info,提供額外的DNS記錄,可能包括額外的NS記錄或其他類型的記錄。

下圖展示了wireshark抓包抓取的DNS查詢數據包的具體情況。
在這里插入圖片描述
第一行的Transaction ID(事務ID)等同于Identification(標識)。
下一行Flags字段中的每一位都代表一個特定的標志。細節如下:
1.QR(Query/Response):這是最高位,如果是0,則消息是查詢(Query);如果是1,則消息是響應(Response)。在0x0100中,這個位是0,表示這是一個查詢。
2.Opcode:接下來的4位用于指定操作碼。在這里,0000表示這是一個標準查詢(Standard query),意味著一個普通的請求,用于獲取資源記錄。
3.AA (Authoritative Answer):如果設置(1),表示響應來自權威DNS服務器。在這里,這個位是0,表示這不是權威答案。
4.TC (Truncated):如果設置(1),表示消息被截斷,可能是因為響應數據太大而無法在單個UDP數據包中發送。。在這里,這個位是0,表示消息沒有被截斷。
5.RD (Recursion Desired):如果設置(1),表示客戶端希望服務器執行遞歸查詢。。在這里,這個位是1,表示客戶端希望進行遞歸查詢。
6.RA (Recursion Available):如果設置(1),表示服務器支持遞歸查詢。。在這里,這個位是0,表示服務器不支持遞歸查詢。
7.Z:保留位,通常不使用。
8.AD (Authenticated Data):如果設置(1),表示響應是經過驗證的。在這里,這個位是0,表示數據未經過驗證。
9.CD (Checking Disabled):如果設置(1),表示客戶端不希望進行DNSSEC驗證。在這里,這個位是0,表示沒有禁用檢查。

下圖展示了與上面DNS請求相對應的回復。
在這里插入圖片描述

那我現在如何向DNS插入記錄呢?假設現在有一個新的網站域名 “feimax.com”
首先,你需要在DNS注冊商(例如net.cn)處注冊feimax.com這個域名。通常情況下,你不需要自己設置NS記錄,因為注冊商會為你設置好。然后,你需要向DNS中插入A記錄,將feimax.com指向你的主機的IP地址,這樣當有人訪問feimax.com時,DNS就能夠將其解析為相應的IP地址。接著,你還需要插入MX記錄,用于指定與feimax.com相關聯的郵件服務器的名稱。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/92212.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/92212.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/92212.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【HTML】圖片比例和外部div比例不一致,最大程度占滿

圖片比例和外部div比例不一致&#xff0c;最大程度占滿&#xff0c;并且圖片比例不變 其中1.jpg,2.jpg,1.html在同一目錄 |-----|- 1.jpg|- 2.jpg|- 1.html1.jpg2.jpg<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /&g…

如何使用python網絡爬蟲批量獲取公共資源數據技術

如何快速批量地獲取海量公共資源數據決定了科研的效率。Python網絡爬蟲是快速批量獲取網絡數據的重要手段&#xff0c;它按照發送請求、獲得頁面、解析頁面、下載內容、儲存內容等流程&#xff1f; 一&#xff1a;Python軟件的安裝及入門1 Python軟件安裝及入門1)Anaconda軟件安…

Kiro vs Cursor: AI IDE 終極對比指南

概述 隨著生成式 AI 革命性地改變了我們編寫代碼的方式&#xff0c;新一代 AI 驅動的集成開發環境 (IDE) 正在崛起。Kiro 和 Cursor 代表了這一運動的前沿&#xff0c;但它們采用了截然不同的方法。 核心理念對比 特性AWS KiroCursor核心理念結構化開發流程 (Spec-driven)對…

Python獲取網頁亂碼問題終極解決方案 | Python爬蟲編碼處理指南

在Python網絡爬蟲開發中&#xff0c;亂碼是最常見的問題之一。本文將深入探討亂碼產生的原因&#xff0c;并提供多種有效的解決方案&#xff0c;幫助您徹底解決Python獲取網頁內容時的亂碼問題。常見網頁編碼格式編碼類型使用場景Python解碼方式UTF-8現代網站標準編碼.decode(u…

Android MTK平臺預置多張靜態壁紙

執行 adb shell pm list package -f wallpaper 命令&#xff0c;查看壁紙應用路徑&#xff1a; /product/app/MtkWallpaperPicker/MtkWallpaperPicker.apkcom.android.wallpaperpicker 結果中帶 Mtk 就可確定MTK有對應用進行重構。其源碼路徑在 vendor/mediatek/proprietary/…

基于Django的個人博客系統開發(開題報告)

畢業論文(設計)開題報告論文(設計)題目 基于Django的個人博客系統開發 1.選題目的和意義 隨著云服務器的普及化以及編程培訓機構大量涌現,學習網站開發技術以及編程技術,通過租用個人云服務器部署代碼,構建個人博客網站,創建學習文檔,記錄學習過程,與他人交流技術學…

C++ 分配內存釋放內存

C 分配內存釋放內存一、new、delete、malloc和free最簡單的分配內存自定義對象分配和釋放內存二、new、delete與虛析構的問題三、一維、二維、多維數值創建和釋放一維二維多維四、new的缺點以及連續內存的優點一、new、delete、malloc和free 最簡單的分配內存 int* p_m (int*…

奧比中光深度相機開發

一、開發環境準備 1.1 硬件要求 奧比中光深度相機&#xff08;如Astra Pro、Gemini等&#xff09;USB 3.0接口&#xff08;確保數據傳輸穩定&#xff09;支持OpenGL的顯卡&#xff08;可選&#xff0c;用于點云可視化&#xff09; 1.2 軟件環境 SDK安裝&#xff1a; 從奧比…

標題 “Python 網絡爬蟲 —— selenium庫驅動瀏覽器

一、Selenium 庫核心認知 Selenium 庫是 Web 應用程序測試與自動化操作的利器 &#xff0c;能驅動瀏覽器&#xff08;如 Edge、Firefox 等&#xff09;執行點擊、輸入、打開、驗證等操作 。與 Requests 庫差異顯著&#xff1a;Requests 庫僅能獲取網頁原始代碼&#xff0c;而 …

從實踐出發--探究C/C++空類的大小,真的是1嗎?

文章目錄測試代碼VS2022正常運行編譯失敗GCC總結Author: NemaleSu Data: 2025/07/21 測試環境&#xff1a; Win11&#xff1a;VS2022Ubuntu22.04&#xff1a;gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 相信眾多cpper聽過太多書籍、視頻、文檔、博客等資料&#xff0c;說C/C…

數據結構自學Day11-- 排序算法

一、排序算法的概念排序&#xff08;Sorting&#xff09;是指&#xff1a;將一組“無序”的數據&#xff0c;按照某種“順序規則”排列成“有序”的過程。1、按排序順序分類&#xff1a;升序&#xff1a;從小到大排列&#xff0c;如 1, 3, 5, 7, 9降序&#xff1a;從大到小排列…

電子元器件—三極管(一篇文章搞懂電路中的三極管)(筆記)(面試考試必備知識點)

三極管的定義及工作原理1. 定義三極管&#xff08;Transistor&#xff09;是一種具有三層半導體材料&#xff08;P-N-P 或 N-P-N&#xff09;構成的半導體器件&#xff0c;用于信號放大、開關控制和信號調制等應用。三極管有三個引腳&#xff1a;發射極&#xff08;Emitter&…

數據結構之克魯斯卡爾算法

前言&#xff1a;和Prim算法一樣&#xff0c;Kruskal 算法也是用來生成最小生成樹的&#xff0c;這篇文章來學習一下Kruskal算法的實現 一、實現流程 初始化的時候&#xff0c;將所有的邊用一個數組存儲&#xff0c;并且按權值從小到大進行排序&#xff0c;每次選一個權值最小的…

MongoDB 查詢時區問題

MongoDB默認時區是UTC&#xff0c;比北京時區晚八小時&#xff0c;北京時間UTC8h。 // 北京時間的 2024-10-01 08:00:00 // (>) 大于 - $gt // (<) 小于 - $lt // (>) 大于等于 - $gte // (< ) 小于等于 - $lte// Z代表UTC時區1、{"gmtCreate":{"$…

Windows VS2019 編譯 Apache Thrift 0.15.0

隨著微服務架構的普及,高效的跨語言遠程過程調用(RPC) 成為了構建分布式系統的重要基礎。Apache Thrift 是 Facebook 開源的一個輕量級、高性能的 RPC 框架,它允許開發者通過一個通用的接口定義語言(IDL)來定義服務接口和數據結構,并自動生成多種語言的客戶端和服務端代…

搭建種草商城框架指南

一、引言在當今電商市場&#xff0c;種草商城以其獨特的社交化購物模式受到越來越多用戶的喜愛。搭建一個功能完善、體驗良好的種草商城框架&#xff0c;需要綜合考慮前端界面、后端服務、數據庫設計等多個方面。本文將為你詳細介紹搭建種草商城框架的關鍵要點和技術選型。二、…

docker--掛載

設置容器的掛載 需要注意 掛載行為會覆蓋容器目標目錄的原有內容(未驗證)。 查看容器的掛載情況 在容器外部查看: docker inspect <容器名或容器ID> | grep -A n "Mounts" -A n 的含義 -A 是 --after-context 的縮寫,表示顯示匹配行及其后 n 行。 "Mo…

以Streamable HTTP方式訪問mcp server的過程

一、mcp server 部署 使用fastmcp框架 部署 mcp server&#xff0c; 以下是源代碼 # 引入 fastmcp 依賴包 from fastmcp import FastMCP# 新建fastmcp實例&#xff0c; 名字叫做 weather mcp FastMCP("weather")mcp.tool(name"weather", tags{"weath…

二次元 IP 虛擬數字人宣傳:漫畫角色動態直播與衍生周邊預售聯動

當漫畫角色從靜態畫稿中走出&#xff0c;以動態直播的形式與粉絲實時互動&#xff0c;再順勢開啟衍生周邊預售 —— 虛擬數字人技術正重塑二次元 IP 的宣傳邏輯。這種 “動態直播 周邊預售” 的聯動模式&#xff0c;不僅打破了次元壁&#xff0c;更讓 IP 熱度高效轉化為商業價…

如何在服務器上獲取Linux目錄大小

目前我在管理一臺hostease的服務器時遇到服務器磁盤空間不足的情況。隨著在系統中添加更多文件&#xff0c;這些系統文件目錄也變得越來越大。過大的目錄也消耗了系統資源&#xff0c;導致系統運行緩慢。后來我通過下列的方法對服務器上的磁盤空間使用進行了逐一檢查。在這篇綜…