本日主題:實際操作網路診斷指令並看懂輸出 預計時間:2 小時(動手日) 對應主教材:第 2.7 節
一、今日學習目標
- [ ] 實際執行各個網路診斷指令
- [ ] 看懂每個指令的輸出
- [ ] 知道每個指令「在驗證什麼」
- [ ] 能根據輸出判斷問題所在
二、教材內容:逐個指令實作
在 Windows 開「命令提示字元(cmd)」或 PowerShell;Mac/Linux 開終端機。括號內為 Mac/Linux 對應。
2.1 ipconfig /all — 看自己的網路設定
ipconfig /all # (Mac/Linux: ifconfig 或 ip addr)
看什麼:IPv4 位址、子網路遮罩、預設閘道、DNS 伺服器、實體位址(MAC)、DHCP 是否啟用。
- 若 IP 是 169.254.x.x → 沒拿到 DHCP。
- 記下你的「預設閘道」位址,下一步會用到。
輸出範例與解讀
┌──────────────────────────────────────────────────┐
│ ipconfig /all 輸出重點解讀 │
├──────────────────────────────────────────────────┤
│ │
│ 乙太網路卡 區域連線: │
│ │
│ 描述 . . . . . . : Intel I219-V │
│ 實體位址 . . . . : AA-BB-CC-11-22-33 ← MAC │
│ DHCP 已啟用 . . : 是 ← 確認用 DHCP │
│ IPv4 位址 . . . : 192.168.1.50 ← 你的 IP │
│ 子網路遮罩 . . . : 255.255.255.0 ← /24 │
│ 預設閘道 . . . . : 192.168.1.1 ← 路由器 │
│ DNS 伺服器 . . . : 192.168.1.10 ← 內部 DNS │
│ 8.8.8.8 ← 備用 DNS │
│ 租約取得 . . . . : 2024/01/15 08:30 │
│ 租約到期 . . . . : 2024/01/15 16:30 │
│ │
│ ✅ 正常:IP 不是 169.254、閘道和 DNS 都有值 │
│ ❌ 異常:IP 是 169.254 → DHCP 問題 │
│ ❌ 異常:閘道是空的 → 無法對外連線 │
│ │
└──────────────────────────────────────────────────┘
ipconfig 其他常用參數
| 指令 | 功能 | 使用時機 |
|---|---|---|
ipconfig |
簡短顯示 IP/遮罩/閘道 | 快速確認 IP |
ipconfig /all |
顯示完整設定 | 詳細排查 |
ipconfig /release |
釋放 DHCP 租約 | 重新取得 IP 前 |
ipconfig /renew |
重新向 DHCP 取得 IP | 解決 DHCP 問題 |
ipconfig /flushdns |
清除 DNS 快取 | DNS 查不到正確結果時 |
ipconfig /displaydns |
顯示 DNS 快取內容 | 檢查快取是否有問題 |
2.2 ping 127.0.0.1 — 測本機 TCP/IP
ping 127.0.0.1
驗證:本機網路堆疊正不正常(幾乎都會通;不通代表系統層級問題)。
輸出範例:
Pinging 127.0.0.1 with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128 ← 正常
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Ping statistics:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss) ← 0% 丟包
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms ← 延遲幾乎為 0
2.3 ping 閘道 — 測到路由器(區網)
ping 192.168.1.1 # 換成你剛記下的閘道
驗證:到路由器通不通。不通 = 區網問題(線、交換器、IP 設定)。
┌──────────────────────────────────────────┐
│ ping 閘道的結果判讀 │
├──────────────────────────────────────────┤
│ │
│ ✅ Reply → 區網正常 │
│ │
│ ❌ Request timed out → 區網有問題 │
│ → 檢查網路線 │
│ → 檢查交換器埠 │
│ → 確認 IP/遮罩是否正確 │
│ → 確認閘道 IP 是否正確 │
│ │
│ ⚠️ 高延遲 (time > 10ms) → 區網壅塞 │
│ → 正常區網應該 < 1ms │
│ │
└──────────────────────────────────────────┘
2.4 ping 8.8.8.8 — 測對外連線
ping 8.8.8.8
驗證:能不能連到網際網路。閘道通但這裡不通 = 對外連線或防火牆問題。
看重點:
- time=XXms:數字越小越快。國內通常 10~30ms,連到美國 150~250ms。
- Request timed out:不通。
- Packets Lost:丟包率。丟包 > 5% 就需要關注。
正常範例:
Reply from 8.8.8.8: bytes=32 time=12ms TTL=116 ← 正常
Reply from 8.8.8.8: bytes=32 time=11ms TTL=116
異常範例:
Request timed out. ← 不通
Request timed out.
丟包範例:
Packets: Sent = 4, Received = 2, Lost = 2 (50% loss) ← 50% 丟包,嚴重
ping 的常用參數
| 參數 | 功能 | 範例 |
|---|---|---|
-t |
持續 ping(Windows) | ping -t 8.8.8.8(按 Ctrl+C 停止) |
-n 次數 |
指定 ping 幾次 | ping -n 10 8.8.8.8 |
-l 大小 |
指定封包大小 | ping -l 1500 8.8.8.8 |
-a |
反解 IP 為主機名 | ping -a 192.168.1.1 |
2.5 nslookup — 測 DNS
ping www.google.com
nslookup www.google.com
驗證:IP 通但網址不通 = DNS 問題。nslookup 會顯示 DNS 伺服器與解析到的 IP。
nslookup 輸出範例:
Server: dns.tameco.local ← 你正在使用的 DNS 伺服器
Address: 192.168.1.10 ← DNS 伺服器的 IP
Non-authoritative answer: ← 從快取回答(正常)
Name: www.google.com
Address: 142.250.80.46 ← 解析到的 IP
如果 DNS 有問題會看到:
*** dns.tameco.local can't find www.google.com: Server failed
→ DNS 伺服器無法解析,確認 DNS 伺服器是否正常
nslookup 進階用法
# 指定用不同的 DNS 伺服器查詢
nslookup www.google.com 8.8.8.8
# 查詢 MX 記錄(郵件伺服器)
nslookup -type=mx google.com
# 查詢 NS 記錄(DNS 伺服器)
nslookup -type=ns google.com
# 查詢所有記錄
nslookup -type=any google.com
2.6 tracert / traceroute — 看封包路徑
tracert www.google.com # (Mac/Linux: traceroute)
驗證:封包經過哪些節點、卡在哪一跳(hop)。
輸出範例:
Tracing route to www.google.com [142.250.80.46]
1 <1 ms <1 ms <1 ms 192.168.1.1 ← 你的閘道
2 3 ms 2 ms 3 ms 10.0.0.1 ← ISP 第一跳
3 8 ms 7 ms 8 ms 203.1.2.1 ← ISP 核心
4 12 ms 11 ms 11 ms 72.14.209.81 ← Google 邊界
5 12 ms 12 ms 12 ms 142.250.80.46 ← 到達目的地
解讀:
• 每一行 = 一個路由節點(hop)
• 三個時間 = 三次測量的延遲
• 延遲突然大增的那一跳 = 可能的瓶頸
• 出現 * * * = 該節點不回應(不一定是問題,可能是防火牆擋了)
• 如果從某一跳開始全部 * * * = 可能在那裡斷了
┌──────────────────────────────────────────┐
│ tracert 結果判讀技巧 │
├──────────────────────────────────────────┤
│ │
│ 正常:每一跳延遲逐漸增加 │
│ 1: 1ms → 2: 3ms → 3: 8ms │
│ │
│ 異常:某一跳延遲突然暴增 │
│ 1: 1ms → 2: 3ms → 3: 500ms ← 瓶頸 │
│ │
│ 斷線:某一跳之後全部 * * * │
│ 1: 1ms → 2: 3ms → 3: * * * ← 斷了 │
│ │
└──────────────────────────────────────────┘
2.7 netstat — 看本機連線
netstat -an # 看本機所有連線與監聽的埠
輸出範例:
Proto Local Address Foreign Address State
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING ← 正在監聽 80 埠
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING ← 正在監聽 443 埠
TCP 192.168.1.50:52001 142.250.80.46:443 ESTABLISHED ← 已連到 Google
TCP 192.168.1.50:52002 13.107.42.14:443 ESTABLISHED ← 已連到 Microsoft
狀態說明:
LISTENING = 正在等待連線(伺服器模式)
ESTABLISHED = 已建立連線
TIME_WAIT = 連線剛關閉,等待殘餘封包
CLOSE_WAIT = 對方已關閉,等待本機關閉
netstat 常用參數
| 參數 | 功能 | 範例 |
|---|---|---|
-a |
顯示所有連線和監聽埠 | netstat -a |
-n |
用數字顯示(不解析名稱) | netstat -n |
-o |
顯示 PID(程序 ID) | netstat -ano(找哪個程式佔了埠) |
-b |
顯示程式名稱(需管理員) | netstat -b |
💡 實務技巧:
netstat -ano | findstr :80可以找出是哪個程式(PID)佔了 80 埠。
2.8 arp -a — 看區網 MAC 對應
arp -a # 看區網內 IP 對應的 MAC
輸出範例:
Interface: 192.168.1.50
Internet Address Physical Address Type
192.168.1.1 aa-bb-cc-11-22-33 dynamic ← 閘道的 MAC
192.168.1.10 dd-ee-ff-44-55-66 dynamic ← 伺服器的 MAC
192.168.1.20 11-22-33-44-55-66 dynamic ← 某台電腦的 MAC
Type 說明:
dynamic = 透過 ARP 學習到的(會過期)
static = 手動設定的(不會過期)
ARP(Address Resolution Protocol) 的作用:當電腦要傳資料給同網段的另一台時,需要知道對方的 MAC 位址。電腦會發 ARP 廣播「192.168.1.1 的 MAC 是什麼?」,閘道回應自己的 MAC,結果存入 ARP 快取表。
⚠️ 常見誤解
- 誤解:「ping 不通就是網路斷了」→ 不一定。有些防火牆會擋 ICMP(ping 使用的協定),導致 ping 不通但其他服務正常。先用其他方式確認(例如開網頁、SSH 連線)。
💡 面試加分小知識
- pathping(Windows)結合了 ping 和 tracert 的功能,會持續一段時間測量每一跳的延遲和丟包率,輸出更完整的網路路徑分析。
- mtr(Linux/Mac)也是 ping + traceroute 的結合,即時動態顯示。
- 面試時能說出「我會用 ipconfig 看設定、ping 測連通、nslookup 測 DNS、tracert 看路徑」這套組合,就能展現你有系統化的排查能力。
三、今日實作任務(產出)
任務:完成「指令練習紀錄」
把以下每個指令跑一遍,記錄輸出重點(截圖或文字)+ 一句「它驗證了什麼」:
- [ ]
ipconfig /all→ 驗證:我的 IP、閘道、DNS 設定 - [ ]
ping 127.0.0.1→ 驗證:本機 TCP/IP 堆疊 - [ ]
ping <你的閘道>→ 驗證:到路由器的區網連線 - [ ]
ping 8.8.8.8→ 驗證:對外網際網路連線 - [ ]
ping www.google.com→ 驗證:DNS 解析 + 對外連線 - [ ]
nslookup www.google.com→ 驗證:DNS 伺服器是否正常 - [ ]
tracert www.google.com→ 驗證:封包路徑和各節點延遲 - [ ]
netstat -an→ 驗證:本機的連線狀態和監聽埠 - [ ]
arp -a→ 驗證:區網 IP 與 MAC 的對應
進階實驗:
1. 把電腦 DNS 改成一個錯的位址(如 1.2.3.4),再 ping 網址看會怎樣(記得改回來)。
2. 用 ipconfig /release 釋放 IP,觀察 IP 變化,再用 ipconfig /renew 重新取得。
3. 用 ping -t 8.8.8.8 持續 ping,同時拔掉網路線,觀察什麼時候開始 timeout,插回去後多久恢復。
四、今日練習
Q1. 你的同事說「網路不通」,你拿到他的電腦後,第一個會下什麼指令?為什麼? Q2. ping 8.8.8.8 通但 ping www.google.com 不通,問題出在哪?你會下什麼指令驗證? Q3. tracert 顯示第 3 跳之後全部 * * *,代表什麼?
參考解答
**A1.** 第一個會下 `ipconfig /all`。 **理由**:ipconfig /all 可以一次看到最多的網路資訊:IP 位址(是否為 169.254 → DHCP 問題)、子網路遮罩、預設閘道(是否有值)、DNS 伺服器(是否正確)、DHCP 是否啟用、MAC 位址。這些資訊可以立刻排除一大半可能的問題。例如看到 169.254 就知道是 DHCP 問題,看到閘道是空的就知道是 IP 設定問題。 **A2.** 問題出在 **DNS 解析**。ping 8.8.8.8 通代表網路連線到 L3 都正常,但無法把網址轉成 IP = DNS 問題。 驗證指令: 1. `nslookup www.google.com` → 看 DNS 伺服器是否能回應 2. `nslookup www.google.com 8.8.8.8` → 用公用 DNS 測試,如果這個通代表是自己設定的 DNS 有問題 3. `ipconfig /all` → 確認設定的 DNS 伺服器位址是否正確 4. `ipconfig /flushdns` → 清除 DNS 快取後重試 **A3.** 代表封包在第 3 跳之後的某個節點被阻擋或該節點之後的路由有問題。可能的原因: - 第 3 跳的路由器之後的線路斷了 - 中間某個防火牆擋掉了 tracert 使用的 ICMP/UDP 封包 - ISP 的路由設備有問題 **判斷方式**:如果 ping 8.8.8.8 是通的但 tracert 中間有 * * *,通常只是中間的路由器不回應 ICMP,不是真的斷了。如果 ping 也不通,才是真的在那裡斷了。五、今日檢核
- [ ] 我跑過全部 9 個指令
- [ ] 我看得懂每個輸出的重點
- [ ] 我能說出每個指令驗證什麼
- [ ] 我做了至少一個進階實驗
六、延伸閱讀建議
| 資源 | 說明 |
|---|---|
| YouTube: NetworkChuck「ping tracert nslookup」 | 網路指令實作教學(英文有字幕) |
| YouTube: Professor Messer「Network Troubleshooting」 | CompTIA Network+ 的故障排除指令教學 |
| YouTube: 鳥哥的 Linux 私房菜 | Linux 網路指令教學(中文) |
| SS64 Command Line Reference | Windows/Linux 指令完整參考 |
| YouTube: David Bombal「Wireshark」 | 進階:用 Wireshark 抓封包分析(英文) |
⬅️ 上一天:Day 4 | 🏠 本週總覽 | ➡️ 下一天:Day 6 — 故障排除 SOP 演練