试试Linux下的ip命令

要安装ip,请点击这里下载iproute2套装工具 。不过,大多数Linux发行版已经预装了iproute2工具,我所使用的cenos7也已经安装好了。
你也可以使用git命令来下载最新源代码来编译:
git clone https://kernel.googlesource.com/pub/scm/linux/kernel/git/shemminger/iproute2
添加Ip地址
[[email protected] ~]# ip addr add 地址/掩码 dev 网卡 [[email protected] ~]# ip addr add 10.0.0.1/24 dev ens3
查看是否添加成功:
[[email protected] ~]# ip add show ens3 2: ens3:mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:16:3c:5a:28:36 brd ff:ff:ff:ff:ff:ff inet 103.42.214.185/24 brd 103.42.214.255 scope global dynamic ens3 valid_lft 21304834sec preferred_lft 21304834sec inet 10.0.0.1/24 scope global ens3 valid_lft forever preferred_lft forever inet6 fe80::52a8:534b:6bbc:84ec/64 scope link valid_lft forever preferred_lft forever
删除IP地址
你也可以使用相同的方式来删除IP地址,只需用del代替add.
[[email protected] ~]# ip addr del 10.0.0.1/24 dev ens3
查看是否删除成功:
[[email protected] ~]# ip add show ens3 2: ens3:mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:16:3c:5a:28:36 brd ff:ff:ff:ff:ff:ff inet 103.42.214.185/24 brd 103.42.214.255 scope global dynamic ens3 valid_lft 21304710sec preferred_lft 21304710sec inet6 fe80::52a8:534b:6bbc:84ec/64 scope link valid_lft forever preferred_lft forever
列出路由表条目
ip命令的路由对象的参数还可以帮助你查看网络中的路由数据,并设置你的路由表。第一个条目是默认的路由条目,你可以随意改动它。
[[email protected] ~]# ip route show default via 103.42.214.129 dev ens3 proto static metric 100 43.239.156.3 via 103.42.214.129 dev ens3 proto dhcp metric 100 103.42.214.0/24 dev ens3 proto kernel scope link src 103.42.214.185 metric 100
假设现在你有一个IP地址,你需要知道路由包从哪里来。可以使用下面的路由选项(译注:列出了路由所使用的接口等):
[[email protected] ~]# ip route get 203.104.192.252 203.104.192.252 via 103.42.214.129 dev ens3 src 103.42.214.185 cache
更改默认路由
[[email protected] ~]# ip route add default via 103.42.214.185
显示网络统计数据
使用ip命令还可以显示不同网络接口的统计数据。
[[email protected] ~]# ip -s link 1: lo: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 1551184 1679 0 0 0 0 TX: bytes packets errors dropped carrier collsns 1551184 1679 0 0 0 0 2: ens3: mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether 00:16:3c:5a:28:36 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 1600242326 24178377 0 0 0 0 TX: bytes packets errors dropped carrier collsns 518491490 1346047 0 0 0 0
当你需要获取一个特定网络接口的信息时,在网络接口名字后面添加选项ls即可。使用多个选项-s会给你这个特定接口更详细的信息。特别是在排除网络连接故障时,这会非常有用.
[[email protected] ~]# ip -s -s link ls ens3 2: ens3:mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether 00:16:3c:5a:28:36 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 1600491831 24183603 0 0 0 0 RX errors: length crc frame fifo missed 0 0 0 0 205384 TX: bytes packets errors dropped carrier collsns 518496984 1346100 0 0 0 0 TX errors: aborted fifo window heartbeat transns 0 0 0 0 2
ARP条目
地址解析协议(ARP)用于将一个IP地址转换成它对应的物理地址,也就是通常所说的MAC地址。使用ip命令的neigh或者neighbour选项,你可以查看接入你所在的局域网的设备的MAC地址.
[[email protected] ~]# ip neighbour 103.42.214.129 dev ens3 lladdr 14:fe:b5:d4:90:8b DELAY
监控netlink消息
也可以使用ip命令查看netlink消息。monitor选项允许你查看网络设备的状态。比如,所在局域网的一台电脑根据它的状态可以被分类成REACHABLE或者STALE。使用下面的命令:
[[email protected] ~]# ip monitor all [nsid current]103.42.214.129 dev ens3 lladdr 14:fe:b5:d4:90:8b STALE [nsid current]103.42.214.129 dev ens3 lladdr 14:fe:b5:d4:90:8b STALE [nsid current]103.42.214.129 dev ens3 lladdr 14:fe:b5:d4:90:8b STALE [nsid current]103.42.214.129 dev ens3 lladdr 14:fe:b5:d4:90:8b STALE [nsid current]103.42.214.129 dev ens3 lladdr 14:fe:b5:d4:90:8b STALE [nsid current]103.42.214.129 dev ens3 lladdr 14:fe:b5:d4:90:8b STALE [nsid current]103.42.214.129 dev ens3 lladdr 14:fe:b5:d4:90:8b STALE [nsid current]103.42.214.129 dev ens3 lladdr 14:fe:b5:d4:90:8b STALE [nsid current]103.42.214.129 dev ens3 lladdr 14:fe:b5:d4:90:8b STALE [nsid current]103.42.214.129 dev ens3 lladdr 14:fe:b5:d4:90:8b STALE [nsid current]103.42.214.129 dev ens3 lladdr 14:fe:b5:d4:90:8b STALE [nsid current]103.42.214.129 dev ens3 lladdr 14:fe:b5:d4:90:8b STALE [nsid current]103.42.214.129 dev ens3 lladdr 14:fe:b5:d4:90:8b STALE [nsid current]103.42.214.129 dev ens3 lladdr 14:fe:b5:d4:90:8b STALE [nsid current]103.42.214.129 dev ens3 lladdr 14:fe:b5:d4:90:8b STALE [nsid current]103.42.214.129 dev ens3 lladdr 14:fe:b5:d4:90:8b STALE
激活和停止网络接口
你可以使用ip命令的up和down选项来激某个特定的接口,就像ifconfig的用法一样。
在这个例子中,当ppp0接口被激活和在它被停止和再次激活之后,你可以看到相应的路由表条目。这个接口可能是wlan0或者eth0。将ppp0更改为你可用的任意接口即可.
[[email protected] ~]# ip link set ens3 down [[email protected] ~]# ip link set ens3 up
获取帮助
当你陷入困境,不知道某一个特定的选项怎么用的时候,你可以使用help选项。man页面并不会提供许多关于如何使用ip选项的信息,因此这里就是获取帮助的地方。
比如,想知道关于route选项更多的信息:
[[email protected] ~]# ip route help Usage: ip route { list | flush } SELECTOR ip route save SELECTOR ip route restore ip route showdump ip route get ADDRESS [ from ADDRESS iif STRING ] [ oif STRING ] [ tos TOS ] [ mark NUMBER ] ip route { add | del | change | append | replace } ROUTE SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ] [ table TABLE_ID ] [ proto RTPROTO ] [ type TYPE ] [ scope SCOPE ] ROUTE := NODE_SPEC [ INFO_SPEC ] NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ] [ table TABLE_ID ] [ proto RTPROTO ] [ scope SCOPE ] [ metric METRIC ] INFO_SPEC := NH OPTIONS FLAGS [ nexthop NH ]... NH := [ via ADDRESS ] [ dev STRING ] [ weight NUMBER ] NHFLAGS OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ] [ rtt TIME ] [ rttvar TIME ] [reordering NUMBER ] [ window NUMBER ] [ cwnd NUMBER ] [ initcwnd NUMBER ] [ ssthresh NUMBER ] [ realms REALM ] [ src ADDRESS ] [ rto_min TIME ] [ hoplimit NUMBER ] [ initrwnd NUMBER ] [ features FEATURES ] [ quickack BOOL ] [ congctl NAME ] [ expires TIME ] TYPE := { unicast | local | broadcast | multicast | throw | unreachable | prohibit | blackhole | nat } TABLE_ID := [ local | main | default | all | NUMBER ] SCOPE := [ host | link | global | NUMBER ] NHFLAGS := [ onlink | pervasive ] RTPROTO := [ kernel | boot | static | NUMBER ] TIME := NUMBER[s|ms] BOOL := [1|0] FEATURES := ecn
小结
现在linux版本都到centos7(我用的最多的是centos7)了,而centos7中已经去除了ifconfig命令。所以对于网络管理者们和所有的Linux使用者们,ip命令是必备工具。是时候抛弃ifconfig命令了!
- 上一篇: MySQL中DDL、DML、DCL的那些语句
- 下一篇: pycharm2016版汉化方法