ip命令是每个Linux系统管理员熟知的网络接口配置的超级工具。它可用于使接口关闭与开启,分配和删除地址以及ARP路由管理缓存等等。

在本教程中,我们将通过实际示例和最常见的ip选项的详细说明向您展示如何使用ip命令。

如何使用ip命令

ip命令已安装在所有现代Linux发行版上,它是iproute2软件包的一部分。

ip命令的语法如下:

ip [ OPTIONS ] OBJECT { COMMAND | help }

OBJECT是您要管理的对象(OBJECT)类型。最常用的对象(或子命令)是:

  • linkl) - 显示和修改网络接口。
  • addressa) - 显示和修改IP地址。
  • router) - 显示和更改路由表。
  • neighn) - 显示和操作邻居对象(ARP表)。

对象可以以完整或缩写(短)形式书写。显示每个对象类型的命令和参数列表ip OBJECT help

配置网络接口时,必须以root用户或用户使用sudo权限运行命令,否则将打印命令 RTNETLINK answers: Operation not permitted

使用ip命令设置的配置不是持久的。系统重启后,所有更改都将丢失。对于永久设置,您需要编辑特定于发行版的配置文件或将命令添加到启动脚本。

显示和修改IP地址

使用addr对象操作时,命令采用以下形式:

ip addr [ COMMAND ] ADDRESS dev IFNAME

最常用的addr对象命令是show,add和del。

显示有关所有IP地址的信息

要显示所有网络接口的列表以及关联的IP地址,请键入以下命令:

ip 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
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff
    inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0
       valid_lft 2900sec preferred_lft 2900sec
    inet6 fe80::5054:ff:fe8c:6244/64 scope link 
       valid_lft forever preferred_lft forever

show命令列出所有设备。如果输入ip addr,您将获得相同的输出。

如果您只想显示IPv4IPv6IP地址使用ip -4 addrip -6 addr

显示有关单个网络接口的信息

获取有关特定网络接口的信息,ip addr show dev然后使用设备名称。例如,要查询eth0您将键入:

ip addr show dev eth0

为接口分配IP地址

要为接口分配IP地址,请使用以下语法:

ip addr add ADDRESS dev IFNAME

其中IFNAME是接口名称,ADDRESS是您要分配给接口的IP地址。

要将192.168.121.45 子网掩码24的地址添加到设备eth0,您可以键入:

sudo ip address add 192.168.121.45/24 dev eth0

成功时,该命令不会显示任何输出。如果接口不存在,您将获得Cannot find device "eth0"

为同一接口分配多个IP地址

使用ip命令,您可以为同一接口分配多个地址。例如:

sudo ip address add 192.168.121.241/24 dev eth0sudo ip address add 192.168.121.45/24 dev eth0

要确认IP已分配类型ip -4 addr show dev eth0ip -4 a show dev eth0

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0
       valid_lft 3515sec preferred_lft 3515sec
    inet 192.168.121.45/24 scope global secondary eth0
       valid_lft forever preferred_lft forever

从接口中删除/删除IP地址

从接口中删除IP地址的语法如下:

ip addr dev ADDRESS dev IFNAME

IFNAME是接口名称,ADDRESS是您要从接口中删除的IP地址。

要从设备eth0类型中删除地址192.168.121.45/24

sudo ip address del 192.168.121.45/24 dev eth0

显示和修改网络接口

要管理和显示网络接口的状态,请使用link对象。

link工作时,最常用的命令对象是showsetadddel

显示网络接口相关的信息

要显示所有网络接口的列表,请键入以下命令:

ip 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 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff

复制

与此不同ip addr showip link show不会打印有关与设备关联的IP地址的信息。

获取有关特定网络接口的信息,ip link show dev然后使用设备名称。例如,要查询eth0您将键入:

ip link show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff

更改接口UP(启用)/DOWN(关闭)的状态

要启用或关闭接口,请使用ip link set dev设备名称和所需状态:

ip link set dev {DEVICE} {up|down}

例如,要使接口eth0联机,您可以键入:

ip link set eth0 up

如果需要关闭

ip link set eth0 down

显示和更改路由表

要分配,删除和显示内核路由表,请使用route对象。使用routes对象时最常用的命令是listadddel

显示路由表

使用以下命令之一列出内核路由条目:

ip route
ip route list
ip route list SELECTOR

在没有SELECTOR的情况下使用时,该命令将列出内核中的所有路由条目:

ip route list
default via 192.168.121.1 dev eth0 proto dhcp src 192.168.121.241 metric 100 
192.168.121.0/24 dev eth0 proto kernel scope link src 192.168.121.241 
192.168.121.1 dev eth0 proto dhcp scope link src 192.168.121.241 metric 100 

例如,要显示指定网络172.17.0.0/16的路由,您可以键入:

ip r list 172.17.0.0/16
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 

添加新路由线路

要向路由表添加新条目,请使用route add命令后跟网络或设备名称。

将网关192.168.121.1添加到192.168.121.0/24的路由

ip route add 192.168.121.0/24 via 192.168.121.1

添加到设备eth0可以到达的192.168.121.0/24的路由。

ip route add 192.168.121.0/24 dev eth0

使用default关键字添加默认路由。以下命令将通过本地网关添加192.168.121.1可在设备eth0上访问的默认路由。

ip route add default via 192.168.121.1 dev eth0

删除路线

要从路由表中删除条目,请使用route add命令,删除路由的语法与添加时相同。

以下命令将删除默认路由:

ip route del default

通过网关192.168.121.1删除192.168.121.0/24的路由

ip route add 192.168.121.0/24 via 192.168.121.1

结论

至此,您应该很好地理解如何使用Linux ip命令。有关其他ip选项的更多信息,请访问ip命令手册页。如果您有任何问题或反馈,请随时发表评论。

如果您有任何问题或反馈,请随时发表评论。如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持