ip命令讲解

简介
如今很多系统管理员依然通过组合使用诸如ifconfig、route、arp和netstat等命令行工具(统称为net-tools)来配置网络功能,解决网络故障。net-tools起源于BSD的TCP/IP工具箱,后来成为老版本Linux内核中配置网络功能的工具。但自2001年起,Linux社区已经对其停止维护。同时,一些Linux发行版比如Arch Linux和CentOS/RHEL 7则已经完全抛弃了net-tools,只支持iproute2。
作为网络配置工具的一份子,iproute2是linux下管理控制TCP/IP网络和流量控制的新一代工具包,旨在替代老派的工具链net-tools,即大家比较熟悉的ifconfig,arp,route,netstat等命令。net-tools通过procfs(/proc)和ioctl系统调用去访问和改变内核网络配置,而iproute2则通过netlink套接字接口与内核通讯。抛开性能而言,net-tools的用法给人的感觉是比较乱,而iproute2的用户接口相对net-tools来说相对来说,更加直观。比如,各种网络资源(如link、IP地址、路由和隧道等)均使用合适的对象抽象去定义,使得用户可使用一致的语法去管理不同的对象。更重要的是,到目前为止,iproute2仍处在持续开发中。
如果你仍在使用net-tools,而且尤其需要跟上新版Linux内核中的最新最重要的网络特性的话,那么是时候转到iproute2的阵营了。原因就在于使用iproute2可以做很多net-tools无法做到的事情。
iproute2的核心命令是ip:
实验环境
centos7.4

实验展示
检查网卡信息
检查网卡的诸如 IP 地址,子网等网络信息,使用ip addr show命令(简写 ip a s):
[[email protected] ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:9b:7b:dc brd ff:ff:ff:ff:ff:ff
inet 192.168.1.60/24 brd 192.168.1.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe9b:7bdc/64 scope link
valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 00:0c:29:9b:7b:e6 brd ff:ff:ff:ff:ff:ff
[[email protected] ~]# ip addr show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:9b:7b:dc brd ff:ff:ff:ff:ff:ff
inet 192.168.1.60/24 brd 192.168.1.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe9b:7bdc/64 scope link
valid_lft forever preferred_lft forever
启用/禁用网口
使用ip命令来启用一个被禁用的网口:
[[email protected] ~]# ip link set ens37 up
[[email protected] ~]# ip addr show ens37
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:9b:7b:e6 brd ff:ff:ff:ff:ff:ff
inet6 fe80::20c:29ff:fe9b:7be6/64 scope link
valid_lft forever preferred_lft forever
使用ip命令来禁用一个被启用的网口:

[[email protected] ~]# ip link set ens37 down
[[email protected] ~]# ip addr show ens37
3: ens37: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:0c:29:9b:7b:e6 brd ff:ff:ff:ff:ff:ff
为网卡分配 IP 地址以及其他网络信息
要为网卡分配 IP 地址,我们使用下面命令:
[[email protected] ~]# ip link set ens37 up
[[email protected] ~]# ip addr add 192.168.0.50/255.255.255.0 dev ens37
[[email protected] ~]# ip s ens37
Object "s" is unknown, try "ip help".
[[email protected] ~]# ip addr show ens37
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:9b:7b:e6 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.50/24 scope global ens37
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe9b:7be6/64 scope link
valid_lft forever preferred_lft forever
删除网卡中配置的 IP 地址
若想从网卡中删掉某个 IP,使用如下ip命令:
[[email protected] ~]# ip addr del 192.168.0.50/24 dev ens37
[[email protected] ~]# ip addr show ens37
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:9b:7b:e6 brd ff:ff:ff:ff:ff:ff
inet6 fe80::20c:29ff:fe9b:7be6/64 scope link
valid_lft forever preferred_lft forever
为网卡添加别名(假设网卡名为 ens37)
添加别名,即为网卡添加不止一个 IP,执行下面命令
[[email protected] ~]# ip addr add 192.168.0.50/24 dev ens37
[[email protected] ~]# ip addr show ens37
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:9b:7b:e6 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.50/24 scope global ens37
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe9b:7be6/64 scope link
valid_lft forever preferred_lft forever
[[email protected] ~]# ip addr add 192.168.0.20/24 dev ens37 label ens37:1
[[email protected] ~]# ip addr show ens37
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:9b:7b:e6 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.50/24 scope global ens37
valid_lft forever preferred_lft forever
inet 192.168.0.20/24 scope global secondary ens37:1
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe9b:7be6/64 scope link
valid_lft forever preferred_lft forever
检查路由/默认网关的信息
查看路由信息会给我们显示数据包到达目的地的路由路径。要查看网络路由信息,使用ip route show命令(简写 ip r):
[[email protected] ~]# ip r
default via 192.168.1.1 dev ens33
169.254.0.0/16 dev ens33 scope link metric 1002
192.168.0.0/24 dev ens37 proto kernel scope link src 192.168.0.50
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.60
在上面输出结果中,我们能够看到所有网口的ip地址和路由信息

添加静态路由
我们也可以使用 IP 来修改数据包的默认路由。方法是使用ip route命令:
[[email protected] ~]# ip r
default via 192.168.1.1 dev ens33
169.254.0.0/16 dev ens33 scope link metric 1002
169.254.0.0/16 dev ens37 scope link metric 1003
192.168.0.0/24 dev ens37 proto kernel scope link src 192.168.0.50
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.60
[[email protected] ~]# ip r
route rule
[[email protected] ~]# ip route add 192.168.2.0/24 via 192.168.0.1 dev ens37
[[email protected] ~]# ip r
default via 192.168.1.1 dev ens33
169.254.0.0/16 dev ens33 scope link metric 1002
169.254.0.0/16 dev ens37 scope link metric 1003
192.168.0.0/24 dev ens37 proto kernel scope link src 192.168.0.50
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.60
192.168.2.0/24 via 192.168.0.1 dev ens37
删除默认路由
要删除之前设置的默认路由,打开终端然后运行:
[[email protected] ~]# ip route del 192.168.2.0/24
[[email protected] ~]# ip r
default via 192.168.1.1 dev ens33
169.254.0.0/16 dev ens33 scope link metric 1002
169.254.0.0/16 dev ens37 scope link metric 1003
192.168.0.0/24 dev ens37 proto kernel scope link src 192.168.0.50
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.60
用上面方法修改的默认路由只是临时有效的,在系统重启后所有的改动都会丢失。要永久修改路由,需要修改或创建route-ens37文件

[[email protected] ~]# ip r
default via 192.168.1.1 dev ens33
169.254.0.0/16 dev ens33 scope link metric 1002
169.254.0.0/16 dev ens37 scope link metric 1003
192.168.0.0/24 dev ens37 proto kernel scope link src 192.168.0.50
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.60
[[email protected] ~]# cat /etc/sysconfig/network-scripts/route-ens37
192.168.2.0/24 via 192.168.0.1 dev ens37
[[email protected] ~]# systemctl restart network
[[email protected] ~]# ip r
default via 192.168.1.1 dev ens33
169.254.0.0/16 dev ens33 scope link metric 1002
169.254.0.0/16 dev ens37 scope link metric 1003
192.168.0.0/24 dev ens37 proto kernel scope link src 192.168.0.50
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.60
192.168.2.0/24 via 192.168.0.1 dev ens37
检查所有的 ARP 记录
ARP,是地址解析协议Address Resolution Protocol的缩写,用于将 IP 地址转换为物理地址(也就是 MAC 地址)。所有的 IP 和其对应的 MAC 明细都存储在一张表中,这张表叫做 ARP 缓存。
要查看 ARP 缓存中的记录,即连接到局域网中设备的 MAC 地址,则使用如下 ip 命令:
[[email protected] ~]# ip neigh
fe80::1 dev ens33 lladdr 9c:e3:74:69:67:19 router STALE
192.168.1.1 dev ens33 lladdr 9c:e3:74:69:67:19 REACHABLE
192.168.1.37 dev ens33 lladdr 78:2b:cb:9c:0b:e6 REACHABLE
修改 ARP 记录
删除 ARP 记录的命令为:
[[email protected] ~]# ip neigh del 192.168.1.37 dev ens33
[[email protected] ~]# ip neigh
fe80::1 dev ens33 lladdr 9c:e3:74:69:67:19 router STALE
192.168.1.1 dev ens33 lladdr 9c:e3:74:69:67:19 REACHABLE
192.168.1.37 dev ens33 lladdr 78:2b:cb:9c:0b:e6 REACHABLE
查看网络统计信息
通过ip命令还能查看网络的统计信息,比如所有网卡上传输的字节数和报文数,错误或丢弃的报文数等。使用ip -s link命令来查看:
[[email protected] ~]# ip -s link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
RX: bytes packets errors dropped overrun mcast
594 6 0 0 0 0
TX: bytes packets errors dropped carrier collsns
594 6 0 0 0 0
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 00:0c:29:9b:7b:dc brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
79320 816 0 0 0 0
TX: bytes packets errors dropped carrier collsns
110247 681 0 0 0 0
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 00:0c:29:9b:7b:e6 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
13404 209 0 0 0 0
TX: bytes packets errors dropped carrier collsns
2016 28 0 0 0 0
更改网口名称,可以使用命令ip link set ens37 name eth0。要在网口down的状态下更改
[[email protected] ~]# ip link set ens37 name eth0
RTNETLINK answers: Device or resource busy
[[email protected] ~]# ip link set ens37 down
[[email protected] ~]# ip link set ens37 name eth0
[[email protected] ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:9b:7b:dc brd ff:ff:ff:ff:ff:ff
inet 192.168.1.60/24 brd 192.168.1.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe9b:7bdc/64 scope link
valid_lft forever preferred_lft forever
3: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:0c:29:9b:7b:e6 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.50/24 brd 192.168.0.255 scope global eth0
valid_lft forever preferred_lft forever
获取帮助
若你想查看某个上面例子中没有的选项,那么你可以查看帮助。事实上对任何命令你都可以寻求帮助。要列出ip命令的所有可选项,执行ip help:

[[email protected] ~]# ip help
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 | macsec | tcp_metrics | token }
OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
-h[uman-readable] | -iec |
-f[amily] { inet | inet6 | ipx | dnet | bridge | link } |
-4 | -6 | -I | -D | -B | -0 |
-l[oops] { maximum-addr-flush-attempts } |
-o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] |
-rc[vbuf] [size] | -n[etns] name | -a[ll] }

原文地址:https://www.cnblogs.com/ztxd/p/12266174.html

时间: 2024-10-23 03:13:39

ip命令讲解的相关文章

第1课:电脑基础命令讲解

1.在桌面创建cmd批处理a.在桌面上新建一个文本,内容为cmd.exe,并取名为cmd.bat.b.双击cmd.bat,会自动打开cmd窗口. 2.dos命令ver -->显示系统版本cls -->清除屏幕cd xx //xx指路径案例1:cd d:/ //返回到d盘 d:案例2:cd .. //返回上一级目录案例3:cd C:\Program Files //返回到指定目录c:dir -->查看目录 tab键 -->补全命令type x.txt //查看内容,类似linux的c

IP命令

ip命令是Linux下较新的功能强大的网络配置工具. 1 功能 ip命令用来显示或操纵Linux主机的路由.网络设备.策略路由和隧道. 2用法 Usage: ip [ OPTIONS ] OBJECT { COMMAND | help } ip [ -force ] -batch filename -force:不要终止批处理模式中的错误 -b:-batch filenam,从提供的文件或标准输入中读取命令并调用它们,第一次失败将导致IP终止 3参数与选项 OBJECT := { link |

Linux下的ip命令

linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者.使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务.ifconfig是net-tools中已被废弃使用的一个命令,许多年前就已经没有维护了.iproute2套件里提供了许多增强功能的命令,ip命令即是其中之一. Net tools vs Iproute2 要安装ip,请点击这里下载iproute2套装工具 .不过,大多数Linux发行版已经预装了iproute2工具. 你也可以使用git命令来下载最新源代码

linux包之iproute之ip命令

[[email protected] ~]# rpm -qf /sbin/ipiproute-2.6.32-31.el6.x86_64ip 是个命令, ip 命令的功能很多!基本上它整合了 ifconfig 与 route 这两个命令ip - show / manipulate routing, devices, policy routing and tunnels ip [ OPTIONS ] OBJECT { COMMAND | help } OBJECT := { link | addr

ip命令和ifconfig命令(转载)

Linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者.使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务.ifconfig是net-tools中已被废弃使用的一个命令,许多年前就已经没有维护了.iproute2套件里提供了许多增强功能的命令,ip命令即是其中之一. 设置和删除Ip地址 要给你的机器设置一个IP地址,可以使用下列ip命令: 1. $ sudo ip addr add 192.168.0.193/24 dev wlan0 请注意IP地址要有一个后缀

[网络配置相关]——ifconfig命令、ip命令、route命令

ifconfig命令 1. 查看已被激活的网卡的详细信息 # ifconfig eth0 Link encap:Ethernet HWaddr 00:30:67:F2:10:CF inet addr:10.0.0.253 Bcast:10.0.255.255 Mask:255.255.0.0 inet6 addr: fe80::230:67ff:fef2:10cf/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX

linux 下ip命令对比ifconfig命令

原文:https://linux.cn/article-3144-1.html ------------------------------------------------------------------------------------------------------------------------------------------ 试试Linux下的ip命令,ifconfig已经过时了 linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者.使用ip

ip命令详解

Linux中的ip命令功能强大,可以完成接口配置.路由管理等任务. 格式:ip [ OPTIONS ] OBJECT { COMMAND | help } 下面使用ip命令来完成一些常用的操作: 1.查看接口状态 ip link show [设备名] 2.启动和关闭接口 ip link set [设备名] {up|donw}  3.显示接口IP地址 ip addr show 4.配置接口IP地址 ip addr add IP地址 dev 设备名 [设备标签] 5.删除接口IP地址 ip addr

Linux 网络配置 ifconfig ip 命令的使用

IP地址是属于内核的,不是属于网卡的.只要内核中有就能ping通. 常见的网卡类型: lo(loopback):本地回环. ethNUM:以太网网卡.CentOS7中为ensNUMs. pppNUM:点对点. 加载模块配置文件: /etc/modprobe.conf CentOS中默只有/etc/modprobe.conf/文件夹,可以手工创建. /etc/udev/rules.d/ #ifconfig [OPTION] [DEVICE] [IP/MASK|IP MASK] [up|donw]