溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux系統route命令怎么用

發布時間:2022-01-25 10:30:59 來源:億速云 閱讀:180 作者:小新 欄目:開發技術
# Linux系統route命令怎么用

## 一、route命令概述

### 1.1 什么是路由表

路由表(Routing Table)是Linux內核中存儲網絡路由信息的核心數據結構,它決定了數據包如何從源主機傳輸到目標主機。路由表本質上是一個包含多條路由規則的數據庫,每條規則定義了:

- 目標網絡或主機地址
- 子網掩碼
- 網關地址
- 網絡接口
- 度量值(Metric)
- 其他控制標志

在Linux系統中,路由表分為多個優先級層次:
- 主路由表(main table)
- 本地路由表(local table)
- 默認路由表(default table)
- 自定義路由表(可通過ip rule管理)

### 1.2 route命令的作用與地位

`route`命令是Linux系統中用于查看和操作IP路由表的傳統工具,屬于net-tools軟件包的一部分。雖然現代Linux發行版推薦使用`ip route`命令(來自iproute2套件),但route命令仍然被廣泛使用,特別是在較老的系統和腳本中。

主要功能包括:
- 顯示當前路由表
- 添加/刪除靜態路由
- 修改現有路由
- 設置默認網關

### 1.3 route與ip route的區別

| 特性        | route命令          | ip route命令        |
|------------|--------------------|--------------------|
| 所屬工具集   | net-tools          | iproute2           |
| 語法復雜度   | 相對簡單           | 更復雜但更靈活      |
| 功能范圍     | 基本路由管理       | 高級路由功能        |
| 未來發展     | 逐步淘汰           | 推薦使用           |
| 輸出格式     | 表格形式           | 更詳細的顯示        |

## 二、route命令安裝與基本語法

### 2.1 安裝route命令

大多數Linux發行版默認已安裝net-tools包,如果未安裝可執行:

```bash
# Debian/Ubuntu
sudo apt install net-tools

# RHEL/CentOS
sudo yum install net-tools

# Arch Linux
sudo pacman -S net-tools

2.2 命令基本語法格式

route [-v] [-A family] [-4|-6] 
      add [-net|-host] target [netmask Nm] [gw Gw] [metric M] 
      [[dev] If]
      del [-net|-host] target [netmask Nm] [gw Gw] [metric M] 
      [[dev] If]

常用參數說明: - -n:以數字形式顯示地址(不解析主機名) - -v:顯示詳細信息 - add:添加路由 - del:刪除路由 - -net:目標是一個網絡 - -host:目標是一個主機 - netmask:指定子網掩碼 - gw:指定網關 - metric:設置路由metric值 - dev:指定網絡接口

三、查看路由表信息

3.1 顯示當前路由表

基本查看命令:

route

典型輸出示例:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    100    0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0

各列含義: - Destination:目標網絡或主機 - Gateway:網關地址,”0.0.0.0”表示不需要網關 - Genmask:網絡掩碼 - Flags:路由標志(U=啟用,G=網關,H=主機路由等) - Metric:路由距離 - Ref:路由引用計數 - Use:路由查找次數 - Iface:網絡接口

3.2 以數字形式顯示路由

避免DNS解析,加快顯示速度:

route -n

輸出示例:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0

3.3 查看IPv6路由表

route -A inet6

四、添加路由規則

4.1 添加默認網關

sudo route add default gw 192.168.1.1 eth0

參數說明: - default:表示默認路由 - gw 192.168.1.1:指定網關IP - eth0:指定出口網卡

4.2 添加網絡路由

sudo route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.2 eth0

4.3 添加主機路由

sudo route add -host 203.0.113.45 gw 192.168.1.3 eth0

4.4 添加路由并指定metric值

sudo route add -net 172.16.0.0 netmask 255.240.0.0 gw 192.168.1.4 metric 5 eth0

Metric值表示路由優先級,數值越小優先級越高。

五、刪除路由規則

5.1 刪除默認路由

sudo route del default

5.2 刪除特定網絡路由

sudo route del -net 10.0.0.0 netmask 255.0.0.0

5.3 刪除主機路由

sudo route del -host 203.0.113.45

六、高級路由配置

6.1 多網卡環境路由配置

當系統有多個網絡接口時,需要合理配置路由:

# 添加通過eth1訪問特定網絡的路由
sudo route add -net 192.168.2.0 netmask 255.255.255.0 dev eth1

# 設置不同metric值控制優先級
sudo route add -net 10.0.0.0/8 gw 192.168.1.1 metric 100 eth0
sudo route add -net 10.0.0.0/8 gw 192.168.2.1 metric 200 eth1

6.2 策略路由配置

雖然route命令本身不支持復雜的策略路由,但可以結合其他工具實現:

# 首先添加路由表
echo "200 custom" >> /etc/iproute2/rt_tables

# 使用ip命令添加規則(route命令無法完成)
ip rule add from 192.168.1.100 lookup custom
ip route add default via 192.168.1.254 dev eth0 table custom

6.3 持久化路由配置

通過route命令添加的路由在重啟后會丟失,需要持久化配置:

Ubuntu/Debian:

編輯/etc/network/interfaces:

auto eth0
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    up route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.2

RHEL/CentOS:

創建/etc/sysconfig/network-scripts/route-eth0:

10.0.0.0/8 via 192.168.1.2 dev eth0

七、常見問題排查

7.1 路由配置不生效

檢查步驟: 1. 確認路由已正確添加:route -n 2. 檢查網絡接口狀態:ip link show 3. 測試網絡連通性:ping -R 目標地址 4. 檢查防火墻設置:iptables -L

7.2 路由沖突處理

當出現多個相同目標的路由時:

# 查看詳細路由信息
ip route show exact 192.168.1.0/24

# 刪除不需要的路由
sudo route del -net 192.168.1.0 netmask 255.255.255.0

7.3 診斷網絡連通性問題

使用traceroute診斷路由路徑:

traceroute -n 8.8.8.8

八、實際應用案例

8.1 企業網絡多出口配置

# 主線路(電信)
sudo route add default gw 221.5.88.1 eth0 metric 100

# 備份線路(聯通)
sudo route add default gw 112.94.1.1 eth1 metric 200

# 特定網段走專線
sudo route add -net 10.0.0.0/8 gw 192.168.100.1 eth2

8.2 VPN環境路由配置

# 添加VPN路由
sudo route add -net 172.16.0.0 netmask 255.240.0.0 dev tun0

# 排除公司內網不走VPN
sudo route add -net 192.168.0.0 netmask 255.255.0.0 gw 原網關IP eth0

8.3 容器網絡路由配置

# Docker容器網絡路由
sudo route add -net 172.17.0.0 netmask 255.255.0.0 dev docker0

# 允許其他主機訪問容器
sudo route add -net 172.17.0.0/16 gw 容器宿主機IP

九、安全注意事項

9.1 路由配置的安全風險

  1. 路由劫持風險:錯誤配置可能導致流量被劫持
  2. 信息泄露:不當路由可能使內部流量暴露在公網
  3. 拒絕服務:錯誤路由可能導致網絡不可達

9.2 最佳安全實踐

  1. 限制路由修改權限:

    sudo chmod 640 /sbin/route
    sudo chown root:netadmin /sbin/route
    
  2. 定期審計路由表:

    # 保存當前路由快照
    route -n > /var/log/routes/$(date +%Y%m%d).log
    
  3. 使用網絡命名空間隔離敏感路由:

    ip netns add secure-env
    ip netns exec secure-env route add -net 10.10.0.0/24 dev veth0
    

十、route命令的未來發展

10.1 net-tools的淘汰趨勢

隨著Linux內核網絡棧的發展,net-tools工具集(包括route)已經停止維護: - 最后穩定版本發布于2011年 - 缺少對新網絡特性的支持(如VRF、多路徑路由等) - 逐漸被iproute2替代

10.2 遷移到ip route的建議

常用命令對比:

操作 route命令 ip route命令
顯示路由 route -n ip route show
添加默認路由 route add default gw 192.168.1.1 ip route add default via 192.168.1.1
添加網絡路由 route add -net 10.0.0.0/8 gw… ip route add 10.0.0.0/8 via…
刪除路由 route del -net 10.0.0.0/8 ip route del 10.0.0.0/8

10.3 自動化路由管理工具

現代基礎設施中推薦使用專業工具管理路由: - NetworkManager:桌面和服務器網絡管理 - systemd-networkd:基于systemd的網絡配置 - BGP/OSPF:通過Quagga/FRR實現動態路由 - SDN控制器:如OpenDaylight、ONOS等

附錄A:route命令完整參數說明

Usage: route [-nNvee] [-FC] [<AF>]           List kernel routing tables
       route [-v] [-FC] {add|del|flush} ...  Modify routing table for AF

       route {-h|--help} [<AF>]              Detailed usage syntax
       route {-V|--version}                  Display version/author info

Options:
  -v, --verbose            be verbose
  -n, --numeric            don't resolve names
  -e, --extend             display other/more information
  -F, --fib                display Forwarding Information Base (default)
  -C, --cache              display routing cache instead of FIB
  -4                       shortcut for -A inet
  -6                       shortcut for -A inet6

<AF>=Use -A, --af; default: inet
List of possible address families (which support routing):
  inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25) 
  netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP) 
  x25 (CCITT X.25)

附錄B:相關命令參考

  1. ip命令

    ip route show
    ip route add/del
    
  2. 網絡診斷工具

    netstat -rn
    ss -r
    traceroute
    mtr
    
  3. 網絡配置工具

    nmcli
    ifconfig
    ifup/ifdown
    

附錄C:推薦學習資源

  1. 官方文檔:

    • man route
    • man ip-route
  2. 在線資源:

    • Linux Documentation Project (tldp.org)
    • Kernel.org網絡文檔
  3. 專業書籍:

    • 《Linux高級路由與流量控制》
    • 《TCP/IP詳解 卷1:協議》

”`

注:本文實際約4500字,要達到10450字需要進一步擴展每個章節的詳細內容,增加更多示例、場景分析和技術細節。由于篇幅限制,這里提供了完整框架和主要內容,您可以根據需要擴展具體章節。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女