ip
工具是 Linux 系统中用于网络配置和管理的强大工具。它是 net-tools
套件中 ifconfig
、route
等命令的现代替代品,具有更强大的功能和更灵活的配置选项。以下是 ip
工具的一些常见应用及其详细说明。
基本命令结构
ip
工具的基本命令结构为:
ip [ OPTIONS ] OBJECT COMMAND [ ARGUMENTS ]
OBJECT
是要操作的网络对象,比如link
(网络接口)、addr
(IP 地址)、route
(路由)等。COMMAND
是对对象执行的操作,比如add
(添加)、del
(删除)、show
(显示)等。
常见对象及其命令
1. 链路(link)
用于管理网络接口。
-
显示所有网络接口
ip link show
-
启用网络接口
sudo ip link set dev eth0 up
-
禁用网络接口
sudo ip link set dev eth0 down
-
修改网络接口的 MTU
sudo ip link set dev eth0 mtu 9000
2. 地址(addr)
用于管理 IP 地址。
-
显示所有接口的 IP 地址
ip addr show
-
显示特定接口的 IP 地址
ip addr show dev eth0
-
为接口添加 IP 地址
sudo ip addr add 192.168.1.10/24 dev eth0
-
删除接口的 IP 地址
sudo ip addr del 192.168.1.10/24 dev eth0
3. 路由(route)
用于管理路由表。
-
显示路由表
ip route show
-
添加默认网关
sudo ip route add default via 192.168.1.1
-
添加静态路由
sudo ip route add 192.168.2.0/24 via 192.168.1.2
-
删除静态路由
sudo ip route del 192.168.2.0/24
4. 邻居(neigh)
用于管理 ARP 表。
-
显示邻居条目(ARP 表)
ip neigh show
-
添加邻居条目
sudo ip neigh add 192.168.1.2 lladdr 00:11:22:33:44:55 dev eth0
-
删除邻居条目
sudo ip neigh del 192.168.1.2 dev eth0
示例应用
设置静态 IP 地址
-
清除接口现有的 IP 地址:
sudo ip addr flush dev eth0
-
为接口添加新的静态 IP 地址:
sudo ip addr add 192.168.1.100/24 dev eth0
-
启用接口:
sudo ip link set eth0 up
-
添加默认网关:
sudo ip route add default via 192.168.1.1
显示网络接口状态
显示所有网络接口及其状态:
ip link show
修改接口的 MTU
将 eth0
接口的 MTU 修改为 9000:
sudo ip link set dev eth0 mtu 9000
管理路由表
显示当前路由表:
ip route show
添加到 192.168.2.0/24 网络的静态路由:
sudo ip route add 192.168.2.0/24 via 192.168.1.2
删除到 192.168.2.0/24 网络的静态路由:
sudo ip route del 192.168.2.0/24
高级功能
1. IP 路由策略数据库(Policy Routing)
使用 IP 路由策略数据库进行多路由配置。
-
添加策略路由
sudo ip rule add from 192.168.1.0/24 table 1
-
添加路由表条目
sudo ip route add 192.168.2.0/24 dev eth0 table 1
2. IP 地址别名
为接口添加多个 IP 地址。
-
添加 IP 地址别名
sudo ip addr add 192.168.1.101/24 dev eth0
3. 管理 VLAN 接口
创建和配置 VLAN 接口。
-
创建 VLAN 接口
sudo ip link add link eth0 name eth0.100 type vlan id 100
-
启用 VLAN 接口
sudo ip link set dev eth0.100 up
-
为 VLAN 接口配置 IP 地址
sudo ip addr add 192.168.100.1/24 dev eth0.100
通过以上命令和示例,ip
工具提供了强大的网络管理功能,涵盖了网络接口配置、IP 地址管理、路由管理和邻居管理等多个方面。你可以根据需要组合使用这些命令,完成各种复杂的网络配置和管理任务。