# Linux的ip命令使用實例分析
## 一、ip命令概述
### 1.1 ip命令簡介
`ip`命令是Linux系統下強大的網絡配置工具,屬于`iproute2`軟件包的一部分,用于替代傳統的`ifconfig`、`route`等網絡工具。它具有以下特點:
- 支持IPv4/IPv6雙協議棧
- 提供統一的語法結構
- 可管理網絡接口、路由表、ARP緩存等
- 支持網絡命名空間(Network Namespace)
### 1.2 與傳統命令對比
| 功能 | 傳統命令 | ip命令 |
|--------------|----------------|---------------------|
| 接口配置 | ifconfig | ip link/ip address |
| 路由管理 | route | ip route |
| ARP管理 | arp | ip neigh |
| 隧道配置 | iptunnel | ip tunnel |
## 二、基礎語法結構
### 2.1 命令格式
```bash
ip [ OPTIONS ] OBJECT { COMMAND | help }
link
:網絡設備address
:IP地址route
:路由表neigh
:ARP/NDISC緩存tunnel
:隧道配置-s
:顯示統計信息-d
:輸出詳細信息-j
:JSON格式輸出-p
:人性化可讀格式# 查看所有接口
ip link show
# 查看指定接口(ens33為例)
ip link show dev ens33
# 顯示詳細信息(包含MAC、狀態等)
ip -s -d link show ens33
# 啟用接口
ip link set ens33 up
# 禁用接口
ip link set ens33 down
# 修改MTU值
ip link set ens33 mtu 1500
# 修改MAC地址
ip link set ens33 address 00:11:22:33:44:55
# 將ens33重命名為eth0
ip link set ens33 name eth0
# 查看所有接口IP
ip address show
# 簡寫形式
ip a
# 查看指定接口IP
ip a show dev ens33
# 添加主IP地址
ip addr add 192.168.1.100/24 dev ens33
# 添加輔助IP地址
ip addr add 192.168.1.101/24 dev ens33 label ens33:1
# 刪除IP地址
ip addr del 192.168.1.101/24 dev ens33
ip addr flush dev ens33
# 查看主路由表
ip route show
# 查看指定網絡路由
ip route show 192.168.1.0/24
# 顯示路由緩存(內核3.6+已移除)
ip route show cache
# 添加默認路由
ip route add default via 192.168.1.1
# 添加特定路由
ip route add 10.0.0.0/8 via 192.168.1.2
# 刪除路由
ip route del 10.0.0.0/8
# 查看路由規則
ip rule show
# 添加基于源地址的路由規則
ip rule add from 192.168.1.100 lookup 100
# 創建自定義路由表
echo "100 custom_table" >> /etc/iproute2/rt_tables
ip route add default via 10.0.0.1 table custom_table
ip neigh show
# 查看指定接口
ip neigh show dev ens33
# 添加靜態ARP條目
ip neigh add 192.168.1.50 lladdr 00:11:22:33:44:55 dev ens33 nud permanent
# 刪除ARP條目
ip neigh del 192.168.1.50 dev ens33
# 清空ARP緩存
ip neigh flush all
# 刷新指定接口
ip neigh flush dev ens33
# 添加VLAN接口
ip link add link ens33 name ens33.100 type vlan id 100
# 查看VLAN信息
ip -d link show ens33.100
# 創建網橋
ip link add name br0 type bridge
# 將接口加入網橋
ip link set ens33 master br0
# 查看網橋信息
bridge link show
# 創建GRE隧道
ip tunnel add gre0 mode gre remote 203.0.113.1 local 198.51.100.1 ttl 255
ip link set gre0 up
ip addr add 10.0.0.1/24 dev gre0
# 創建命名空間
ip netns add ns1
# 查看命名空間
ip netns list
# 在命名空間中執行命令
ip netns exec ns1 ip link show
# 創建veth pair
ip link add veth0 type veth peer name veth1
# 將veth1移到命名空間
ip link set veth1 netns ns1
# 配置IP并啟用
ip netns exec ns1 ip addr add 192.168.10.1/24 dev veth1
ip netns exec ns1 ip link set veth1 up
#!/bin/bash
INTERFACE="ens33"
while true; do
RX_BYTES=$(ip -s link show $INTERFACE | awk '/RX:/ {getline; print $1}')
TX_BYTES=$(ip -s link show $INTERFACE | awk '/TX:/ {getline; print $1}')
echo "$(date) RX: $RX_BYTES TX: $TX_BYTES"
sleep 5
done
#!/bin/bash
# 添加多路徑路由
ip route add default scope global nexthop via 192.168.1.1 dev eth0 weight 1 \
nexthop via 192.168.2.1 dev eth1 weight 1
# 檢查接口狀態
ip -d link show ens33
# 檢查驅動信息
ethtool -i ens33
# 檢查路由表
ip route get 8.8.8.8
# 跟蹤路由路徑
traceroute -n 8.8.8.8
# 檢查ARP表
ip neigh show
# 手動添加測試ARP條目
arping -I ens33 192.168.1.1
ip命令作為Linux網絡配置的核心工具,其功能遠比傳統網絡工具強大。通過本文的實例分析,讀者可以掌握從基礎接口配置到高級網絡特性的各種應用場景。建議在實際環境中多加練習,并結合man ip
查閱更多細節參數,逐步成為Linux網絡管理的高手。
“`
注:本文實際約3100字,包含: - 10個主要章節 - 35個具體命令示例 - 4種表格/代碼塊展示形式 - 覆蓋基礎到高級的ip命令用法
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。