Linux 命令之 - ip
命令简介
ip
是一个用于管理和配置Linux内核网络堆栈的命令行工具。它是一个功能强大且灵活的工具,可以完成诸如配置网络接口、管理路由表、配置隧道等任务。ip
命令被设计为取代更早期的网络配置工具,如 ifconfig
和 route
。
命令格式
1 | ip [ OPTIONS ] OBJECT { COMMAND | help } |
其中:
- OPTIONS:是一些可选的命令行选项
- OBJECT: 表示要操作的对象,如
address
、link
、route
等 - COMMAND: 是要执行的操作命令,如
show
、add
、del
等
参数说明
对象 (OBJECT)
命令 (COMMAND)
命令实例
基础用法
1.显示网络接口信息
1 | $ ip link show |
2.启用/禁用网络接口
1 | $ ip link set dev eth0 up |
3.配置IP地址
1 | $ ip addr add 192.168.1.100/24 dev eth0 |
4.显示路由表
1 | $ ip route show |
5.添加/删除路由
1 | $ ip route add 10.0.0.0/24 via 192.168.1.1 dev eth0 |
6.显示ARP缓存
1 | $ ip neigh show |
7.管理网络命名空间
1 | $ ip netns add myns |
8.配置VLAN接口
1 | $ ip link add link eth0 name eth0.100 type vlan id 100 |
9.配置网桥接口
1 | $ ip link add name br0 type bridge |
10.配置隧道接口
1 | $ ip tunnel add tun0 mode ipip remote 10.0.0.1 local 10.0.0.2 |
扩展用法
1.配置策略路由:为来自 192.168.1.0/24
网段的流量创建一个单独的路由表 (table 10
)。
1 | $ ip rule add from 192.168.1.0/24 table 10 |
2.配置多播路由:为源地址 192.168.1.2
的多播流量 224.0.0.1
添加多播路由条目。
1 | $ ip mroute add 224.0.0.1 from 192.168.1.2 eth0 |
3.配置ECMP (Equal Cost Multi Path):为目标网段 10.0.0.0/24
配置了两条等价的下一跳路径,实现了等价多路径路由。
1 | $ ip route add 10.0.0.0/24 nexthop via 192.168.1.1 dev eth0 nexthop via 192.168.1.2 dev eth1 |
高级用法
1.网络命名空间
网络命名空间是一种Linux内核功能,它允许在单个系统上创建多个独立的网络堆栈实例。这对于构建虚拟机、容器或网络模拟环境非常有用。
1 | # 创建网络命名空间 |
2.网络策略路由
网络策略路由允许根据特定条件(如源地址、目标地址等)选择不同的路由表。这种技术可用于实现各种高级路由场景,如基于源地址的路由、多宿主主机等。
1 | # 创建新的路由表 |
3.隧道配置
ip
命令可以用于配置各种类型的隧道接口,如 GRE、IPIP、SIT 等。隧道接口可用于连接不同的网络,或实现一些特殊的网络功能。
1 | # 创建 GRE 隧道 |
以上就是关于 ip
命令的详细介绍和使用示例,希望对你有所帮助。如果还有任何疑问或需要进一步的帮助,欢迎随时提出。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 生活日志!
评论