ip是一个命令,ip命令的作用有很多!基本上是集成了ifconfig和route这两个命令,只是ip的功能更强大!有兴趣的请用vi/sbin/ifup知道,整个ifup是用命令ip实现的。下面是使用方法[root@linux~]#ip[option][action][command]参数:option:设置的参数,主要有:-s:显示设备的统计信息(statistics),比如总的接收到的数据包数量等;Action:是可以作用的网络参数,包括:link:关于设备(device)的相关设置,包括MTU,MAC地址等。addr/address:关于额外的IP设置,比如实现多个IP等;route:路由相关的相关设置从上面的语法我们可以知道,ip除了可以设置一些基本的网络参数外,还可以进行额外的IP设置,包括多个IP的实现,真是太完美了!下面我们分三部分(link、addr、route)来介绍ip命令。----------------------------------------------------------------------------关于设备(device)相关设置:iplinkiplink可以用设备设置(device)相关设置,包括网络设备的MTU和MAC等。当然也可以启用(up)或关闭(down)某个网络设备。整个语法是这样的:[root@linux~]#ip[-s]linkshow<==简单查看设备相关信息[root@linux~]#iplinkset[device][Actionandparameter]参数:show:只显示本设备的相关内容,如果加上-s,会显示更多的统计数据;set:可以开始设置项目,device指的是eth0、eth1等设备编码;动作和参数:包括以下动作:up|down:启动(up)或关闭(down)某个设备,其他参数使用预设的以太网参数;address:如果设备可以改变MAC,使用这个参数修改;name:给这个设备一个特殊的名字;mtu:设置最大传输单位。例1:显示所有设备信息[root@linux~]#iplinkshow1:lo:mtu16436qdiscnoqueue,up,10000>link/loopback00:00:00:00:00:00brd00:00:00:00:00:002:eth0:mtu1500qdiscpfifo_fastqlen1000,multicast,up,10000>link/ether00:50:fc:22:9a:cbbrdff:ff:ff:ff:ff:ff3:sit0:mtu1480qdiscnooplink/sit0.0.0.0brd0.0.0.0[root@linux~]#ip-slinkshoweth02:eth0:mtu1500qdiscpfifo_fastqlen1000,multicast,up,10000>0link:/ether050:FC:22:9A:CBBRDFF:FF:FF:FF:FF:FF:FF:FFRX:BYTES数据包错误删除覆盖4840117922247372000000000000TX:BYTES数据包掉落的载流子掉落的运载工具291410429029142902867775300000000000000000000000.0000.linkshow可以显示整个设备的硬件相关信息,如上图,包括MAC地址,MTU等,比较有意思的是sit0设备,它可以转换IPv4和IPv6数据包。对我们的纯IPv4网络没有影响。lo和sit0由主机自己设置。而如果加上-s参数,则会列出该网卡的相关统计信息,包括接收(RX)和发送(TX)数据包的数量等,详细内容与ifconfig的输出相同。例2:启动、关闭和设置设备的相关信息[root@linux~]#iplinkseteth0up启动eth0设备;[root@linux~]#iplinkseteth0down关闭eth0设备;[root@linux~]#iplinkseteth0mtu1000将MTU改为1000字节,单位为字节。更新网卡的MTU也可以使用ifconfig来完成。如果要更改“网卡编码、MAC地址信息”,那么就得用ip,设置前需要关闭网卡,否则会失败。如下图:例3:修改网卡编码、MAC等参数[root@linux~]#iplinkseteth0namevbirdSIOCSIFNAME:Deviceorresourcebusy由于设备当前处于启动状态,所以不能这样设置。你应该这样做:[root@linux~]#iplinkseteth0down<==shutdownthedevice[root@linux~]#iplinkseteth0namevbird<==reset[root@linux~]#iplinkshow<==查看信息vbird:mtu900qdiscpfifo_fastqlen1000,milticase>link/ehter00:40:d0:13:c3:46brdff:ff:ff:ff:ff:ff哦,连网卡代码可以换!不过,玩完记得改回来!因为我们的ifcfg-eth0还是用原来的设备代码!为避免问题,将其改回[root@linux~]#iplinksetvbirdnameeth0<==将设备改回[root@linux~]#iplinkseteth0addressaa:aa:aa:aa:aa:aa[root@linux~]#iplinkshoweth0如果你的网卡支持修改MAC,那么上面的命令就可以修改你的网卡MAC!不过,俗话说,测试完请马上改回来!可以在这里设置本设备的硬件相关信息设置,包括MTU、MAC和传输模式等。有意思的是address项,后面是MAC地址而不是IP地址,很容易写错!切记切记!更多的硬件参数可以使用manip查看iplink相关的设置。----------------------------------------------------------------------------关于额外的IP相关设置:ipaddress如果ip链接与OSI七层相关model如果是数据链路层第二层相关,那么ip地址(ipaddr)就是网络层第三层相关。主要是设置IP相关的各种参数,包括网络掩码、广播等。[root@linux~]#ipaddressshow<==查看IP参数[root@linux~]#ipaddress[add|del][IP参数][dev设备名][相关参数]参数:show:简单显示输出设备的IP信息;add|del:增加(add)或删除(del)相关参数,主要包括:IP参数:主要是网络域的设置,如192.168.100.100/24设置;dev:该IP参数要设置的设备,如eth0、eth1等;相关参数:如下:broadcast:设置广播地址,设置值为+表示系统自动计算;label:设备的别名,如eth0:0;scope:此设备的域,通常有以下类别:global:允许来自所有来源的连接;site:仅支持IPv6,并且只允许来自该主机的连接;link:只允许设备自己连接;host:只允许主机内的连接;所以当然要用global。默认也是全局的!例1:显示所有设备的IP参数:[root@linux~]#ipaddressshow1:lo:mtu16436qdiscnoqueue,up,10000>link/loopback00:00:00:00:00:00brd00:00:00:00:00:00inet127.0.0.1/8范围主机loinet6::1/128范围主机valid_lftforeverpreferred_lftforever2:eth0:mtu1500qdiscpfifo_fastqlen1000,multicast,up>ether0link:50:fc:22:9a:cbbrdff:ff:ff:ff:ff:ffinet192.168.1.2/24brd192.168.1.255范围全局eth0inet6fe80::250:fcff:fe22:9acb/64范围链接valid_lft永远preferred_lftforever3:sit0:mtu1480qdiscnooplink/sit0.0.0.0brd0.0.0.0我们再进一步添加一个虚拟网络设备:例2:添加一个新设备,名称假设为eth0:vbird[root@linux~]#ip地址add192.168.50.50/24broadcast+/deveth0labeleth0:vbird[root@linux~]#ipaddressshoweth02:eth0:mtu1500qdiscpfifo_fastqlen1000link/ether00:40:d0:13:c3:46brdff:ff:ff:ff:ff:ffinet192.168.1.100/24brd192.168.1.255scopeglobaleth0inet192.168.50.50/24brd192.168.50.255scopeglobaleth0:vbirdinet6fe80::240:d0ff:fe13:c346/64scopelinkvalid_lftforeverpreferred_lftforever上面的输出多了一行,新增了一个设备,名称为eth0:vbird至于那个broadcast+也可以写成broadcast192.168.50.255[root@linux~]#ifconfigeth0:vbirLinkencap:EthernetHWaddr00:40:D0:13:C3:46inetaddr:192.168.50.50Bcast:192.155.25.55Mask:2255.0UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1Interrupt:5Baseaddress:0x3e00如果你使用ifconfig,你可以看到这个奇怪的东西!例3:删除刚才的设备[root@linux~]#ipaddressdel192.168.50.50/24deveth0删除比较简单。----------------------------------------------------------------------------关于路由设置:iproute此项是路由的查看和设置。其实iproute的功能和route命令差不多,只是还可以设置额外的参数,比如MTU规划等,还是挺强大的![root@linux~]#iprouteshow<==简单显示路由设置[root@linux~]#iproute[add|del][IPornetworkdomain][viagateway][devdevice]parameters:show:单纯显示路由表,也可以用list;add|del:添加(add)或删除(del)路由;IP或域:可以使用192.168.50.0/24之类的域,也可以直接通过:从那个网关出去,不一定是必须的;dev:从那个设备出去,需要;mtu:可以另外设置MTU的值;示例1:显示当前路由信息[root@linux~]#iprouteshow192.168.1.0/24deveth0protokernelscopelinksrc192.168.1.2169.254.0.0/16deveth1scopelinkdefaultvia192.168.1.254deveth1如上表所示,最简单的功能就是显示当前的路由信息??,其实和route命令是一样的。必须注意的几点:proto:该路由的路由协议主要有redirect、kernel、boot、static、ra等,其中kernel是指内核直接决定的自动设置。scope:路由的范围,主要是link,就是与这个设备相关的直连。下面看看如何添加和删除路由:例2:添加路由,主要是本机可以直接通信的域[root@linux~]#iprouteadd192.168.5.0/24deveth0用于直接通信的机器machineroute设置在network域,不需要通过外部路由器[root@linux~]#iprouteshow192.168.5.0/24deveth0scopelink....以下省略....示例3:添加canpass到外面的路由需要经过路由器;[root@linux~]#iprouteadd192.168.10.0/24via192.168.5.100deveth0[root@linux~]#iprouteshow192.168.5.0/24deveth0scopelink....其他遗漏....192.168.10.0/24via192.168.5.100deveth0仔细看,因为我有192.168.5.0/24的路由(和我的网卡直接相关),所以可以用192.168。10.0/24的路由丢给192.168.5.100的主机帮忙传递!和前面提到的route命令一样的限制!例4:添加默认路由[root@linux~]#iprouteadddefaultvia192.168.1.2deveth0即192.168.1.2是我的默认路由器(网关);请记住,只有一个默认路由是可以的;示例5:删除路由[root@linux~]#iproutedel192.168.10.0/24[root@linux~]#iproutedel192.168.5.0/24参考链接:Linux中检查网关的3个有用命令
