跳转至

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 地址、隧道、邻居缓存等信息,并且替代了许多老旧的命令,如 ifconfigroute

https://wangchujiang.com/linux-command/c/ip.html

使用 ip addr add 命令为网卡(如 eth0)添加 IP 地址时,并不会影响该网卡当前已经绑定的 IP 地址,因为 ip addr add 操作会在该网卡上 附加 一个新的 IP 地址,而不是替换现有的 IP 地址。这是 Linux 网络栈的多地址功能的体现。

核心原因

  1. 网卡多地址支持:
  2. Linux 内核允许单个网络接口绑定多个 IP 地址。通过 ip addr add,新地址会作为该网卡的附加地址,而现有地址保持不变。
  3. 默认行为是附加而非替换:
  4. ip addr add 不会移除或覆盖已有的地址。要删除地址,需要明确使用 ip addr del 命令。
  5. 路由表和流量分发:
  6. 当网络接口上存在多个 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 依然存在。

注意事项

  1. 删除地址: 如果需要删除某个 IP 地址,使用 ip addr del 命令。例如:
ip addr del 192.168.1.100/24 dev eth0
  1. 多地址路由处理: 添加新 IP 地址后,如果需要特定流量通过该地址,可以配置对应的路由或规则。

  2. 永久性设置: 使用 ip addr add 是临时的,系统重启后会丢失。如果需要永久性配置,可以将 IP 地址添加到网络配置文件中(如 /etc/network/interfaces/etc/sysconfig/network-scripts/ 视操作系统而定)。

这样,ip addr add 的设计在灵活性上非常强,适合动态调整网络配置。