从centos7以前我们一直使用ifconfig命令来执行网络相关的任务,比如检查和配置网卡信息,但是ifconfig已经不再被维护,并且在最近版本的Linux中被废除了!ifconfig命令已经被ip命令所代替了。

ip 命令跟 ifconfig 命令有些类似,但是强力的多,他有许多新功能。ip 命令完成很多ifconfig命令无法完成的任务。

本教程将会讨论ip命令的12中最常用法,让我们开始吧

案例1:检查网卡信息

  • 检查网卡的诸如IP地址,子网等网络信息,使用ip addr show
[root@ecs-c286]$ ip addr show

[root@ecs-c286]$ ip a s
[root@ecs-c286]$ ip a
  • 如果显示系统中所有可用网卡的相关网络信息,不过如果你想查看某块网卡的信息,则命令为:
[root@ecs-c286 ~]# ip a s eth0

案例2:启动/禁用网卡

  • 使用ip命令来启用一个被禁用的网卡:
[root@ecs-c286 ~]# ip link set eth0 up
  • 而要禁用网卡则使用down触发器:
[root@ecs-c286 ~]# ip link set eth0 down

案例3:为网卡分配IP地址以及其他网络信息

  • 要为网卡分配IP地址,我们使用下面命令:
ip addr add 192.169.1.250/255.255.255.0 dev eth1
  • 也可以使用ip命令来设置广播地址。默认是没有设置广播地址的,设置广播地址的命令为:
ip addr add broadcast 192.168.1.255 dev eth1
  • 我们也可以使用下面命令来根据IP地址设置标准的广播地址:
ip addr add 192.168.1.10/24 brd + dev eth1

例如上面例子所示,我们可以使用brd代替broadcast来设置广播地址

案例4:删除网卡中配置的IP地址

  • 若想从网卡中删除掉某个IP,使用如下ip命令:
ip addr del 192.168.1.10/24 dev eth1

案例5:为网卡添加别名(假设网卡名为eth0)

  • 添加别名,即为网卡添加不止一个ip,执行下面命令:
ip addr add 192.168.1.20/24 dev eth0 label eth0:1

案例6:检查路由/默认网卡的信息

  • 查看路由信息会给我们显示数据包到达目的地的路由路径。要查看网络路由信息,执行下面命令:
ip route show
  • 在上面输出结果中,我们能够看到所有网卡上数据包的路由信息。我们也可以获取特定IP的路由信息,方法是:
ip route get 192.168.1.1

添加静态路由

  • 我们也可以使用ip来修改数据包的默认路由。方法是使用 ip route 命令:
ip route add default via 192.168.1.150/24
  • 这样所有的网络数据包通过192.168.1.150 来转发,而不是添加默认路由了。若要修改某个网卡的默认路由,执行:
ip route add 172.16.32.32 via 192.168.1.150/24 dev eth0

案例8:删除默认路由

  • 要删除之前设置的默认路由
ip route del 192.168.1.150/24

注意:用上面方法修改的默认路由只是临时有效的,在系统重启后所有的改动都会丢失。要永久修改路由,需要修改或者创建route-eth0文件。将下面这行加入其中:

vi /etc/sysconfig/network-scripts/route-eth1
172.16.32.32 via 192.168.0.150/24 dev eth1

保存并退出该文件。

若你使用的是基于 Ubuntu 或 debian 的操作系统,则该要修改的文件为 /etc/network/interfaces,然后添加 ip route add 172.16.32.32 via 192.168.1.150/24 dev eth1 这行到文件末尾。

案例9:检查所有的ARP记录

ARP,是地址解析协议的缩写,用于将ip地址转换为物理地址(也就是MAC地址)。所有的ip和其对应的MAC明细都存储在一张表中,这张表叫做arp缓存。

  • 要查看ARP缓存中的记录,即连接到局域网中设备的MAC地址,则使用如下ip命令:
ip neigh

案例10:修改ARP记录

  • 删除ARP记录的命令为:
ip neigh del 192.168.1.106 dev eth1
  • 若想往ARP缓存中添加新记录,则命令为:
ip neigh add 192.168.1.150 lladdr 33:1g:75:37:r3:84 dev eth1 nud perm

这里nud的意思是“neghbour state”(网络邻居状态),他的值可以是:

  1. perm - 永久有效并且只能被管理员删除
  2. noarp - 记录有效,但在生命周期过期后就允许被删除了
  3. stale - 记录有效,但可能已经过期
  4. reachable - 记录有效,但超时后就失效了

查看网络统计信息

通过ip命令还能查看网络统计信息,比如所有网卡上传输的字节数和报文数,错误或者丢弃的报文数等,使用ip -s link 命令来查看:

ip -s link

获取帮助

若你想查看某个上面例子中没有的选项,那么你可以查看帮助。事实上对任何命令你都可以寻求帮助。要列出 ip 命令的所有可选项,执行:

ip help

记住,ip 命令是一个对 Linux 系统管理来说特别重要的命令,学习并掌握它能够让配置网络变得容易。

ip命令规范的更多相关文章

  1. ip命令和ifconfig命令(转载)

    Linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者.使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务.ifconfig是net-tools中已被废弃使用的一个命 ...

  2. dos 固定ip命令

    dos 固定ip命令 ***************************************************************************************** ...

  3. Linux下的ip命令,除了ifconfig还有很多

    linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者.使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务.ifconfig是net-tools中已被废弃使用的一个命 ...

  4. linux包之iproute之ip命令

    [root@localhost ~]# rpm -qf /sbin/ipiproute-2.6.32-31.el6.x86_64ip 是个命令, ip 命令的功能很多!基本上它整合了 ifconfig ...

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

    ifconfig命令 1. 查看已被激活的网卡的详细信息 # ifconfig eth0 Link encap:Ethernet HWaddr 00:30:67:F2:10:CF inet addr: ...

  6. linux下ip命令用法

    配置数据转发,可以通过 1.路由转发即用用路由器实现: 2.使用NAT转发: 简单的说: 路由表内的信息只是指定数据包在路由器内的下一个去处.并不能改变数据包本身的地址信息.即它只是“换条路而已,目的 ...

  7. IP命令

    ip命令是Linux下较新的功能强大的网络配置工具. 1 功能 ip命令用来显示或操纵Linux主机的路由.网络设备.策略路由和隧道. 2用法 Usage: ip [ OPTIONS ] OBJECT ...

  8. 试试Linux下的ip命令,ifconfig已经过时了

    linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者.使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务.ifconfig是net-tools中已被废弃使用的一个命 ...

  9. Linux:Day11(下) ip命令及配置文件方式

    配置Linux网络属性:ip命令 ip [ OPTIONS ] OBJECT { COMMAND | help } OBJECT := { link | addr | route } link OBJ ...

随机推荐

  1. const在C与C++中的区别

    在C中,const不是常量,只能说是一个不能改变的变量(注意是变量),C编译器不能把const看成看成一个编译期间的常量,因为他在内存中有分配,C编译器不知道他在编译期间的值.所以不能作为数组定义时的 ...

  2. RMQ入门解析

    参照大佬博客:https://www.cnblogs.com/yoke/p/6949838.html RMQ(Range Minimum/Maximum Query),  是一种问题,即 查询给定区间 ...

  3. JAXB "有两个名为 "**" 的属性,类的两个属性具有相同名称 "**""解决方案

    这里说的名称冲突指的是: JavaBean 属性名称与字段名称之间的名称冲突.在pojo类中的setter和getter方法会导致运行报错:Exception in thread "main ...

  4. 寒假安卓app开发学习记录(3)

    今天终于开始正式的安卓软件开发学习.开始用了大约一个小时的时间把创建第一个软件的学习视频观看了一下.跟着视频一边学习一边操作. 首先是创建项目,创建的过程和之前创建Java项目的过程相似.先给app起 ...

  5. numpy函数hstack,vstack,dstack简介

    vstack.hstack和dstack都用于把几个小数组合并成一个大数组.它们的差别是小数组的元素在大数组中的排列顺序有所不同.把两部手机摆到一起有几种方式?水平的左右排列,垂直的上下排列,还可以把 ...

  6. 炸鱼w咕咕咕

    退役选手又回来了w + 将近一个月莫有学OI变得十分笨拙 + 洛谷打卡从300+ 变为 10 + 冬令营加油(虽然我会崩 + 省选加油 (虽然我进不去

  7. 【C语言】(for循环嵌套)找出1000以内的水仙花数

    什么是水仙花数? 水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153). 分析: 根据定义可知: a*a*a+b*b*b+c*c*c ...

  8. 用python计算一条射线到两个平面的交点

    前两天,一个朋友找我(半个程序猿)用python帮他写数学模型,当时的我直接是懵逼的,当听到三维啥的时候,整个人就好了,最终在周末花了3个小时把逻辑理了一遍,给小伙伴一个满意的答复了,话不多说,我来整 ...

  9. coturn服务器配置中英对比

    coturn服务器配置中英对比 默认配置位置 /etc/turnserver.conf # RFC5766-TURN-SERVER configuration file # RFC5766-TURN- ...

  10. Android 调起系统相机拍照

    概述 最近在看 nanChen 写的图片选择器 ImagePicker,感觉写得很不错,也打算把从中学到的东西写下来.很多时候,遇到一个好的框架能够降低开发成本这是好事.但是也要去了解其内部具体实现逻 ...