Linux ip 命令和示例

Linux ip command 是一个命令行实用程序,用于显示/更新 IP 地址、内核路由表、网络设备、接口和隧道。 此命令是 iproute2 包裹。 在…的帮助下 ip 命令,系统管理员为网络接口分配地址和/或在接口上配置网络参数。

IP(互联网协议)地址是分配给计算机网络接口的数字标签,允许系统通过互联网进行通信。 在计算机网络中,一个系统通过其 IP 地址与另一个系统进行通信。

较旧的操作系统使用 ifconfig. 这也是一个强大的命令,在较新的 Linux 系统上已弃用,取而代之的是 ip 命令。 但是,您也可以使用 ifconfig 通过安装 net-tools 包在现代操作系统/发行版上命令..

在本教程中,您将了解 Linux ip 命令 用有用的例子。

如何使用 ip 命令

现代 Linux 系统提供 iproute2 包,它替换了 net-tools 包提供的各种命令。 此外,ip 命令属于这个软件包,具有很好的功能。

句法:

ip 命令使用以下语法:

ip [ OPTIONS ] OBJECT { COMMAND | help } 

请记住,使用此命令创建的配置(如 IP 地址、路由和策略路由规则(等等))不是持久性的。 进行永久更改,您需要为您的平台/操作系统编辑适当的配置。

得到帮助

只需在 ip 命令后键入“help”即可查看命令使用详细信息。

ip help  
Output: Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }        ip [ -force ] -batch filename where  OBJECT := { link | address | addrlabel | route | rule | neigh | ntable |                    tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm |                    netns | l2tp | fou | macsec | tcp_metrics | token | netconf | ila |                    vrf | sr | nexthop }        OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |                     -h[uman-readable] | -iec | -j[son] | -p[retty] |                     -f[amily] { inet | inet6 | mpls | bridge | link } |                     -4 | -6 | -I | -D | -M | -B | -0 |                     -l[oops] { maximum-addr-flush-attempts } | -br[ief] |                     -o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] |                     -rc[vbuf] [size] | -n[etns] name | -N[umeric] | -a[ll] |                     -c[olor]} 

此外,使用 help 命令可以获取特定于对象的帮助,例如:

ip addr help  

同样,尝试下面的命令来获取路由对象子命令的帮助。

ip route help  

尝试对其他对象使用 help 命令以获取帮助。

接下来,您将了解 ip 命令的使用。 出于学习目的,请使用物理可访问的系统。 换句话说,任何错误的命令都可能导致网络接口中断,您可能会与远程系统断开连接。 但是,物理系统仍然可以访问。

查看和管理网络接口

link 子命令 ip 命令来管理和显示所有网络接口的状态。 网络接口的名称可能因 Linux 发行版和硬件平台等而异。

  1. 查看所有可用的网络接口

    ip link default 命令显示所有接口的详细信息。

    ip link  [OR] ip link show  
    Output: 1: lo:  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:  mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000     link/ether 6e:dc:96:05:82:a8 brd ff:ff:ff:ff:ff:ff 
  2. 查看特定的网络接口

    定义网络接口名称以查看有关特定接口的信息。

    ip link show eth0 
    Output: 2: eth0:  mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000     link/ether 6e:dc:96:05:82:a8 brd ff:ff:ff:ff:ff:ff  
  3. 查看网络接口的静态信息

    -s 查看网络接口静态的选项。 它显示有关在该接口上发送和接收的数据包和数据的所有详细信息。

    ip -s link show eth0 
    Output: 2: eth0:  mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000     link/ether 6e:dc:96:05:82:a8 brd ff:ff:ff:ff:ff:ff     RX: bytes  packets  errors  dropped overrun mcast     5746680521 36516527 0       0       0       0     TX: bytes  packets  errors  dropped carrier collsns     33339856329 33119340 0       0       0       0 

    删除接口名称 (eth0) 以查看所有可用网络接口的静态信息。

  4. 开启和关闭网络接口

    使用 ip link set 命令来改变网络接口状态。 这里 up 用于使网络接口联机。

    ip link set eth0 up 

    down 使网络接口脱机的选项

    ip link set eth0 down 

    注意:在使用远程系统时,不要关闭界面。 它可能会断开您的系统与网络的连接。

在网络接口上显示和添加 IP 地址

ip addr 子命令用于显示网络接口上配置的IP地址。 您还可以使用相同的命令在网络接口上设置 IP 地址。

  1. 显示所有接口的 IP 地址

    默认的 ip addr 子命令显示所有接口上的 IP 地址详细信息。 您还可以包括 show 是可选的,同时查看所有网络接口的 IP 详细信息。

    ip addr  [OR] ip addr show  
    Output: 1: lo:  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:  mtu 1500 qdisc fq_codel state UP group default qlen 1000     link/ether 6e:dc:96:05:82:a8 brd ff:ff:ff:ff:ff:ff     inet 192.168.10.110/24 brd 192.168.10.255 scope global eth0        valid_lft forever preferred_lft forever     inet6 fe80::6cdc:96ff:fe05:82a8/64 scope link        valid_lft forever preferred_lft forever 

    也可以只显示 IPv4 或者 IPv6 使用 IP 地址 ip -4 addr 或者 ip -6 addr 命令。

  2. 显示单个接口的 IP 地址:

    指定接口名称 ip addr show 子命令来显示特定接口的 IP 地址。

    例如查看eth0网络接口上的IP地址:

    ip addr show dev eth0 
    Output: 2: eth0:  mtu 1500 qdisc fq_codel state UP group default qlen 1000     link/ether 6e:dc:96:05:82:a8 brd ff:ff:ff:ff:ff:ff     inet 192.168.10.110/24 brd 192.168.10.255 scope global eth0        valid_lft forever preferred_lft forever     inet6 fe80::6cdc:96ff:fe05:82a8/64 scope link        valid_lft forever preferred_lft forever 
  3. 分配接口的IP地址:

    ip addr add 子命令用于在网络接口上添加地址。 下面的命令将分配IP地址 192.168.10.100 带网络掩码 24eth0 网络接口。

    ip addr add 192.168.10.100/24 dev eth0 
  4. 分配一个接口的多个IP地址:

    此外,您可以为单个接口分配更多 IP 地址。 使用与 abvoe 相同的命令在单个网络接口上分配多个 IP 地址。 例如:

    ip addr add 192.168.10.100/24 dev eth0 ip addr add 192.168.10.105/24 dev eth0 
  5. 从接口中删除 IP 地址:

    如果您认为不再需要 IP 地址或错误添加,可以从界面中删除。 使用 ip addr del 从任何网络接口删除 IP 地址的子命令。

    例如,使用以下命令删除IP地址 192.168.10.105 来自 eth0 接口的 24 个子网掩码

    ip addr del 192.168.10.105/24 dev eth0 

显示和更改路由表

ip 命令还为您提供查看或更改任何网络接口的路由表的选项。

ip route 使用路由表的子命令。

  1. 列出内核路由表

    默认情况下 ip route 命令列出内核中的所有路由条目。 你也可以加前缀 show 查看相同结果的选项。

    ip route  
    Output: default via 192.168.10.1 dev eth0 proto static 192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.1 

    以上结果表明 192.168.10.1 是内核通过 eth0 网络接口使用的默认网关。

  2. 向路由表添加条目

    • 通过可在设备 eth0 上访问的本地网关 192.168.10.1 添加默认路由(适用于所有地址)
      ip route add default via 192.168.10.1 dev eth0  
    • 通过 192.168.10.1 的网关添加到 192.168.10.0/24 的路由
      ip route add 192.168.10.0/24 via 192.168.10.1  
    • 添加到 192.168.10.0/24 的路由,可以在设备 eth0 上到达
      ip route add 192.168.10.0/24 dev eth0  
  3. 删除路由表条目

    使用以下命令删除 192.168.10.0/24 通过网关 192.168.10.1 的路由

    ip route delete 192.168.10.0/24 via 192.168.10.1  
  4. 替换或添加(如果未定义)路由

    替换为 192.168.10.0/24 定义的现有路由以使用设备 eth0

    ip route replace 192.168.10.0/24 dev em1  
  5. 显示地址将采用的路线

    此命令在网络故障排除过程中非常有用。 换句话说,您可以找到系统用于到达定义的目标 IP 地址的路由。

    ip route get 8.8.8.8  
    Output: 8.8.8.8 via 192.168.10.1 dev eth0 src 192.168.10.108 uid 0 

结论

总之,您已经了解了 Linux ip 命令与有用的例子。 这里我们描述,如何在 Linux 系统上管理网络接口。 添加或删除内核路由表条目。 使网络接口向上(在线)和向下(离线)。 在网络接口上添加、删除或显示 IP 地址。