1. 程式人生 > >Caddy域名配置與QUIC協議

Caddy域名配置與QUIC協議

進行 lang flow log -i 顯示 udp協議 images 其他

1:配置域名和服務器

 因為要支持QUIC協議必須要有自己的域名和安全證書,因此需要有自己的域名服務器,首先自己購買一個域名,然後和阿裏雲公網之前申請的大陸服務器進行域名綁定,綁定後訪問網頁的時候顯示沒有備案,因為大陸的服務器和域名綁定的時候需要備案。備案過程很繁瑣,大約需要20個工作日。

為了方便起見,購買了一周的香港服務器,香港服務器是不需要備案的。

技術分享圖片

  首先將域名和香港服務器進行綁定和解析,如下圖 所示:

技術分享圖片

  綁定ip與域名後,顯示如下:

技術分享圖片

  在本例實例安全組中配置規則:

  因為QUIC協議走UDP端口,因此規則中除了其他配置規則外,還需要配置UDP協議規則:如下圖所示

  技術分享圖片

2:服務器上部署Caddy

  然後將caddy服務器部署到服務器上,並且讓其在QUIC模式下運行。

  技術分享圖片

  其中Caddyfile配置如下和上一章講到的配置一致,此處省略。

  通過命令可以看到UDP端口處於開啟狀態,如果沒有開啟QUIC協議,UDP默認是不開啟的,只開啟TCP:

  技術分享圖片

  技術分享圖片

  技術分享圖片

3:QUIC客戶端支持 

  要在瀏覽器中運行QUIC協議,首先瀏覽器必須支持QUIC,目前支持QUIC的瀏覽器有chrome。

  客戶端開啟QUIC:

  在瀏覽器中運行chrome://flags,將Experimental QUIC protocal選項由default改為Enabled,重啟瀏覽器。

  技術分享圖片

  運行www.flowerfireegoo.com

  技術分享圖片

  技術分享圖片

  從上圖中可以看出訪問域名的時候,服務器走的是caddy服務器。並且caddy默認提供安全證書。

  除此之外,還必須讓瀏覽器強制對於指定域名啟用quic 協議。

  在命令行輸入如下命令:

  chrome.exe --no-proxy-server --enable-quic --quic-host-whitelist="HOST" --origin-to-force-quic-on=HOST:PORT

  技術分享圖片

4:wireshark抓包以及碰到的問題 

  下載抓包軟件wireshark,重新運行網站,用wireshark進行抓包,並且過濾quic協議。

  技術分享圖片

  

  從上圖中,可以看到並沒有檢測到quic請求。

  在google瀏覽器中運行chrome://net-internals/#quic如下圖所示:

  技術分享圖片

  技術分享圖片

  

  可以看出google 62版本的瀏覽器支持的quic協議是39,但是caddy目前支持的最高QUIC協議版本是38,因此不兼容。

5:解決方案

  解決方法:下載低版本的google。

  因此我下了59版本的google,發現其支持caddy QUIC版本,通過命令行啟動:

  技術分享圖片 

  然後通過chrome://flags開啟QUIC支持,重新開啟服務器,在瀏覽器中運行www.flowerfireegoo.com。

  瀏覽器打開chrome://net-internals/#quic,刷新網站,如下所示:

  技術分享圖片

  通過抓包軟件,可以看到走的是QUIC協議:

  技術分享圖片

  

  

  

  

Caddy域名配置與QUIC協議