ip命令
ip
命令是 Linux 系统中用于配置和查看网络接口、路由、隧道等网络相关设置的工具。它是 ifconfig
命令的现代替代品,提供了更多功能和更强大的灵活性。以下是一些常用的 ip
命令及其作用:
1. 查看网络接口信息
ip addr
这个命令用于查看所有网络接口的详细信息,包括 IP 地址、MAC 地址、网络接口状态等。
如果你只想查看某个特定接口的信息,比如 eth0
,可以使用:
ip addr show eth0
2. 配置 IP 地址
ip addr add <ip_address>/<subnet_mask> dev <interface>
该命令用于为某个网络接口添加一个 IP 地址。例如:
ip addr add 192.168.1.10/24 dev eth0
这个命令给 eth0
网络接口添加了 192.168.1.10
的 IP 地址,子网掩码是 /24
。
3. 删除 IP 地址
ip addr del <ip_address>/<subnet_mask> dev <interface>
如果你想删除某个 IP 地址,可以使用这个命令。例如:
ip addr del 192.168.1.10/24 dev eth0
4. 查看路由表
ip route
这个命令用于查看系统的路由表。你可以看到系统如何根据目标地址选择路由。
例如,查看默认路由:
ip route show default
5. 添加路由
ip route add <destination_network> via <gateway> dev <interface>
例如,向路由表添加一个新路由:
ip route add 10.1.1.0/24 via 192.168.1.1 dev eth0
这个命令添加了一个路由,使得到 10.1.1.0/24
网段的流量通过网关 192.168.1.1
来转发。
6. 删除路由
ip route del <destination_network> via <gateway> dev <interface>
如果你想删除某个路由,可以使用这个命令。例如:
ip route del 10.1.1.0/24 via 192.168.1.1 dev eth0
7. 查看邻居表(ARP缓存)
ip neigh
这个命令显示邻居缓存(ARP表),列出系统已知的 IP 地址与对应的 MAC 地址。
8. 启用/禁用网络接口
ip link set dev <interface> up
ip link set dev <interface> down
这些命令分别用于启用或禁用某个网络接口。例如:
ip link set dev eth0 up
ip link set dev eth0 down
总结
ip
命令是非常强大且灵活的,涵盖了网络管理的方方面面。它可以配置和查看网络接口、路由、IP 地址、隧道、邻居缓存等信息,并且替代了许多老旧的命令,如 ifconfig
和 route
。
https://wangchujiang.com/linux-command/c/ip.html
使用 ip addr add
命令为网卡(如 eth0
)添加 IP 地址时,并不会影响该网卡当前已经绑定的 IP 地址,因为 ip addr add
操作会在该网卡上 附加 一个新的 IP 地址,而不是替换现有的 IP 地址。这是 Linux 网络栈的多地址功能的体现。
核心原因
- 网卡多地址支持:
- Linux 内核允许单个网络接口绑定多个 IP 地址。通过
ip addr add
,新地址会作为该网卡的附加地址,而现有地址保持不变。 - 默认行为是附加而非替换:
ip addr add
不会移除或覆盖已有的地址。要删除地址,需要明确使用ip addr del
命令。- 路由表和流量分发:
- 当网络接口上存在多个 IP 地址时,系统会根据路由规则或特定应用绑定的地址来决定如何处理流量。新地址的加入不会改变默认的路由或已有的流量分配。
示例
假设 eth0
当前已经绑定了 IP 地址 192.168.1.10/24
:
ip addr show eth0
输出可能类似于:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 192.168.1.10/24 scope global eth0
valid_lft forever preferred_lft forever
然后执行:
ip addr add 192.168.1.100/24 dev eth0
再次检查 eth0
的地址:
ip addr show eth0
输出:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 192.168.1.10/24 scope global eth0
valid_lft forever preferred_lft forever
inet 192.168.1.100/24 scope global secondary eth0
valid_lft forever preferred_lft forever
可以看到,新地址 192.168.1.100/24
被添加为 secondary 地址,而原有地址 192.168.1.10/24
依然存在。
注意事项
- 删除地址: 如果需要删除某个 IP 地址,使用
ip addr del
命令。例如:
ip addr del 192.168.1.100/24 dev eth0
-
多地址路由处理: 添加新 IP 地址后,如果需要特定流量通过该地址,可以配置对应的路由或规则。
-
永久性设置: 使用
ip addr add
是临时的,系统重启后会丢失。如果需要永久性配置,可以将 IP 地址添加到网络配置文件中(如/etc/network/interfaces
或/etc/sysconfig/network-scripts/
视操作系统而定)。
这样,ip addr add
的设计在灵活性上非常强,适合动态调整网络配置。