CodeGym /Adesua ahorow /Docker SELF /設置路由:命令 `ip route`、`netstat`、`ss`

設置路由:命令 `ip route`、`netstat`、`ss`

Docker SELF
等級 4 , 課堂 1
開放

設置路由:命令 ip routenetstatss

1. 路由的概念

今天我們要更深入地學習:配置路由,分析網路連接,研究端口。這裡就是網路管理真正的魔法開始的地方——我們會瞭解封包是如何跑來跑去的,以及為什麼在這方面你需要成為"路由的老大"。

路由其實不是什麼聽起來很複雜的東西,這可是現代網路的基礎。想像一下:你的電腦就像是一個旅客,它想去到另一台電腦(像是一家旅館),而路由就是它的道路和指示牌。如果沒有路由,旅客就會迷路,向路人問路(那些路人可能是DNS伺服器,但這裡先不提),或者乾脆待在家裡不動。

為什麼需要路由

每個網路設備都需要知道如何到達其他設備。比方說,如果你的電腦想發送請求到 example.com,它需要知道:

  1. 封包應該發送到哪裡。
  2. 通過哪個閘道器或者介面完成這個過程。

路由分為兩種:

  • 本地路由:針對你子網中的設備的指令(比如你的電腦和印表機)。
  • 外部路由:針對位於子網之外的設備的指令(例如互聯網上的資源)。

2. 路由表

路由表是一個包含規則的表格,它決定根據 IP 位址將封包發送到哪裡。這就像您電腦的 Google 地圖一樣:「如果你想去那裡,就通過這個閘道器走」。

試著輸出您的路由表:

ip route show

輸出範例:

default via 192.168.1.1 dev eth0 proto dhcp metric 100
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 metric 100

這是什麼意思:

  • default via 192.168.1.1: 如果封包沒有特定指明去哪,通過位址為 192.168.1.1 的閘道器送出。
  • dev eth0: 使用介面 eth0
  • 192.168.1.0/24: 這是一個針對子網 192.168.1.0/24 的路由。封包會留在「家裡」,即本地網路。
  • protometric – 這些是額外的參數,我們稍後會提到。

3. 命令 ip route

查看路由

要查看路由表,我們已經使用了 ip route show。你也可以添加過濾器,比如僅針對本地網路定義路由:

ip route show match 192.168.1.0/24

添加路由

你可以手動添加一條靜態路由,就像是自己設置路牌一樣。比如說,為了將所有到子網 10.0.0.0/24 的請求通過某個特定的 gateway 轉發:

sudo ip route add 10.0.0.0/24 via 192.168.1.1 dev eth0

解釋一下:

  • 10.0.0.0/24 – 目標子網。
  • via 192.168.1.1 – gateway,通過它發送封包。
  • dev eth0 – 封包出去的網卡介面。

刪除路由

如果你不再需要某條路由,可以使用以下命令刪除它:

sudo ip route del 10.0.0.0/24

4. 實作:設定靜態路由

  1. 確認你可以訪問另一個子網路。
  2. 新增一條路由:
sudo ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0
  1. 檢查路由表:
ip route show
  1. 如果路由不再需要,刪除它。

5. 指令 netstat

當需要分析目前的連線時,netstat 是系統管理員的一個老朋友(雖然已有更現代的替代工具如 ss,我們之後會談到)。

檢查活動的連線

netstat -tun

這是什麼意思:

  • -t – 顯示 TCP 連線。
  • -u – 顯示 UDP 連線。
  • -n – 使用數值地址(而非主機名稱)。

輸出範例:

Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 192.168.1.100:22        192.168.1.50:50240      ESTABLISHED

這是什麼意思:

  • 本地地址 192.168.1.100:22 – 你的電腦正在監聽第 22 埠口 (SSH)。
  • 遠端地址 192.168.1.50:50240 – 這是遠端主機連接到你的埠口。
  • ESTABLISHED – 這是一個活躍的連接,數據正在傳輸中。

監聽埠口

查看你的電腦正在「監聽」哪些埠口:

netstat -ltn

標誌 -l 顯示只有正在監聽的埠口,而 -t-n 我們已經討論過了。


6. 命令 ss

如果說 netstat 是恐龍,那 ss 就是來自未來的 DeLorean 車:運行速度更快,而且提供更多資訊。

檢查活動連接

ss -tun

輸出的示例與 netstat 類似,但速度更快,細節更多。

監聽端口

ss -tln

netstat 相同,但使用 ss 更方便、更現代化。


7. 連接監控

  1. netstatss 查看你的電腦在監聽哪些端口。
  2. 在其他設備上打開 SSH 連接,看看它是否出現在連接列表中。
  3. 嘗試解讀命令的輸出。

我們深入了路由和連接監控的世界:現在你可以用 ip route 管理路由表,用 netstat/ss 分析網絡連接了。這些工具就是你解決最棘手網絡問題的瑞士刀。想幫朋友解決「網路不通」的煩惱嗎?拿出你的新技能,大展身手吧!

下一次講解會更精彩:我們會探討 DNS 及其魔法。而現在——用 ip route 練習一下,看看資料包是怎麼找到回家的路的吧。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION