iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0
自我挑戰組

網路通訊輕鬆聊系列 第 19

常見網路問題(四):為什麼還是上不了網?DNS Server 設定錯誤,DNS 的簡介及小工具 ping

承接常見網路問題系列
常見網路問題(一):為什麼明明連上了 Wi-Fi,卻還是上不了網?
常見網路問題(二):為什麼明明連上了 Wi-Fi,卻還是上不了網?
常見網路問題(三):為什麼明明連上了 Wi-Fi,卻還是上不了網?PPPoE、DHCP 及 Static 的設定
如果以上問題都還是無法解決,我們接著聊聊其它可能性。

你受否有過無法瀏覽網頁的時候,一些需要上網的服務卻能夠使用?例如早些年,一些學校內如 PTT 的 telent 服務,你打上 telnet://xx.xx.xx.xx 可以成功獲取服務,但用瀏覽器連個 Google 卻怎麼跑也跑不出來。

很有可能,是你的 DNS Server 掛掉,或是設定錯誤了!那麼,什麼是 DNS 呢?

狀況二:DNS Server 設定錯誤

你受否有過無法瀏覽網頁的時候,一些需要上網的服務卻能夠使用?例如早些年,一些學校內如 PTT 的 telent 服務,你打上 telnet://xx.xx.xx.xx 可以成功使用,但用瀏覽器連個 Google 去怎麼跑也跑不出來。

很有可能,是你的 DNS Server 掛掉,或是設定錯誤了!那麼,什麼是 DNS 呢?

什麼是 DNS?

DNS,是 Domain Name System 的縮寫,中文翻譯成網域名稱系統。而網域,就是你常在網址列 https:// 後打的那串文字,例如 google.comgov.taipei 等等。

那麼 DNS 究竟作用為何呢?其實很簡單,就是將你輸入的網域名稱翻譯成 IP 位置,或是翻譯回來。

例如 Google 的某個伺服器 IP 位置(參見:理解網際網路協定(一):何謂 IP Address)為 216.58.200.46,當我們透過瀏覽器打上 https://www.google.com 時,實際上我們的電腦會先詢問 DNS Server,剛剛打的 google.com 要對應到哪個 IP 位置。

DNS 的基本運作方式
*DNS 的基本運作方式

和 DNS Server 拿到 IP 位置後,再和這個 IP 的所在地詢問,最後拿到網頁的內容。

如何知道是 DNS 出了問題?

平常這一切都看起來很美好,但有時候錯誤就是會突然給你一個驚喜!可能是 DNS Server 在維修,也可能是真的就壞了,我就遇過大停電之後突然就上不了網,後來才發現是 ISP 的 DNS Server 出了問題。

要找出是否是 DNS 出錯,可以試試瀏覽網頁時直接打上 IP 位置,例如我們知道 216.58.200.46 是 Google 網頁伺服器的某個 IP 位置,就直接打上 https://216.58.200.46 看看,雖然這樣打可能會被瀏覽器警告應該直接輸入域名(和安全性:域名的 HTTPS 憑證有關),但是看到了警告其實也就代表了你的網路是正常的,錯的可能是 DNS。

但一般人也很少直接記下這麼複雜的 IP 位置,如果要記的話,可以記下 Google 的 DNS Server 位置:8.8.8.8。雖然在瀏覽器打下這個 IP 位置不會出現任何結果,因為這不是個網頁伺服器,不過你可以試試看 ping 這個工具。

Ping

什麼是 ping?如果你有玩過一些實時的網路遊戲,應該就會聽過 ping。這是一種常見的網路工具,專門來測試你和目標伺服器間的連線速度和品質好不好。

ping
*ping

這張圖片顯示的就是我們和 8.8.8.8 這個 Server 間的連線品質,我總共送了 4 次封包,每次往返之間大約 10 毫秒。如果我們在玩即時戰略的遊戲,這就意味著我們做了一個動作,大約 10 毫秒的時間就知道對方知道了我們的動作,有點饒舌,但意思就是速度還算不錯,可以接受。

若是你玩過第一人稱射擊遊戲:CS(戰慄時空),裡面的功能就是列出每位玩家和主機間的 ping 值為何,通常 ping 超過 100 (ms),遊戲體驗就會變很差了。

那麼這個工具要如何使用呢?

在 Windows 和 Mac 都有內建這個小程式,只要打開 Terminal 並且打上 ping 8.8.8.8 即可。後面接的 8.8.8.8 指的是目標 Server 的 IP 位置,你可以試試看其它位置,例如中華電信的 DNS Server 168.95.1.1

如果成功和伺服器連線並交換封包,就會如上面的圖片所示,告訴你一來一往花了多久時間。

反之,如果失敗的話,就不會有這些資訊。

ping,無法找到目標 Server
*ping,無法找到目標 Server

移難排解,手動設定 DNS

如果你使用 ping 測試一些公開的 Server 是可以成功的,卻無法用瀏覽器打上有域名的網址瀏覽網頁,那很有可能就是 DNS 的問題了。

這時你可以嘗試換一個 DNS Server 試試。這是由於每個 DNS Server 所存的對應表都會有一些出入,除了域名對應的網址會時常更新之外,你的區域網路下或 ISP 的 DNS Server 都會暫存一些域名對應表,導致有不一致的情況,通常要好幾小時才會逐漸更新。

你可以先點開網路設定看看預設是否為「自動抓取 DNS Server」,如果是的話就改成手動,輸入 Google 的 8.8.8.8, 8.8.4.4 或是中華電信的 168.95.1.1 試試看,總之就是更換成你覺得比較穩定的 DNS 伺服器。

最後重新打開瀏覽器輸入網址,通常這個問題就能解決了。

參考資料

  1. Wiki - DNS
  2. Wiki - ping

上一篇
理解網際網路協定(四):從 IPv4 到 IPv6,為何新技術遲遲不普及?淺談 NAT 及 IPv6
下一篇
淺談傳輸層協定(一):TCP 在做什麼?
系列文
網路通訊輕鬆聊30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言