<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一文入門(mén)DNS?從訪(fǎng)問(wèn)GitHub開(kāi)始

          共 4207字,需瀏覽 9分鐘

           ·

          2020-07-29 13:29

          前言

          大家都是做開(kāi)發(fā)的,都有GitHub的賬號(hào),在日常使用中肯定會(huì)遇到這種情況,在不修改任何配置的情況下,有時(shí)可以正常訪(fǎng)問(wèn)GitHub,有時(shí)又直接未響應(yīng),來(lái)一起捋捋到底是為啥。

          GitHub訪(fǎng)問(wèn)的千層套路

          以我家里的電腦為例,在不修改任何配置,不啟用什么代理工具的情況下,訪(fǎng)問(wèn)GitHub會(huì)得到以下結(jié)果:

          ???

          雖然很戳心,但好歹能展示一部分。

          從網(wǎng)上搜了一堆亂七八糟的攻略,知道了可以通過(guò)修改電腦的Hosts文件達(dá)到正常訪(fǎng)問(wèn)的能力,于是胡搜了一通,

          步驟:百度經(jīng)驗(yàn)

          效果如下:

          訪(fǎng)問(wèn)效果依然很感人,最近活動(dòng)數(shù)據(jù)不顯示,整個(gè)界面加載都快接近2分鐘了,有什么辦法沒(méi)有咧~

          站長(zhǎng)工具 PING PING PING

          都是搞開(kāi)發(fā)的,都會(huì)用F12看看網(wǎng)絡(luò)或者資源請(qǐng)求的地址是什么,以上面耗時(shí)最慢的地址為例,域名為:github.githubassets.com

          打開(kāi)站長(zhǎng)工具的PING功能,地址為:http://ping.chinaz.com/github.githubassets.com

          結(jié)果如下:

          我發(fā)現(xiàn) 185.199.108.154 這個(gè)IP地址速度快的一批,于是立馬更換 Hosts中該域名對(duì)應(yīng)的IP地址

          再次訪(fǎng)問(wèn),效果如下:

          那句話(huà)怎么說(shuō)的來(lái)著?如什么什么般絲滑,我感覺(jué)這就非常絲滑~ ??

          GitHub項(xiàng)目定時(shí)發(fā)布最新Hosts

          當(dāng)然了,如果每次訪(fǎng)問(wèn)都得折騰一次,那滋味,簡(jiǎn)直不要太難受,所以網(wǎng)上已經(jīng)有人開(kāi)源了相關(guān)的項(xiàng)目,會(huì)定時(shí)發(fā)布最新的 GitHub IP地址,鏈接:https://github.com/521xueweihan/GitHub520

          本文撰寫(xiě)時(shí)的Hosts

          #?github
          185.199.108.154???????????????github.githubassets.com
          199.232.68.133????????????????camo.githubusercontent.com
          52.168.24.190?????????????????github.map.fastly.net
          199.232.69.194????????????????github.global.ssl.fastly.net
          140.82.112.4??????????????????github.com
          140.82.112.5??????????????????api.github.com
          199.232.68.133????????????????raw.githubusercontent.com
          199.232.68.133????????????????user-images.githubusercontent.com
          199.232.68.133????????????????favicons.githubusercontent.com
          199.232.68.133????????????????avatars5.githubusercontent.com
          199.232.68.133????????????????avatars4.githubusercontent.com
          199.232.68.133????????????????avatars3.githubusercontent.com
          199.232.68.133????????????????avatars2.githubusercontent.com
          199.232.68.133????????????????avatars1.githubusercontent.com
          199.232.68.133????????????????avatars0.githubusercontent.com

          該項(xiàng)目會(huì)自動(dòng)發(fā)布在指定的地址上,結(jié)合軟件使用,可以完全自動(dòng)化,無(wú)需持續(xù)更新

          當(dāng)然也可以自行手動(dòng)更改

          為什么改了Hosts就能訪(fǎng)問(wèn)GitHub

          平常都是百度 + 谷歌,今天非要探究一下原理!咱們一步一步來(lái),首先大家都需要明確一點(diǎn),在網(wǎng)絡(luò)的世界中 域名 只是為了便于記憶和識(shí)別而存在的一個(gè)唯一地址,真正工作的仍然是 IP

          Hosts文件是干嗎的

          簡(jiǎn)單來(lái)說(shuō),Hosts文件是存儲(chǔ)本機(jī)網(wǎng)址域名與其對(duì)應(yīng)的IP地址的一個(gè)文件,在網(wǎng)絡(luò)請(qǐng)求階段發(fā)揮作用

          為什么改了Hosts就能生效

          這就涉及到了域名解析,因?yàn)镠osts文件存放的就是 域名IP 的對(duì)應(yīng)關(guān)系,因此它可以在域名解析階段發(fā)揮作用,為什么呢?因?yàn)樵谟蛎馕龅牧鞒讨?本機(jī)Hosts 解析處于順序二

          即:瀏覽器解析 -》本機(jī)解析 -》XXXX(后面的稍后再提)

          所以有時(shí)候我們白嫖軟件,都會(huì)改一下 Hosts,因?yàn)樾枰阉诰€(xiàn)驗(yàn)證的域名指向錯(cuò)誤的地址去,另外可能存在一定的瀏覽器緩存或者本機(jī)緩存,可以通過(guò)重開(kāi)瀏覽器或者 PING 域名來(lái)檢查更改是否生效。

          DNS解析到底是什么玩意?

          上文中多次提到解析,其實(shí)說(shuō)的就是 DNS解析

          同時(shí)上文也提到過(guò),在網(wǎng)絡(luò)世界中真正發(fā)揮作用的是 IP,而一般情況下我們?cè)L問(wèn)的都是 域名,為什么能實(shí)現(xiàn)這種效果,就是因?yàn)橛蛎cIP地址的對(duì)應(yīng)關(guān)系存儲(chǔ)在一個(gè)叫做 DNS(Domain Name System) 的系統(tǒng)里。DNS是一個(gè)全球化的分布式數(shù)據(jù)庫(kù),它所提供的服務(wù)就是將域名轉(zhuǎn)換為互聯(lián)網(wǎng)IP地址。

          DNS解析的全部流程

          網(wǎng)上的關(guān)于流程的圖很多,我從中借鑒了一副,如下所示:

          1. 瀏覽器緩存:一次請(qǐng)求會(huì)首先通過(guò)瀏覽器緩存信息尋找域名映射的IP地址,這也是為什么有時(shí)候我們改了本機(jī)hosts,需要關(guān)閉再打開(kāi)瀏覽器才能正常使用,如果找到則返回,沒(méi)找到則繼續(xù)到下一級(jí)

          2. 本機(jī)系統(tǒng)緩存:即上文中提到的,通過(guò) hosts 文件來(lái)映射域名和IP,在上古時(shí)期有很多垃圾軟件會(huì)悄咪咪的修改系統(tǒng)的 hosts文件,達(dá)到 DNS劫持 的目的,即把淘寶域名指向另一個(gè) IP,然后部署一個(gè)高仿的淘寶商城,靜靜等你輸入賬號(hào),密碼,然后涼涼...

          3. 本地域名解析服務(wù)系統(tǒng):本地域名系統(tǒng)LDNS一般都是本地區(qū)的域名服務(wù)器。離你的位置都比較近,Windows系統(tǒng)使用命令ipconfig 就可以查看,在Linux和Mac系統(tǒng)下,直接使用命令 cat /etc/resolv.conf 來(lái)查看LDNS服務(wù)地址。LDNS一般都緩存了大部分的域名解析的結(jié)果,大部分的解析工作到這里就差不多已經(jīng)結(jié)束了

            以下即是所謂的 遞歸解析


          4. 根域名解析:本地域名解析服務(wù)系統(tǒng)無(wú)法解析時(shí),會(huì)向 13根 發(fā)起域名解析請(qǐng)求

            說(shuō)明: 所謂的 13根,指的是根域名服務(wù)器,是架構(gòu)因特網(wǎng)所必須的基礎(chǔ)設(shè)施。根服務(wù)器主要用來(lái)管理互聯(lián)網(wǎng)的主目錄,由于DNS解析中采用的是UDP協(xié)議,僅能傳遞512字節(jié)的有效報(bào)文,因此只能構(gòu)建出A-M 13個(gè)根服務(wù)器,而真正工作運(yùn)行肯定不止13臺(tái)服務(wù)器,而是包含很多服務(wù)器鏡像的

          5. 根域名解析服務(wù)器返回 ?gTLD (Generic top-level domain) 給本地解析服務(wù)器,即該域名所屬的頂級(jí)域及其所在的服務(wù)器,頂級(jí)域名即如:.com .cn等等

          6. 本地解析服務(wù)器已知頂級(jí)域名服務(wù)器地址后,發(fā)起解析請(qǐng)求

          7. 頂級(jí)域名解析服務(wù)器返回 權(quán)限域名服務(wù)器 信息給本地解析服務(wù)器,權(quán)限域名服務(wù)器 即如:taobao.com

          8. 本地解析服務(wù)器已知權(quán)限域名服務(wù)器地址后,發(fā)起解析請(qǐng)求

          9. 權(quán)限域名服務(wù)器返回域名對(duì)應(yīng)的IP地址給本地解析服務(wù)器

          10. 本地解析服務(wù)器緩存相關(guān)信息,并返回給用戶(hù)

          是不是有點(diǎn)繞?咱們來(lái)整個(gè)圖吧,遞歸解析 如下所示:

          再問(wèn)一遍為什么改Hosts就可以訪(fǎng)問(wèn)GitHub

          了解了上文之后,對(duì)于這個(gè)問(wèn)題就更好回答了,因?yàn)镚itHub畢竟為外國(guó)的網(wǎng)站,咱們?cè)L問(wèn)時(shí)有一層 DNS污染,即把對(duì)應(yīng)的域名指向了不可達(dá)的IP上,或者禁止訪(fǎng)問(wèn)的IP上,因此很多時(shí)候無(wú)法使用

          修改Hosts文件后即避免了DNS污染,直達(dá)目標(biāo)IP,即可正常訪(fǎng)問(wèn)了,當(dāng)然了,這種方法是全部通用嗎?

          答案:肯定不是,因?yàn)閯偛乓蔡岬搅耍W(wǎng)關(guān)層是可以控制某些IP禁止訪(fǎng)問(wèn)的

          整一個(gè)工具來(lái)驗(yàn)證一下猜想,順便看看我們的整個(gè)請(qǐng)求流程:

          軟件名:BestTrace

          我請(qǐng)求的域名是 github.githubassets.com,最終請(qǐng)求接收方IP和我Hosts配置的IP一致,那我換一個(gè) ?facebook.com

          可以看到,當(dāng)請(qǐng)求到達(dá) 221.183.46.249 這個(gè)IP時(shí),整個(gè)請(qǐng)求就被攔截下來(lái)了,因此這并不是萬(wàn)能的辦法

          除了訪(fǎng)問(wèn)GitHub,還有什么時(shí)候可能用到呢?

          比如下載 IDEA插件時(shí),如果發(fā)現(xiàn)老是刷新不出來(lái)插件庫(kù),或者下載失敗,就可以通過(guò)PING工具去配置最佳IP,方便下載~

          DNS除了解析還能做什么

          智能DNS

          網(wǎng)絡(luò)請(qǐng)求交由域名解析服務(wù)器來(lái)處理,分配到最佳的服務(wù)器IP上

          例如:請(qǐng)求的源頭是電信還是聯(lián)通等,如果是電信則將解析的IP分流到電信對(duì)應(yīng)的IP上,或者返回距離最近的服務(wù)器IP地址

          反向代理水平擴(kuò)展

          典型的互聯(lián)網(wǎng)架構(gòu)中,可以通過(guò)增加web-server來(lái)擴(kuò)充web層的性能,但反向代理nginx仍是整個(gè)系統(tǒng)的唯一入口

          如果系統(tǒng)吞吐超過(guò)nginx的性能極限,那么將難以擴(kuò)容,此時(shí)就需要dns-server來(lái)配合水平擴(kuò)展。

          即DNS解析服務(wù)器有序的把域名解析到不同的網(wǎng)關(guān)層,每次DNS解析請(qǐng)求,輪詢(xún)返回不同的ip,這樣就能實(shí)現(xiàn)nginx的水平擴(kuò)展,這個(gè)方法叫 “DNS輪詢(xún)

          最后

          參考資料:

          博客園 ?DNS解析全過(guò)程分析:https://www.cnblogs.com/kongtongshu/p/11069559.html

          除了解析域名,DNS還能干嗎:

          https://blog.csdn.net/shenjian58/article/details/107273629/



          往期精彩回顧

          ???上億數(shù)據(jù)怎么玩深度分頁(yè)?兼容MySQL + ES...

          ???Lambda初次使用很慢?從JIT到類(lèi)加載再到實(shí)現(xiàn)原理

          ???設(shè)計(jì)模式總篇:從為什么需要原則到實(shí)際落地

          ???Hello!GitHub 好用好玩值得收藏的開(kāi)源項(xiàng)目集合


          如果覺(jué)得對(duì)你有用的話(huà),不要忘記點(diǎn)個(gè)贊啊~ ? ?也可以?huà)呙瓒S碼關(guān)注我,一起朝著技術(shù)人的頂峰前進(jìn)!



          瀏覽 68
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产三级a三级三级 | 欧美人与禽乱婬A片 | 国产福利在线视频 | 亚洲a在线观看 | 看黄色免费片 |