文章目录
ip命令是每个Linux系统管理员熟知的网络接口配置的超级工具。它可用于使接口关闭与开启,分配和删除地址以及ARP路由管理缓存等等。
在本教程中,我们将通过实际示例和最常见的ip选项的详细说明向您展示如何使用ip命令。
如何使用ip命令
ip命令已安装在所有现代Linux发行版上,它是iproute2软件包的一部分。
ip命令的语法如下:
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT是您要管理的对象(OBJECT)类型。最常用的对象(或子命令)是:
-
link
(l
) - 显示和修改网络接口。 -
address
(a
) - 显示和修改IP地址。 -
route
(r
) - 显示和更改路由表。 -
neigh
(n
) - 显示和操作邻居对象(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
,您将获得相同的输出。
如果您只想显示IPv4
或IPv6
IP地址使用ip -4 addr
或ip -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 eth0
或ip -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
工作时,最常用的命令对象是show
,set
,add
和del
。
显示网络接口相关的信息
要显示所有网络接口的列表,请键入以下命令:
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 show
,ip 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对象时最常用的命令是list
,add
和del
。
显示路由表
使用以下命令之一列出内核路由条目:
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命令手册页。如果您有任何问题或反馈,请随时发表评论。
如果您有任何问题或反馈,请随时发表评论。如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持