菜鸟科技网

IPRAN命令有哪些常用操作?

ip 命令是 Linux 系统中用于显示和管理路由、网络设备、策略路由和隧道的强大工具,它已经逐渐取代了老旧的 ifconfigroute 命令,成为现代 Linux 系统管理网络事实上的标准。

IPRAN命令有哪些常用操作?-图1
(图片来源网络,侵删)

ip 命令的基本语法

ip 命令的基本结构如下:

ip [ OPTIONS ] OBJECT { COMMAND | help }
  • OPTIONS: 修改 ip 命令行为的全局选项。
    • -s, -stats, -statistics: 输出更详细的统计信息。
    • -l, -list: 使用列表格式输出,更适合脚本。
    • -o, -oneline: 将每条信息输出到一行,方便解析。
    • -r, -resolve: 使用主机名而不是 IP 地址。
    • -4: 只显示 IPv4 信息。
    • -6: 只显示 IPv6 信息。
  • OBJECT: 要操作的网络对象,常见的有:
    • link: 网络接口(网卡、网桥等)。
    • addr: IP 地址。
    • route: 路由表。
    • rule: 路由策略。
    • neigh (或 neighbor): ARP/NDP 缓存(邻居表)。
    • maddr: 多播地址。
    • tunnel: IP 隧道。
  • COMMAND: 针对指定对象要执行的命令。
  • help: 显示指定对象(如 ip link help)的可用命令列表。

常用 ip 命令详解

下面我们通过最常用的几个 OBJECT 来了解 ip 命令的具体用法。

ip link - 管理网络接口

ip link 用于查看、启用、禁用和修改网络接口的属性。

  • 查看所有网络接口状态

    IPRAN命令有哪些常用操作?-图2
    (图片来源网络,侵删)
    # 显示所有网络接口的详细信息
    ip link show
    # 或者简写
    ip link
    # 使用 -s 获取更详细的统计信息(如接收/发送的字节数、包数)
    ip -s link show
    # 使用 -o 以单行格式显示,方便用 awk 等工具处理
    ip -o link show

    输出示例:

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
        link/ether 00:1c:23:45:67:89 brd ff:ff:ff:ff:ff:ff
    • UP/DOWN: 接口是否已启用。
    • mtu: 最大传输单元。
    • link/ether: MAC 地址。
    • state UP: 接口处于活动状态。
  • 启用或禁用接口

    # 启用 eth0 接口
    sudo ip link set eth0 up
    # 禁用 eth0 接口
    sudo ip link set eth0 down
  • 修改接口名称

    # 将 eth0 重命名为 mynet0
    sudo ip link set eth0 name mynet0
  • 修改 MAC 地址

    IPRAN命令有哪些常用操作?-图3
    (图片来源网络,侵删)
    # 将 eth0 的 MAC 地址改为新的地址
    sudo ip link set eth0 address 00:11:22:33:44:55

ip addr - 管理 IP 地址

ip addr 用于在接口上添加、删除和显示 IP 地址。

  • 显示所有接口的 IP 地址

    # 显示所有接口的 IP 地址信息
    ip addr show
    # 查看特定接口 eth0 的 IP 地址
    ip addr show eth0
    # 使用 -o 单行显示
    ip -o addr show

    输出示例:

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 00:1c:23:45:67:89 brd ff:ff:ff:ff:ff:ff
        inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
           valid_lft forever preferred_lft forever
    • inet: IPv4 地址。
    • inet6: IPv6 地址。
    • /24: 子网掩码长度。
    • brd: 广播地址。
  • 添加 IP 地址

    # 为 eth0 添加一个 IPv4 地址 192.168.1.101,子网掩码 24位
    sudo ip addr add 192.168.1.101/24 dev eth0
    # 为 eth0 添加一个 IPv6 地址
    sudo ip addr add 2001:db8::1/64 dev eth0
  • 删除 IP 地址

    # 从 eth0 上删除指定的 IPv4 地址
    sudo ip addr del 192.168.1.101/24 dev eth0

ip route - 管理路由表

ip route 用于查看、添加和删除系统的路由规则,决定数据包应该从哪个接口发往哪里。

  • 查看路由表

    # 显示完整的路由表
    ip route show
    # 或者简写
    ip route

    输出示例:

    default via 192.168.1.1 dev eth0 proto dhcp src 192.168.1.100 metric 100
        192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 metric 100
        192.168.1.1 dev eth0 proto dhcp scope link metric 100
    • default via ...: 默认网关。
    • 168.1.0/24 ...: 直连网络,通过 eth0 接口访问。
    • dev eth0: 出口设备。
    • via 192.168.1.1: 下一跳地址。
  • 添加路由

    # 添加一个默认网关 (如果路由表里没有 default 的话)
    sudo ip route add default via 192.168.1.1
    # 添加一条静态路由,目标网络 10.10.0.0/24 下一跳是 192.168.1.254
    sudo ip route add 10.10.0.0/24 via 192.168.1.254
    # 添加一条直连路由,指定从 eth0 接口访问 172.16.0.0/16
    sudo ip route add 172.16.0.0/16 dev eth0
  • 删除路由

    # 删除默认网关
    sudo ip route del default
    # 删除指定的静态路由
    sudo ip route del 10.10.0.0/24 via 192.168.1.254
  • 临时使路由失效(用于故障排查)

    # 将 eth0 接口的路由设为 down,但接口本身还是 UP 状态
    sudo ip link set eth0 down
    # 恢复
    sudo ip link set eth0 up

ip neigh - 管理 ARP/NDP 缓存

ip neigh 用于查看和管理 ARP (IPv4) 和 NDP (IPv6) 缓存,即“邻居表”。

  • 查看邻居表

    ip neigh show

    输出示例:

    168.1.1 dev eth0 REACHABLE
    192.168.1.102 dev eth0 STALE
    • REACHABLE: 节点是可达的。
    • STALE: 条目已过期,但可能仍然有效。
    • DELAY: 正在重新探测节点。
    • PROBE: 正在发送探测包。
    • FAILED: 探测失败。
  • 手动添加/删除邻居条目

    # 手动添加一个静态 ARP 条目
    sudo ip neigh add 192.168.1.200 lladdr 00:aa:bb:cc:dd:ee dev eth0
    # 删除一个邻居条目
    sudo ip neigh del 192.168.1.200 dev eth0

ip vs. ifconfigroute (对比)

功能 ip 命令 (现代) ifconfig / route (传统)
查看接口 ip link show ifconfig
启用/禁用 ip link set eth0 up/down ifconfig eth0 up/down
添加IP ip addr add 192.168.1.1/24 dev eth0 ifconfig eth0 192.168.1.1 netmask 255.255.255.0
查看路由 ip route show route -n
添加网关 ip route add default via 192.168.1.1 route add default gw 192.168.1.1

为什么推荐使用 ip

  1. 功能更强大: ip 提供了 ifconfigroute 的所有功能,并且增加了策略路由、隧道管理等高级功能。
  2. 输出更结构化: -oneline 选项的输出非常适合脚本编程,而 ifconfig 的输出格式比较杂乱。
  3. 设计更统一: ip 命令采用 OBJECT COMMAND 的统一语法,更容易学习和记忆。
  4. 持续发展: iproute2 套件是积极维护的,而 net-tools(包含 ifconfig)已基本停止开发。

ip 命令是每一位 Linux 系统管理员和网络工程师必须熟练掌握的工具,虽然初学时可能会觉得命令比 ifconfig 长,但一旦理解了 ip [OPTIONS] OBJECT COMMAND 的逻辑,就会发现它非常强大和灵活。

建议: 在日常工作中,有意识地使用 ip 命令替代 ifconfigroute,很快它就会成为你的得力助手,如果忘记了某个命令的用法,ip OBJECT help 是最好的老师。ip addr help 会列出所有与地址相关的子命令。

分享:
扫描分享到社交APP
上一篇
下一篇