显⽰所有⽹络接⼝信息
输⼊ ip addr 或者 ip a 命令可以显⽰所有的⽹络接⼝信息
[root@ecs-centos-7 ~]# ip addr
1: lo: valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: inet 192.168.0.9/24 brd 192.168.0.255 scope global noprefixroute dynamic eth0 valid_lft 74409sec preferred_lft 74409sec inet6 fe80::f816:3eff:fee0:4fb8/ scope link valid_lft forever preferred_lft forever[root@ecs-centos-7 ~]# 上⾯的输出中,可以看出系统⽬前的⽹络接⼝分别是 lo 和 eth0, 前者是⽹络环回接⼝,后者是常规的⽹络接⼝输出接⼝信息的 字段详解 LOWER_UP 表⽰⽹络电缆已插⼊并且已连上⽹络mtu 1500: 最⼤传输的单位1500字节qdisc pfifo_fast: 数据包排队state UP: 接⼝状态已开启qlen 1000: 传输队列长度 link/ether fa:16:3e:e0:4f:b8 Mac地址brd ff:ff:ff:ff:ff:ff ⼴播地址inet 192.168.0.9/24 : IPV4scope global: 全局有效dynamic eth0: 动态分配地址valid_lft 74409sec: IPV4有效期preferred_lft 74409sec: IPV4⾸选⽣存期inet6 fe80::f816:3eff:fee0:4fb8/ IPV6scope link: 仅在此接⼝上⽣效 除了输出所有的⽹络接⼝信息外,还可以按照以下⽅式个性化输出⽹络接⼝信息 按照是否⽀持 IPV4 或 IPV6输出命令 ip -4 a 会输出只⽀持IPV4的接⼝信息同样,命令 ip -6 a 会输出只⽀持IPV6的接⼝信息 按照接⼝名字输出 命令 ip a show eth0会输出 eth0接⼝的信息 [root@ecs-centos-7 ~]# ip a show eth0 2: eth0: inet 192.168.0.9/24 brd 192.168.0.255 scope global noprefixroute dynamic eth0 valid_lft 73494sec preferred_lft 73494sec inet6 fe80::f816:3eff:fee0:4fb8/ scope link valid_lft forever preferred_lft forever 按照⽹络接⼝开启和关闭状态输出 命令 ip link ls up 会输出所有处于开启状态的⽹络接⼝信息 那么,ip link ls down就会输出所有处于关闭状态的⽹络接⼝信息 为⽹络接⼝ 添加、移除 IP地址 添加IP 为指定⽹络接⼝分配IP地址的命令格式: ip a add ip地址 dev 接⼝名字 ⽐如:现在要为eth0 ⽹络接⼝分配⼀个⽹络掩码为 20 的IP 192.168.1.10, 具体的输⼊请看下⾯的实例 [root@ecs-centos-7 ~]# ip a add 192.168.1.10/20 dev eth0[root@ecs-centos-7 ~]# ip a show eth0 2: eth0: inet 192.168.0.9/24 brd 192.168.0.255 scope global noprefixroute dynamic eth0 valid_lft 71787sec preferred_lft 71787sec inet 192.168.1.10/20 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::f816:3eff:fee0:4fb8/ scope link valid_lft forever preferred_lft forever 从上⾯例⼦的输出结果可以看出,⽹络接⼝eth0上多了⼀个192.168.1.10的 IP 命令 ip a add 192.168.1.10/20 dev eth0 执⾏成功的话,是没有任何输出,如果⽹络接⼝ eth0 不存在的话,会输出 Cannot find device \"eth0\" 的错误信息 其实,还可以通过执⾏ ping 192.168.1.10 命令来测试⽹络接⼝上IP是否分配成功,如果能 ping 通IP的话,表⽰分配成功,否则表⽰失败说明:192.168.1.10/20 中 20 是 CIDR 表⽰法的⽹络掩码,想详细了解的可以⾃⾏查阅⽹络掩码的资料 移除IP ⽹络接⼝上添加了IP之后,可使⽤ ip a del ip地址 dev 接⼝名字 命令从指定的接⼝移除指定的IP,移除的时候IP后⾯需要携带⽹络掩码 [root@ecs-centos-7 ~]# ip a del 192.168.1.10/20 dev eth0[root@ecs-centos-7 ~]# ip a show eth0 2: eth0: inet 192.168.0.9/24 brd 192.168.0.255 scope global noprefixroute dynamic eth0 valid_lft 71414sec preferred_lft 71414sec inet6 fe80::f816:3eff:fee0:4fb8/ scope link valid_lft forever preferred_lft forever 修改⽹络接⼝状态 要关闭或者开启⽹络接⼝,可以使⽤ ip link set dev 接⼝名字 up/down 命令例如:有 lo 和 eth0 两个⽹络接⼝, 具体接⼝信息如下 [root@ecs-centos-7 ~]# ip a 1: lo: valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: inet 192.168.0.9/24 brd 192.168.0.255 scope global noprefixroute dynamic eth0 valid_lft 59216sec preferred_lft 59216sec inet6 fe80::f816:3eff:fee0:4fb8/ scope link valid_lft forever preferred_lft forever 通过 ping -w 3 127.0.0.1 命令测试,结果表明 lo 接⼝⽬前是开启状态,具体的测试输出如下所⽰ [root@ecs-centos-7 ~]# ping -w 3 127.0.0.1 PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data. bytes from 127.0.0.1: icmp_seq=1 ttl= time=0.014 ms bytes from 127.0.0.1: icmp_seq=2 ttl= time=0.026 ms bytes from 127.0.0.1: icmp_seq=3 ttl= time=0.022 ms bytes from 127.0.0.1: icmp_seq=4 ttl= time=0.023 ms--- 127.0.0.1 ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 2999msrtt min/avg/max/mdev = 0.014/0.021/0.026/0.005 ms 现在关闭 lo ⽹络接⼝,并再次测试该接⼝的状态,具体命令如下: [root@ecs-centos-7 ~]# ip link set dev lo down[root@ecs-centos-7 ~]# ip link show lo 1: lo: PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data. --- 127.0.0.1 ping statistics ---4 packets transmitted, 0 received, 100% packet loss, time 2999ms 执⾏ ip link set dev lo down 命令之后,关闭了⽹络接⼝lo,通过 ip link show lo 命令查看该接⼝的信息,结果表明接⼝是关闭状态,再次通过 ping -w 3 127.0.0.1测试接⼝的状态,再⼀次确认了接⼝是关闭状态 修改⽹络接⼝传输队列长度 通过 p l set txqueuelen 长度 dev 接⼝名字 命令可以设置⽹络接⼝的传输队列长度 [root@ecs-centos-7 ~]# ip l show eth0 2: eth0: [root@ecs-centos-7 ~]# ip l set txqueuelen 1000 dev eth0[root@ecs-centos-7 ~]# ip l show eth0 2: eth0: 上⾯的例⼦中,字符串 qlen 1200 表⽰传输队列长度是 1200 从例⼦中可以看出,修改传输队列长度之前,传输队列长度是 1200 执⾏ ip l set txqueuelen 1000 dev eth0 命令把传输队列长队修改为 1000, 然后再执⾏ ip l show eth0 命令查询 eth0⽹络接⼝的信息,查询结果中 defaultqlen 1000 说明修改成功 修改⽹络接⼝的MTU(最⼤传输单元) 通过 p l set mtu 长度 dev 接⼝名字 命令可以设置⽹络接⼝的最⼤传输单元 [root@ecs-centos-7 ~]# ip l show eth0 2: eth0: [root@ecs-centos-7 ~]# ip l set set mtu 1500 dev eth0[root@ecs-centos-7 ~]# ip l show eth0 2: eth0: 上⾯的例⼦中,字符串 mtu 1600 表⽰最⼤传输单元是 1600 从例⼦中可以看出,修改传输队列长度之前,最⼤传输单元是 1600 执⾏ ip l set set mtu 1500 dev eth0 命令把最⼤传输单元修改为 1500, 然后再执⾏ ip l show eth0 命令查询 eth0⽹络接⼝的信息,查询结果中 mtu1500 说明修改成功 查看IP路由表 下⾯⼏条命令都可以查看 IP 路由表 ip rip routeip r listip route list 查看路由表 [root@ecs-centos-7 ~]# ip r default via 192.168.0.1 dev eth0 proto dhcp metric 100 169.254.169.254 via 192.168.0.254 dev eth0 proto dhcp metric 100 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.9 metric 100 查看指定IP以及⽹络掩码的路由表 [root@ecs-centos-7 ~]# ip r list 192.168.0.0/24 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.9 metric 100 查看ARP缓存 ARP是 Address Resolution Protocol 的缩写, 全称是地址解析协议,它是⽤于实现从IP地址到Mac地址的映射,也就是询问⽬标IP的Mac地 址 在本地存储了⼀份IP对应Mac地址的映射表,这张表叫做 ARP缓存表,可以使⽤ ip n 命令查看缓存表 [root@ecs-centos-7 ~]# ip n 192.168.0.1 dev eth0 lladdr fa:16:3e::38:a8 REACHABLE192.168.0.254 dev eth0 lladdr fa:fa:fa:fa:fa:01 STALE 更改⽹卡Mac地址 ⼤部分场景中是不需要修改Mac地址的,但有时你可能想隐藏真实的Mac地址(物理地址),这时可以修改Mac地址,修改Mac地址的命令如下 ip link set dev 接⼝名 address 新的Mac地址 下⾯以修改 lo ⽹络接⼝的Mac地址为例来说明 [root@ecs-centos-7 ~]# ip l list lo 1: lo: [root@ecs-centos-7 ~]# ip l set lo address fa:16:3e:e0:4f:b4[root@ecs-centos-7 ~]# ip l list lo 1: lo: 从上⾯的例⼦中可以看出,lo接⼝初始的Mac地址是 00:00:00:00:00:00 执⾏ ip l set lo address fa:16:3e:e0:4f:b4 命令修改Mac地址,然后再执⾏ ip l list lo 查看 lo接⼝的信息,输出的结果信息表明Mac地址修改成功注意:如果当前⽹络接⼝上执⾏上⾯的命令,当前会话会中断,需要重启机器才能恢复,所以最好是在其他的⽹络接⼝上测试 查看⽹络统计信息 通过 ip -s link 命令可以查看⽹络接⼝上的⼀些统计数据,⽐如接⼝上传输的字节数、报⽂数,错误或者丢弃的报⽂数等等 [root@ecs-centos-7 ~]# ip -s link 1: lo: TX: bytes packets errors dropped carrier collsns 272 2 0 0 0 0 2: eth0: RX: bytes packets errors dropped overrun mcast 47949 531 0 0 0 0 TX: bytes packets errors dropped carrier collsns 50816 492 0 0 0 0 [root@ecs-centos-7 ~]# 想查看更详细的信息可以使⽤ ip -s -s link 命令, 这个在排除⽹络故障时经常⽤到
因篇幅问题不能全部显示,请点此查看更多更全内容