設置路由:命令 ip route
、netstat
、ss
1. 路由的概念
今天我們要更深入地學習:配置路由,分析網路連接,研究端口。這裡就是網路管理真正的魔法開始的地方——我們會瞭解封包是如何跑來跑去的,以及為什麼在這方面你需要成為"路由的老大"。
路由其實不是什麼聽起來很複雜的東西,這可是現代網路的基礎。想像一下:你的電腦就像是一個旅客,它想去到另一台電腦(像是一家旅館),而路由就是它的道路和指示牌。如果沒有路由,旅客就會迷路,向路人問路(那些路人可能是DNS伺服器,但這裡先不提),或者乾脆待在家裡不動。
為什麼需要路由
每個網路設備都需要知道如何到達其他設備。比方說,如果你的電腦想發送請求到 example.com
,它需要知道:
- 封包應該發送到哪裡。
- 通過哪個閘道器或者介面完成這個過程。
路由分為兩種:
- 本地路由:針對你子網中的設備的指令(比如你的電腦和印表機)。
- 外部路由:針對位於子網之外的設備的指令(例如互聯網上的資源)。
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
的路由。封包會留在「家裡」,即本地網路。proto
和metric
– 這些是額外的參數,我們稍後會提到。
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. 實作:設定靜態路由
- 確認你可以訪問另一個子網路。
- 新增一條路由:
sudo ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0
- 檢查路由表:
ip route show
- 如果路由不再需要,刪除它。
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. 連接監控
- 用
netstat
或ss
查看你的電腦在監聽哪些端口。 - 在其他設備上打開 SSH 連接,看看它是否出現在連接列表中。
- 嘗試解讀命令的輸出。
我們深入了路由和連接監控的世界:現在你可以用 ip route
管理路由表,用 netstat
/ss
分析網絡連接了。這些工具就是你解決最棘手網絡問題的瑞士刀。想幫朋友解決「網路不通」的煩惱嗎?拿出你的新技能,大展身手吧!
下一次講解會更精彩:我們會探討 DNS 及其魔法。而現在——用 ip route
練習一下,看看資料包是怎麼找到回家的路的吧。
GO TO FULL VERSION