Linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者。使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务。ifconfig是net-tools中已被废弃使用的一个命令,许多年前就已经没有维护了。iproute2套件里提供了许多增强功能的命令,ip命令即是其中之一。

要安装ip,请点击这里下载iproute2套装工具 。不过,大多数Linux发行版已经预装了iproute2工具。

你也可以使用git命令来下载最新源代码来编译:

$ git clone https://kernel.googlesource.com/pub/scm/linux/kernel/git/shemminger/iproute2.git

设置和删除Ip地址

要给你的机器设置一个IP地址,可以使用下列ip命令:

[root@Gin scripts]# ip addr add 192.168.17.30/24 dev eth0
[root@Gin scripts]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:0c:29:84:0c:21 brd ff:ff:ff:ff:ff:ff
inet 192.168.17.129/24 brd 192.168.17.255 scope global eth0
inet 192.168.17.30/24 scope global secondary eth0
inet6 fe80::20c:29ff:fe84:c21/64 scope link
valid_lft forever preferred_lft forever

请注意IP地址要有一个后缀,比如/24。这种用法用于在无类域内路由选择(CIDR)中来显示所用的子网掩码。在这个例子中,子网掩码是255.255.255.0。

你也可以使用相同的方式来删除IP地址,只需用del代替add。

[root@Gin scripts]# ip addr del 192.168.17.30/24 dev eth0
[root@Gin scripts]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:0c:29:84:0c:21 brd ff:ff:ff:ff:ff:ff
inet 192.168.17.129/24 brd 192.168.17.255 scope global eth0
inet6 fe80::20c:29ff:fe84:c21/64 scope link
valid_lft forever preferred_lft forever

列出路由表条目

ip命令的路由对象的参数还可以帮助你查看网络中的路由数据,并设置你的路由表。第一个条目是默认的路由条目,你可以随意改动它。

在这个例子中,有几个路由条目。这个结果显示有几个设备通过不同的网络接口连接起来。它们包括WIFI、以太网和一个点对点连接。

[root@Gin scripts]# ip route show
192.168.17.0/24 dev eth0 proto kernel scope link src 192.168.17.129
169.254.0.0/16 dev eth0 scope link metric 1002
default via 192.168.17.2 dev eth0

假设现在你有一个IP地址,你需要知道路由包从哪里来。可以使用下面的路由选项(译注:列出了路由所使用的接口等):

[root@Gin scripts]# ip route get 192.168.17.130
192.168.17.130 dev eth0 src 192.168.17.129
cache mtu 1500 advmss 1460 hoplimit 64

更改默认路由

要更改默认路由,使用下面ip命令:

[root@Gin scripts]# ip route add default via 192.168.17.3

显示网络统计数据

使用ip命令还可以显示不同网络接口的统计数据

[root@Gin scripts]# ip -s link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
RX: bytes packets errors dropped overrun mcast
0 0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
0 0 0 0 0 0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:0c:29:84:0c:21 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
135268 1134 0 0 0 0
TX: bytes packets errors dropped carrier collsns
134830 960 0 0 0 0

当你需要获取一个特定网络接口的信息时,在网络接口名字后面添加选项ls即可。使用多个选项-s会给你这个特定接口更详细的信息。特别是在排除网络连接故障时,这会非常有用。

$ ip -s -s link ls p2p1

ARP条目

地址解析协议(ARP)用于将一个IP地址转换成它对应的物理地址,也就是通常所说的MAC地址。使用ip命令的neigh或者neighbour选项,你可以查看接入你所在的局域网的设备的MAC地址。

[root@Gin scripts]# ip neighbour
192.168.17.1 dev eth0 lladdr 00:50:56:c0:00:08 DELAY

监控netlink消息

也可以使用ip命令查看netlink消息。monitor选项允许你查看网络设备的状态。比如,所在局域网的一台电脑根据它的状态可以被分类成REACHABLE或者STALE。使用下面的命令:

[root@Gin scripts]# ip monitor all
[NEIGH]192.168.17.2 dev eth0 lladdr 00:50:56:f3:2d:50 REACHABLE
[NEIGH]192.168.17.1 dev eth0 lladdr 00:50:56:c0:00:08 REACHABLE

激活和停止网络接口

你可以使用ip命令的up和down选项来激某个特定的接口,就像ifconfig的用法一样。

在这个例子中,当ppp0接口被激活和在它被停止和再次激活之后,你可以看到相应的路由表条目。这个接口可能是wlan0或者eth0。将ppp0更改为你可用的任意接口即可。

$ ip link set eth0 down

$ ip link set eth0 up

获取帮助

当你陷入困境,不知道某一个特定的选项怎么用的时候,你可以使用help选项。man页面并不会提供许多关于如何使用ip选项的信息,因此这里就是获取帮助的地方。

比如,想知道关于route选项更多的信息:

[root@Gin scripts]# ip route help
Usage: ip route { list | flush } SELECTOR
ip route get ADDRESS [ from ADDRESS iif STRING ]
[ oif STRING ] [ tos TOS ]
ip route { add | del | change | append | replace | monitor } 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 ]
TYPE := [ unicast | local | broadcast | multicast | throw |
unreachable | prohibit | blackhole | nat ]
TABLE_ID := [ local | main | default | all | NUMBER ]
SCOPE := [ host | link | global | NUMBER ]
FLAGS := [ equalize ]
MP_ALGO := { rr | drr | random | wrandom }
NHFLAGS := [ onlink | pervasive ]
RTPROTO := [ kernel | boot | static | NUMBER ]
TIME := NUMBER[s|ms]

小结

对于网络管理员们和所有的Linux使用者们,ip命令是必备工具。是时候抛弃ifconfig命令了,特别是当你写脚本时。

via: http://linoxide.com/linux-command/use-ip-command-linux/

linux命令总结之ip命令的更多相关文章

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

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

  2. (转)linux命令总结之ip命令

    linux命令总结之ip命令 原文:https://www.cnblogs.com/ginvip/p/6367803.html linux命令总结之ip命令   Linux的ip命令和ifconfig ...

  3. Linux 中如何使用 IP 命令

    老版本的 Linux 中都是使用 ifconfig 命令检查和配置网络接口,但是该命令目前已经没有维护了,取而代之的是 ip 命令 ip 命令和 ifconfig 命令很相似,但是 相比起来,ip命令 ...

  4. 查看linux系统外网ip命令

    终端中输入 curl ipinfo.io 或者 curl ifconfig.me 即可通过IP地址检测网站提供的api获得取本机的外网IP,或者以 JSON 格式返回全部结果.

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

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

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

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

  7. Linux下的ip命令

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

  8. Linux命令之ip命令

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

  9. linux 下ip命令对比ifconfig命令

    原文:https://linux.cn/article-3144-1.html ------------------------------------------------------------ ...

随机推荐

  1. hive创建临时函数

    add jar /home/hjl/sunwg/Lower.jar; create temporary function my_lower as ‘com.example.hive.udf.Lower ...

  2. 团队博客作业Week1 --- 团队成员简介

    团队博客作业Week1 团队作业1 我们团队是一个以功能团队模式组建而成的团队,我们总共有5位队员,分别是:李剑锋.陈谋.卢惠明.潘成鼎.仉伯龙. 中间的那位就是李剑锋,我们的PM(项目经理).性格热 ...

  3. Linux第一二章笔记

    第一章 Linux内核简介 1. Unix内核的特点 简洁:仅提供系统调用并有一个非常明确的设计目的 抽象:几乎所有东西都被当做文件 可移植性:使用C语言编写,使得其在各种硬件体系架构面前都具备令人惊 ...

  4. C/C++:static用法总结

    前言:static是C/C++中一个很重要的关键字,最近阅读了很多博客和资料,遂在此对自己的学习笔记进行简单的总结并发表在这里 一.C语言中的static • 静态全局变量:在全局变量之前加上关键字s ...

  5. iOS 开发学习-import和include的区别

    //当我们在代码中使用两次#include的时候会报错:因为#include相当于拷贝头文件中的声明内容,所以会报重复定义的错误 //但是使用两次#import的话,不会报错,所以他可以解决重复导入的 ...

  6. iOS自学-混合编程

    OC调用swift,引入头文件 #improt "工程名字-swift.h" swift调用OC,在桥梁文件里面引入OC文件 的头文件 尽情混合编程吧...

  7. Team++_炸弹人软件需求说明书

    目标是什么,目标不包括什么? 目标是制造一款受青年人(大学生或中学生)喜爱的手机益智闯关游戏,可以用来打发时间或放松心情. 用户和典型场景是什么? 用户:学生 典型场景:在宿舍无聊时.在睡觉之前或在课 ...

  8. 《Spring1之第四次站立会议》

    <第四次站立会议> 昨天:我把小组成员找到的写关于登录界面的代码加到了我的项目工程里,并对它有了一定的了解,已经能够编译运行了,得到了登陆的界面: 今天:试着做了一下主框架里的在线人数的显 ...

  9. oracle 分页的sql语句

    已知有两种方法效率上貌似第一种更优: 1. select * from( select t1.*, rownum n from (select * from cm_log order by oper_ ...

  10. IO异常 的处理 test

    package com.throwsss; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFou ...