常見網路問題

舉凡無法上網、網頁出現 404、靜態 IP 及浮動 IP 是什麼的等等問題,都是很常見的網路相關問題。接下來,我們來淺出不深入的看看這些問題背後的原理,以及如何應對吧。

為什麼明明連上了 Wi-Fi,卻還是上不了網?

有沒有遇過手機或筆電連上了 Wi-Fi,而且明明是滿格,卻還是上不了網呢?

狀況一:你連的 Wi-Fi 根本沒有連網

有些人對 Wi-Fi 的誤解就是:Wi-Fi 訊號的強弱就代表你的連網速度。當然不是!Wi-Fi 訊號強弱僅僅代表你的設備和 AP 間的連線訊號強弱而已(何謂 AP,請見:區網內的裝置:AP, Switch, Router)。

我們來看看設備透過 Wi-Fi 連網的過程

透過 Wi-Fi 到網際網路

第 1 段:手機或筆電連到 AP。通常距離遠一些,Wi-Fi 訊號就弱一些,網路速度變慢也就是正常的;如果沒有訊號,第一階段的連線都斷了,自然也就上不了網。

第 2 段:AP 到 Router(路由器)。這中間可能還包含一些網路設備,像是 Hub, Switch 等等(區網內的裝置:AP, Switch, Router),但最終還是會接到 Router,透過 ISP(網路服務供應商)讓你連上網際網路。在這裡如果有某條線老舊了、沒接好而導致 AP 連不到 Router,那麼你的 Wi-Fi 訊號就算是滿格也上不了網。

第 3 段:Router 到 Internet。如果你的線都有接好,還是沒有辦法上網,那就有可能是 Router 的問題了,有可能是壞了,但更常見的錯誤是設定沒有設好。例如 ISP 可能會提供你一組帳號密碼(透過 PPPoE 協定),卻沒有設定;也有可能是透過分配 靜態 IP 位置的方式,需要額外設定 IP 位置、子網路遮罩等等卻設定錯誤等等。

狀況一:疑難排解

檢查線路

首先要做的就是檢查第二段及第三段的線路是否正常,除了用眼睛看設備、線路外表識別之外,也可以用一般網路線檢測器來測試線材是否損壞。

RJ45 Tester(來源:Wikimedia Commons)

連接 Router 介面

再來可以透過瀏覽器直接連連看 Router 的 Web UI(網頁版介面),來看看第 2 段從 AP 到 Router 的路是否通暢。

具體的做法便是打開瀏覽器,網址列輸入路由器的 IP 位置,例如 http://192.168.1.1 便是常見的預設 IP 位置。實際 IP 位置取決於你的 Router 是什麼品牌、型號,一般來說同個品牌的預設 IP 位置都會是接近的,例如 TP-Link 可能是 192.168.1.1, 192.168.0.1;Asus 可能是 192.168.1.1, 192.168.2.1 等等。

找到你的路由器 IP 位置,在瀏覽器上輸入後,如果有顯示網頁(通常是登入畫面),就代表這一段的線路是沒問題的,若是無法上網很有可能就是路由器的設定問題囉。

而上述提到的都是所謂的「預設」IP 位置,也就是說有可能會被人為改動的。這時候打上 Router 提供的預設 IP 位置開不了網頁的話,可以用下面的方法確認你所連到的 Router,其 IP 位置為何。

找到你的 Router IP 位置

如果你還算熟悉 Terminal 的操作,可以下一些簡單指令的話,可以在 Windows 底下的 Terminal 打上 ipconfig,或是 Mac 底下的 Terminal 打上 route get default

用 Windows 的話,透過 Terminal 打上 ipconfig,找到 Default Gateway 後的內容即可(有分 IPv6 及 IPv4 不同版本的 Protocol)。

Windows ipconfig

若在 Mac 中,打上 route get default,找到 gateway 後面的內容即可。

Mac router get default

如果不熟悉 Terminal 的操作,也可以直接在不同作業系統中的網路設定中尋找一下相關的資訊,找到 Gateway(閘道)或 Router 等字樣。

Windows 網路設定資訊

MAC 網路設定資訊

找到的 IP 位置就會和你在 Terminal 中所看到的一樣。 若你的 Terminal 或網路設定中就是找不到 Router 的相關資訊,那很有可能在你的設備到 Router 之間,某個部分設定錯誤或甚至壞掉了。

若找的到 Router 的 IP 位置,基本上這條路就是通的,可以進入 Router 裡做更進一步的檢驗。

檢查 Router 設定

在台灣,使用 ISP 提供的上網服務,一般都不外乎是:PPPoE、DHCP 及 Static 這三種連線類型。

通常來說,直接和 ISP 申請的家用網路,會給你一組帳號密碼,使用的就是 PPPoE 的協定,用帳號及密碼驗證你的身份來提供上網服務。

如果你的 Router 接在其它 Router 底下、或是申請 Cable Modem 的看電視及上網服務,那種電腦直接接一條網路線上去就可以用的,那用的就是 DHCP 了。

最後一種是 Static,俗稱固定 IP,這種設定可能會出現在學校宿舍、公司網路或是特別向 ISP 所申請。

以下來簡略聊聊這三種不同獲取網路連線的 Protocol。

PPPoE
PPPoE 是 Point-to-Point over Ethernet 的縮寫,其中的 PPP 是在 OSI 模型中資料連結層的一種協定,後面加上個 over Ethernet 就表示將此協定實做在 Ethernet(乙太網路)的架構上。

PPP 本身定義了驗證身份的部分,這也就是為何選擇此種連線方式要輸入其提供的帳號及密碼,而由於乙太網路定義了 MAC Address,PPPoE 的傳輸過程中就會附帶此資訊,藉此找到訊息的目的節點為何。

DHCP
DHCP 則是 Dynamic Host Configuration Protocol 的縮寫,通常也沒有什麼人會把這個協定再翻成中文說出來,直接用縮寫來稱呼。

除了 Router 上可能用這個協定來設定之外,一般的設備和 Router 取得區網內的 IP Address 也大多透過這個協議。DHCP 的 Dynamic:動態,說的就是你接上網路線或連上我的 Wi-Fi 後,我就動態分配一個 IP Address 給你。

這種設定最簡單方便,什麼資訊都不必多填,只要選擇連線方式為 DHCP 即可,比起接下來的 Static 方便太多。

Static
Static,或稱為手動、Manually,就是自己填 IP 位置。不像 PPPoE、DHCP,IP 位置是在 ISP 那端決定的,Static 的模式下你需要自己輸入以下資訊

  • IP Address(IP 位置)
  • Subnet Mask(子網路遮罩)
  • Default Gateway (預設閘道,或是 Router IP Address)

有些人會和 ISP 申請固定 IP,可能是為了要架設網站類的服務,需要不是浮動的 IP,那麼 ISP 就會提供以上資訊讓你輸入。

被指派的 IP 位置、子網路遮罩和預設閘道的資訊組合,可以定義出你所屬於的區域網路,至於如何定義,我們且待之後聊聊。

小結
確認你的 Router 是直接和 ISP 連線,亦或是連接至學校、公司所建立的網路,並基於提供的連線方式是 PPPoE, DHCP 還是 Static 來取得詳細資訊。在 Router 上設定後,第三條路徑最有可能的問題基本上就能排除了。

狀況二: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 位置為 216.58.200.46,當我們透過瀏覽器打上 https://www.google.com 時,實際上我們的電腦會先詢問 DNS Server,剛剛打的 google.com 要對應到哪個 IP 位置。

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

這張圖片顯示的就是我們和 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

狀況二:移難排解,手動設定 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. A List of Common Default Router IP Addresses
  2. D-Link TW - 如何確認所在環境的上網類型是 PPPoE、DHCP 或固定 IP?
  3. Wiki - PPPoE
  4. Wiki - DHCP
  5. Wiki - PPP
  6. What Is My IP Address - What are PPP and PPPoE?
  7. Wiki - DNS
  8. Wiki - ping

圖片來源

  1. Wikimedia Commons - RJ45 Tester