Linux ip命令教程

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

5 min read
By myfreax
Linux ip命令教程

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

ip命令已安装在所有现代Linux发行版上,它是iproute2软件的一部分。这里的网络接口也就是我们常说的网卡。

ip命令的语法是ip [ OPTIONS ] OBJECT { COMMAND | help },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。

ip addr show显示所有网络接口的列表以及关联的IP地址,show命令列出所有接口设备。

如果输入ip addr,您将获得相同的输出。如果您只想显示IPv4IPv6IP地址使用ip -4 addrip -6 addr

获取有关指定网络接口的信息,使用ip addr show dev命令后接设备名称。ip addr show dev eth0命令查询eth0接口的IP地址信息。

现在已经知道如何打印接口的IP地址,看看如何要为接口分配IP地址。

分配IP地址命令语法是ip addr add ADDRESS dev IFNAME。其中IFNAME是接口名称,ADDRESS是您要分配给接口的IP地址。

sudo ip address add 192.168.121.45/24 dev eth0命令将eth0接口的IP地址设置为192.168.121.45,子网掩码是24。

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

在Linux您可以为同一接口分配多个地址,使用ip命令。要为接口分配多个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地址ip -4 addr show dev eth0ip -4 a show dev eth0。:

现在了解ip命令对接口ip地址另个常用的操作删除。从接口中删除IP地址的语法是ip addr dev ADDRESS dev IFNAMEIFNAME是接口名称,ADDRESS是您要从接口中删除的IP地址。

sudo ip address del 192.168.121.45/24 dev eth0命令从eth0接口中删除地址192.168.121.45/24

网络接口

这里所说的接口也就是我们常说的网卡。要管理和显示网络接口的状态,请使用link对象。与link对象工作时,最常用的对象命令是showsetadddel

分别是打印网络接口的信息,设置网络接口的信息,添加网络接口,删除网络接口。

ip link show要显示所有网络接口的信息。接口信息包括MTU,接口状态启用或者关闭,网关等。与ip addr show不同的是ip link show不会打印接口的IP地址的信息。

获取指定网络接口的信息可以运行ip link show dev后接接口名称。例如命令ip link show dev eth0查询eth0的信息。

对网络接口还有一个常用的操作启用或关闭接口,你可以运行命令ip link set dev后跟接口名称和接口的状态ip link set dev {DEVICE} {up|down}

ip link set eth0 up命令将会启用eth0接口,如果需要关闭,运行命令ip link set eth0 down

路由表

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

你可以有三个命令显示路由表的信息,分别是ip routeip route listip route list SELECTOR

在没有选择器SELECTOR的情况下使用时,ip route list命令将列出内核中的所有路由记录。

ip route list 172.17.0.0/16命令要显示指定IP地址是172.17.0.0/16的路由。

如果要向路由表添加新记录,可以使用route add命令后跟网络或设备名称。

ip route add 192.168.121.0/24 via 192.168.121.1命令将添加192.168.121.1作为到到达192.168.121.0/24的网关。

ip route add 192.168.121.0/24 dev eth0命令将添加eth0作为到到达192.168.121.0/24的网关。

ip route add default via 192.168.121.1 dev eth0命令使用default关键字添加默认路由。这个将会设置eth0的默认路由是92.168.121.1

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

ip route del default命令将删除默认路由,ip route del 192.168.121.0/24 via 192.168.121.1命令删除到达192.168.121.0/24的路由

结论

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