一、linux 下iptoute2网络配置工具
前面我们已经学习使用了ifconfig、route两个关于网络配置的命令,这两个命令和netstat、arp等命令是属于net-tools的rpm的安装包,现在已经有了一个新的工具包用来取代上面的命令,安装包为iproute,包内包含了新的命令ip、ss,这俩命令很强大通过下图就可以看出。
二、linux 下ip命令的使用
1、ip命令简介
ip是iproute软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具,例如ifconfig、route等,使用权限为超级用户。下图可以看出ip命令的常用搭配及介绍。
2、常用的选项
-V,-Version 打印ip的版本并退出。
-s,-stats,-statistics 输出更为详尽的信息。如果这个选项出现两次或多次,则输出的信息将更为详尽。
-f,-family 这个选项后面接协议种类,包括inet、inet6或link,强调使用的协议种类。如果没有足够的信息告诉ip使用的协议种类,ip就会使用默认值inet或any。link比较特殊,它表示不涉及任何网络协议。
-4 是-family inet的简写。
-6 是-family inet6的简写。
-0 是-family link的简写。
-o,-oneline 对每行记录都使用单行输出,回行用字符代替。如果需要使用wc、grep等工具处理ip的输出,则会用到这个选项。
-r,-resolve 查询域名解析系统,用获得的主机名代替主机IP地址
3、ip命令使用举例
由于ip命令使用功能较多,本篇就介绍常用的ip link、ip addr、ip route的使用。
3.1、ip link使用举例
启动关闭网卡:
[[email protected] ~]# ip link set dev eth0 up //启动网卡,dev可以省略,set可写成s [[email protected] ~]# ip link set dev eth0 down //关闭网卡
显示设备属性:
[[email protected] ~]# ip -s -s link show eth0 //-s选项出现两次或者更多次,ip会输出更为详细的错误信息统计。 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 00:0c:29:7a:e4:0e brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 43571980 35915 0 0 0 0 RX errors: length crc frame fifo missed 0 0 0 0 0 TX: bytes packets errors dropped carrier collsns 2659582 24034 0 0 0 0 TX errors: aborted fifo window heartbeat 0 0 0 0
上例中show还可以用list、lst、sh、ls、l
来代替。
3.2、ip addr 使用举例
显示协议地址:
[[email protected] ~]# ip addr show eth0 //show还可以用list、lst、sh、ls、l 来代替 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 00:0c:29:7a:e4:0e brd ff:ff:ff:ff:ff:ff inet 192.168.1.110/24 brd 192.168.1.255 scope global eth0 inet6 fe80::20c:29ff:fe7a:e40e/64 scope link valid_lft forever preferred_lft forever
添加一个新的协议地址:
在以太网接口eth0上增加一个地址192.168.1.2,标签为eth0:0:
[[email protected] ~]# ip addr add 192.168.1.2/24 dev eth0 label eth0:0 [[email protected] ~]# ip addr show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 00:0c:29:7a:e4:0e brd ff:ff:ff:ff:ff:ff inet 192.168.1.110/24 brd 192.168.1.255 scope global eth0 inet 192.168.1.2/24 scope global secondary eth0:0 inet6 fe80::20c:29ff:fe7a:e40e/64 scope link valid_lft forever preferred_lft forever
删除一个协议地址:
[[email protected] ~]# ip addr del 192.168.1.2/24 dev eth0 label eth0:0 [[email protected] ~]# ip addr show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 00:0c:29:7a:e4:0e brd ff:ff:ff:ff:ff:ff inet 192.168.1.110/24 scope global eth0 inet6 fe80::20c:29ff:fe7a:e40e/64 scope link valid_lft forever preferred_lft forever
在eth0上增加个ip地址:
[[email protected] ~]# ip addr add dev eth0 192.168.1.23/24 [[email protected] ~]# ip addr show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 00:0c:29:7a:e4:0e brd ff:ff:ff:ff:ff:ff inet 192.168.1.110/24 scope global eth0 inet 192.168.1.23/24 scope global secondary eth0
清除协议地址:
[[email protected] ~]# ip -4 addr flush label "eth0"
注意清除后用ssh登录的会断掉,需要在机器的虚拟终端添加上ip地址或者重启network服务才能从新链接到终端。
3、ip route 命令的使用
设置到网络192.168.1.0/24的路由经过网关192.168.1.1
[[email protected] ~]# ip route add 196.168.1.0/24 via 192.168.1.1 [[email protected] ~]# ip route 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.110 196.168.1.0/24 via 192.168.1.1 dev eth0 169.254.0.0/16 dev eth0 scope link metric 1002 default via 192.168.1.1 dev eth0
删除上例添加的网关:
[[email protected] ~]# ip route del 196.168.1.0/24 via 192.168.1.1 [[email protected] ~]# ip route 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.110 169.254.0.0/16 dev eth0 scope link metric 1002 default via 192.168.1.1 dev eth0
删除路由表中的所有网关路由:
[[email protected] ~]# ip -4 ro flush scope global type unicast [[email protected] ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 e
获得单个路由ip route get:
使用这个命令可以获得到达目的地址的一个路由以及它的确切内容。ip route get命令和ip route show命令执行的操作是不同的。ip route show命令只是显示现有的路由,而ip route get命令在必要时会派生出新的路由。
搜索到61.135.169.125的路由:
[[email protected] ~]# ip route get 61.135.169.125 61.135.169.125 via 192.168.1.1 dev eth0 src 192.168.1.110 cache mtu 1500 advmss 1460 hoplimit 64
通过上面三个命令学习可以看出使用ip命令能代替ifconfig、route等命令,但是由于我们已经习惯的使用ifconfig、route命令以及ip命令的使用复杂性,在这里建议初学者还是使用老的命令,而有了一定的经验以后还是学着使用ip命令。由于本篇所用的ip命令比较简单,若想继续学习下面有一篇文章写的还是比较详细,建议看看。
http://www.cnblogs.com/bamboo-talking/archive/2013/01/10/2855306.html