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命令设置的配置不是永久的。系统重启后,所有更改都将丢失。对于永久设置,您需要编辑特定于发行版的配置文件或将命令添加到启动脚本。
使用addr
对象操作时,ip
命令的形式是ip addr [ COMMAND ] ADDRESS dev IFNAME
的形式。
最常用的addr
对象操作的命令是show,add和del。分别是打印IP地址的信息,添加IP地址,删除IP。
ip addr show
显示所有网络接口的列表以及关联的IP地址,show
命令列出所有接口设备。
如果输入ip addr
,您将获得相同的输出。如果您想以IPv4
或IPv6
IP地址查看IP地址,请运行命令ip -4 addr
或ip -6 addr
。
如要获取指定接口的IP地址信息,请运行命令ip addr show
后跟接口设备名称。例如命令ip addr show dev eth0
查询eth0
接口的IP地址信息。
ip addr show #eq ip addr
ip -4 addr
ip -6 addr
ip addr show dev eth0
现在已经知道如何查看接口的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。
要确认设置的IP地址是否正确,请运行命令ip -4 addr show dev eth0
或ip -4 a show dev eth0
。
sudo ip address add 192.168.121.45/24 dev eth0
ip addr show dev eth0
成功时命令不会显示任何输出。如果接口不存在,您将获得Cannot find device "eth0"
。
在Linux您可以为同一接口分配多个地址,使用ip
命令。要为接口分配多个IP地址,你需要运行多次ip
命令即可。
例如命令sudo ip address add 192.168.121.241/24 dev eth0
和sudo ip address add 192.168.121.45/24 dev eth0
。
sudo ip address add 192.168.121.241/24 dev eth0
sudo ip address add 192.168.121.45/24 dev eth0
ip addr show dev eth0
现在了解ip
命令对接口ip地址另个常用的操作删除。从接口中删除IP地址的语法是ip addr dev ADDRESS dev IFNAME
。
其中IFNAME
是网络接口设备的名称,ADDRESS
是您要从接口中删除的IP地址。
例如命令sudo ip address del 192.168.121.45/24 dev eth0
从eth0
网络接口删除地址192.168.121.45/24
。
sudo ip address del 192.168.121.45/24 dev eth0
ip addr show dev eth0
这里所说的接口也就是我们常说的网卡。ip命令也可以用于管理和显示网络接口的状态。
对网络接口的操作对象是link
对象。与link
对象工作时,最常用的对象子命令是show
,set
,add
和del
。
show
打印网络接口的信息,set
设置网络接口的状态,例如启用与关闭,add
添加网络接口,del
删除网络接口。
ip link show
要显示所有网络接口的信息。这些信息包括MTU,接口状态启用或者关闭,网关等。
ip link show
与ip addr show
不同的是ip link show
不会打印接口的IP地址的信息。
要获取指定网络接口的信息,请运行命令ip link show dev
后接接口名称。例如命令ip link show dev eth0
查询eth0
的信息。
ip link show
ip link show dev eth0
对网络接口还有一个常用的操作是启用或关闭接口,在远程服务器操作时你应该小心使用此操作。
启用或者关闭接口的命令形式是ip link set dev {DEVICE} {up|down}
,{DEVICE}
是接口的名称。{up|down}
设置接口的状态。
命令ip link set eth0 up
启用eth0
接口,如果需要关闭,请运行命令ip link set eth0 down
。
ip link set eth0 up
ip link set eth0 down
ip命令除了管理接口,也可以用于管理内核路由表。要分配,删除和显示内核路由表,请使用route
对象。
使用route
对象时最常用的子命令是list
,add
和del
。list
列出路由表信息,add
添加路由到路由表,del
从路由表删除路由。
有三个不同命令查看路由表信息,分别是ip route
,ip route list
,ip route list SELECTOR
。
在没有指定选择器SELECTOR时,ip route list
命令将列出内核的所有路由记录。
例如命令ip route list 172.17.0.0/16
显示指定IP地址是172.17.0.0/16
的路由。
ip route
ip route list
ip route list SELECTOR
ip route list 172.17.0.0/16
如果要向路由表添加新记录,可以使用ip命令的子命令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的网关。
要为接口设置默认路由,请使用default
关键词。例如命令ip route add default via 192.168.121.1 dev eth0
设置eth0
的默认路由是192.168.121.1
。
ip route add 192.168.121.0/24 via 192.168.121.1
ip route add 192.168.121.0/24 dev eth0
ip route add default via 192.168.121.1 dev eth0
删除路由的语法与添加时相同。要从路由表中删除记录,可以使用ip
子命令route del
后跟网络或者接口设备名称。
例如命令ip route del 192.168.121.0/24 via 192.168.121.1
命令删除到达192.168.121.0/24的路由。
要删除默认路由,和设置默认路由一样请使用default关键词。例如命令ip route del default
删除默认路由。
ip route del 192.168.121.0/24 via 192.168.121.1
ip route del default
至此,您应该很好地理解如何使用Linux ip命令。
全部0条评论
快来发表一下你的评论吧 !