试试Linux下的ip命令，ifconfig已经过时了
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
42.62.36.167
屌爆了
微博评论
2014-06-04T09:33:01.000
42.62.36.167
[赞]
微博评论
2014-06-04T09:33:01.000
42.62.36.167
@我的印象笔记
微博评论
2014-06-04T09:33:01.000
42.62.36.167
哦？ //@2gua:[赞]
微博评论
2014-06-04T09:33:01.000
42.62.36.167
@我的印象笔记
微博评论
2014-06-04T09:33:01.000
42.62.36.167
@我的印象笔记
微博评论
2014-06-04T09:33:01.000
219.146.73.5
好吧，习惯真的很难改。
绿色圣光
2014-06-04T09:58:28.000
157.55.35.48
@我的印象笔记
微博评论
2014-06-04T10:03:01.000
157.55.35.48
Mark
微博评论
2014-06-04T10:03:01.000
124.65.196.2
学习一下
微博评论
2014-06-04T10:33:01.000
124.65.196.2
[赞] //@2gua:[赞]
微博评论
2014-06-04T10:33:01.000
124.65.196.2
[赞]
微博评论
2014-06-04T10:33:01.000
124.65.196.2
//@T-Bagwell刘歧://@2gua: [赞]
微博评论
2014-06-04T10:33:01.000
124.65.196.2
mark
微博评论
2014-06-04T10:33:01.000
198.143.130.90
mark~~~
微博评论
2014-06-04T11:03:01.000
198.143.130.90
nice//@ruochen_SH: //@T-Bagwell刘歧://@2gua: [赞]
微博评论
2014-06-04T11:03:01.000
198.143.130.90
BSD 系统ifconfig用得挺好//@2gua: [赞]
微博评论
2014-06-04T11:03:01.000
112.111.18.29
KISS怎么体现？//@2gua: [赞]
微博评论
2014-06-04T11:33:02.000
112.111.18.29
男的女的嘴对嘴[哈哈]//@王海鹏Seal:KISS怎么体现？//@2gua: [赞]
微博评论
2014-06-04T11:33:02.000
112.111.18.29
[嘻嘻]//@网络化制造:男的女的嘴对嘴[哈哈]//@王海鹏Seal:KISS怎么体现？//@2gua: [赞]
微博评论
2014-06-04T11:33:02.000
112.111.18.29
不错！
微博评论
2014-06-04T11:33:02.000
220.181.108.154
[good]//@网络化制造: 男的女的嘴对嘴[哈哈]//@王海鹏Seal:KISS怎么体现？//@2gua: [赞]
微博评论
2014-06-04T12:03:02.000
220.181.108.154
厉害！！我还一直用ifconfig…………不知道公司机器装没装ip工具//@Linux中国:[嘻嘻]//@网络化制造:男的女的嘴对嘴[哈哈]//@王海鹏Seal:KISS怎么体现？//@2gua: [赞]
微博评论
2014-06-04T12:03:02.000
220.181.108.154
如果你新装的系统里找不到ifconfig，多半就是换成ip这个命令了（之前让我纳闷很久的一个问题）。
微博评论
2014-06-04T12:03:02.000
220.181.108.154
That's so cool!
微博评论
2014-06-04T12:03:02.000
220.181.108.154
回复@王文文IT:应该与时俱进啦[嘻嘻]
微博评论
2014-06-04T12:03:02.000
220.181.108.154
回复@王文文IT:应该与时俱进啦[嘻嘻]//@王文文IT:如果你新装的系统里找不到ifconfig，多半就是换成ip这个命令了（之前让我纳闷很久的一个问题）。
微博评论
2014-06-04T12:03:02.000
220.181.108.154
mark
微博评论
2014-06-04T12:03:02.000
220.181.108.154
@某冰磷的碳核 OS3 换这？ //@Linux中国: 回复@王文文IT:应该与时俱进啦[嘻嘻]//@王文文IT:如果你新装的系统里找不到ifconfig，多半就是换成ip这个命令了（之前让我纳闷很久的一个问题）。
微博评论
2014-06-04T12:03:02.000
220.181.108.154
学习了//@王文文IT:如果你新装的系统里找不到ifconfig，多半就是换成ip这个命令了（之前让我纳闷很久的一个问题）。
微博评论
2014-06-04T12:03:02.000
220.181.108.154
比如说Arch的base system就没有ifconfig和route等命令了 //@Linux中国:回复@王文文IT:应该与时俱进啦[嘻嘻] //@王文文IT:如果你新装的系统里找不到ifconfig，多半就是换成ip这个命令了（之前让我纳闷很久的一个问题）。
微博评论
2014-06-04T12:03:02.000
116.208.95.191
两种表现形式//@王海鹏Seal:KISS怎么体现？//@2gua: [赞]
微博评论
2014-06-04T12:31:59.000
116.208.95.191
其实我只见过arch默认没有ifconfig//@小白在安同:@某冰磷的碳核 OS3 换这？ //@Linux中国: 回复@王文文IT:应该与时俱进啦[嘻嘻]//@王文文IT:如果你新装的系统里找不到ifconfig，多半就是换成ip这个命令了（之前让我纳闷很久的一个问题）。
微博评论
2014-06-04T12:31:59.000
116.208.95.191
既然废弃了为什么那么多的发行版预装的都是ifconfig？//@Rhinuxx:BSD 系统ifconfig用得挺好//@2gua: [赞]
微博评论
2014-06-04T12:31:59.000
116.208.95.191
OS3 计划明年暑假，所以这个时候可能还要激进一些 //@果壳中的米特尼克: 其实我只见过arch默认没有ifconfig//@小白在安同:@某冰磷的碳核 OS3 换这？
微博评论
2014-06-04T12:31:59.000
116.208.95.191
历史遗迹，事实上开源界一方面新生事物和新技术发展的很快，另外一方面遗老遗少也挺多。不要被旧的东西完全束缚住，但也不能草率前进。//@releaseV1:既然废弃了为什么那么多的发行版预装的都是ifconfig？//@Rhinuxx:BSD 系统ifconfig用得挺好//@2gua: [赞]
微博评论
2014-06-04T12:31:59.000
116.208.95.191
@mark //@Linux中国:历史遗迹，事实上开源界一方面新生事物和新技术发展的很快，另外一方面遗老遗少也挺多。不要被旧的东西完全束缚住，但也不能草率前进。//@releaseV1:既然废弃了为什么那么多的发行版预装的都是ifconfig？//@Rhinuxx:BSD 系统ifconfig用得挺好//@2gua: [赞]
微博评论
2014-06-04T12:31:59.000
116.208.95.191
马
微博评论
2014-06-04T12:31:59.000
116.208.95.191
我能说我习惯了ifconfig吗？//@我爱笨兔兔ibentutu: @mark //@Linux中国:历史遗迹，事实上开源界一方面新生事物和新技术发展的很快，另外一方面遗老遗少也挺多。不要被旧的东西完全束缚住，但也不能草率前进。//@releaseV1:既然废弃了为什么那么多的发行版预装的都是ifconfig？
微博评论
2014-06-04T12:31:59.000
101.226.51.230
//@butbueatiful:转发微博
微博评论
2014-06-04T12:33:01.000
27.150.243.13
废话，等于没说//@Linux中国:历史遗迹，事实上开源界一方面新生事物和新技术发展的很快，另外一方面遗老遗少也挺多。不要被旧的东西完全束缚住，但也不能草率前进。//@releaseV1:既然废弃了为什么那么多的发行版预装的都是ifconfig？//@Rhinuxx:BSD 系统ifconfig用得挺好//@2gua: [赞]
微博评论
2014-06-04T13:03:01.000
27.150.243.13
怪不得arch默认没有ifconfig.//@zhangle1967082265: 转发微博
微博评论
2014-06-04T13:03:01.000
27.150.243.13
So Cool
微博评论
2014-06-04T13:03:01.000
27.150.243.13
好像不如原来的好用 @我的印象笔记
微博评论
2014-06-04T13:03:01.000
27.150.243.13
还有一个systemd//@我爱笨兔兔ibentutu:@mark //@Linux中国:历史遗迹，事实上开源界一方面新生事物和新技术发展的很快，另外一方面遗老遗少也挺多。不要被旧的东西完全束缚住，但也不能草率前进。//@releaseV1:既然废弃了为什么那么多的发行版预装的都是ifconfig？//@Rhinuxx:BSD 系统ifconfig用得挺好
微博评论
2014-06-04T13:03:01.000
27.150.243.13
原来这玩意儿叫iproute2~//@Linux中国:历史遗迹，事实上开源界一方面新生事物和新技术发展的很快，另外一方面遗老遗少也挺多。不要被旧的东西完全束缚住，但也不能草率前进。//@releaseV1:既然废弃了为什么那么多的发行版预装的都是ifconfig？//@Rhinuxx:BSD 系统ifconfig用得挺好//@2gua: [赞]
微博评论
2014-06-04T13:03:01.000
27.150.243.13
活到老，学到老//@Linux中国:回复@王文文IT:应该与时俱进啦[嘻嘻]//@王文文IT:如果你新装的系统里找不到ifconfig，多半就是换成ip这个命令了（之前让我纳闷很久的一个问题）。
微博评论
2014-06-04T13:03:01.000
61.181.85.194
有什么实质性的区别吗？
Nutall
2014-06-04T13:18:54.000
66.249.79.175
学习了
微博评论
2014-06-04T13:33:02.000
66.249.79.175
只有arch早早就坚持这个了//@王文文IT: 如果你新装的系统里找不到ifconfig，多半就是换成ip这个命令了（之前让我纳闷很久的一个问题）。
微博评论
2014-06-04T13:33:02.000
66.249.79.175
mark //@我爱笨兔兔ibentutu: @mark //@Linux中国:历史遗迹，事实上开源界一方面新生事物和新技术发展的很快，另外一方面遗老遗少也挺多。不要被旧的东西完全束缚住，但也不能草率前进。//@releaseV1:既然废弃了为什么那么多的发行版预装的都是ifconfig？//@Rhinuxx:BSD 系统ifconfig用得挺好
微博评论
2014-06-04T13:33:02.000
66.249.79.207
你还在使用ifconfig吗？
微博评论
2014-06-04T14:03:01.000
66.249.79.207
我不太能接受这个事儿。。。
微博评论
2014-06-04T14:03:01.000
66.249.79.207
我输入p link set eth0 down 能关闭网络，ip link set eth0 up 没反应？ 求解@Linux中国
微博评论
2014-06-04T14:03:01.000
66.249.79.207
iproute2//@Linux中国: 历史遗迹，事实上开源界一方面新生事物和新技术发展的很快，另外一方面遗老遗少也挺多。不要被旧的东西完全束缚住，但也不能草率前进。//@releaseV1:既然废弃了为什么那么多的发行版预装的都是ifconfig？//@Rhinuxx:BSD 系统ifconfig用得挺好//@2gua: [赞]
微博评论
2014-06-04T14:03:01.000
68.180.225.109
啊？//@某冰磷的碳核:lfs base早就是有ip没有ifconfig的
微博评论
2014-06-04T14:33:00.000
220.181.51.35
ip?没用过。。//@Linux中国:回复@王文文IT:应该与时俱进啦[嘻嘻]//@王文文IT:如果你新装的系统里找不到ifconfig，多半就是换成ip这个命令了（之前让我纳闷很久的一个问题）。
微博评论
2014-06-04T15:33:00.000
220.181.108.155
你却说花花世界不必当真！
微博评论
2014-06-04T16:33:01.000
66.249.79.175
习惯了ifconfig
微博评论
2014-06-04T19:33:01.000
223.167.32.37
还是在用ifconfig哇 //@Linux中国:历史遗迹，事实上开源界一方面新生事物和新技术发展的很快，另外一方面遗老遗少也挺多。不要被旧的东西完全束缚住，但也不能草率前进。//@releaseV1:既然废弃了为什么那么多的发行版预装的都是ifconfig？//@Rhinuxx:BSD 系统ifconfig用得挺好//@2gua: [赞]
微博评论
2014-06-04T23:33:01.000
66.249.79.207
[晕]
微博评论
2014-06-05T11:03:00.000
202.103.173.252
soga
微博评论
2014-06-05T11:33:01.000
124.205.33.31
我还用ifconfig和ifcfg-eth*的配置文件来管理和设置网络，除非没有ifconfig命令的时候。
bakgho
2014-06-05T15:27:49.000
123.125.71.107
【用ip替代ifconfig】 设置IP地址:#ip addr add 192.168.0.111/24 dev eth0 查看是否生效:#ip addr show eth0 删除IP地址:#ip addr del 192.168.0.111/24 dev eth0 更改默认路由:#ip route add default via 192.168.0.1 停止网络接口:#ip link set eth0 down 激活网络接口:#ip link set eth0 up
微博评论
2014-06-06T12:03:00.000
123.125.71.94
学习了
微博评论
2014-06-06T18:03:01.000
114.242.248.100
@天宇feiyond
微博评论
2014-06-06T22:57:01.000
66.249.79.242
//@马全一:转发微博
微博评论
2014-06-08T21:33:00.000
66.249.79.242
//@马全一:转发微博
微博评论
2014-06-08T21:33:00.000
116.255.132.12
赞一个！
netb2c
2014-06-11T08:12:08.000
180.175.182.174
玩raspberry pi的时候发现pidora不支持ifconfig了，支持ip，不会用 yum install net-tools 又把ifconfig 装回来了……//@T-Bagwell刘歧: //@2gua: [赞]
微博评论
2014-06-11T09:33:00.000
36.250.182.178
汗//@T-Bagwell刘歧: 玩raspberry pi的时候发现pidora不支持ifconfig了，支持ip，不会用 yum install net-tools 又把ifconfig 装回来了……//@T-Bagwell刘歧: //@2gua: [赞]
微博评论
2014-06-11T10:33:01.000
36.250.182.178
mark//@Linux中国: 汗//@T-Bagwell刘歧: 玩raspberry pi的时候发现pidora不支持ifconfig了，支持ip，不会用 yum install net-tools 又把ifconfig 装回来了……//@T-Bagwell刘歧: //@2gua: [赞]
微博评论
2014-06-11T10:33:01.000
36.250.182.178
转给Linux爱好者。 //@Linux中国:汗//@T-Bagwell刘歧: 玩raspberry pi的时候发现pidora不支持ifconfig了，支持ip，不会用 yum install net-tools 又把ifconfig 装回来了……//@T-Bagwell刘歧: //@2gua: [赞]
微博评论
2014-06-11T10:33:01.000
112.111.18.12
我跟不上时代潮流了[懒得理你]
微博评论
2014-06-11T11:03:01.000
124.74.47.182
得学会努力接受新的事务。
微博评论
2014-06-11T13:33:00.000
220.181.108.119
没用过IP,得学习了,@我的印象笔记
微博评论
2014-06-11T14:03:00.000
58.248.27.100
ifconfig过时还早吧，都是习惯用这个了。
arhool
2014-06-11T16:22:33.000
37.58.100.149
，
微博评论
2014-06-11T21:03:00.000
171.34.7.102
mark
星夜
2014-06-17T14:23:18.000
180.175.27.66
yeah,很不错！学习了
hyplove
2014-06-22T09:01:34.000
183.63.158.150
ip是新命令？
来自 - 广东广州 的 Chrome/Windows 用户
2015-02-13T14:24:38.000
106.120.220.78
是的，netstat 过时啦。
linux
2015-02-13T16:12:24.000
117.136.7.251
这个是最基础的东西，所以往往有一定的重要性
来自黑龙江哈尔滨的 Chrome Mobile 62.0|Android 6.0 用户
2019-03-08T13:23:33.000
60.50.109.219
真有趣
serverlow55 [Firefox 69.0|GNU/Linux]
2019-09-26T00:03:56.000
117.78.51.235
馬克
Mr.Wang [Chrome 78.0|Windows 10]
2019-12-05T16:02:59.000
112.42.87.241
学习了！感谢分享！
来自112.42.87.241的 Chrome 63.0|Windows 10 用户
2020-02-12T10:54:24.000
223.104.216.61
用惯了if用其他反而不适应
来自223.104.216.61的 Mobile Safari 14.0|iOS 14.4 用户
2021-03-21T19:57:34.000
218.4.63.155
能列出所有网口信息吗？明显做不到，我有50个网口，需要全部列出来，请问还有其他命令吗？
来自江苏苏州的 Chrome 90.0|Windows 10 用户
2021-05-19T09:34:03.000
218.4.63.155
ifconfig -a 与ip addr show真的是一样吗？作者很辛苦做了个对照列表，但实际上这两个命令完全不一样，我用ip addr show不能看到我的50个网口。
来自江苏苏州的 Chrome 90.0|Windows 10 用户
2021-05-19T09:42:49.000
119.8.177.116
那个用 ip addr show 看不到网口的，要用 ip link show
来自119.8.177.116的 Firefox 105.0|Windows 10 用户
2022-10-13T14:19:18.000
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
linux的**ip**命令和**ifconfig**类似，但前者功能更强大，并旨在取代后者。使用ip命令，只需一个命令，你就能很轻松地执行一些网络管理任务。ifconfig是net-tools中已被废弃使用的一个命令，许多年前就已经没有维护了。iproute2套件里提供了许多增强功能的命令，ip命令即是其中之一。


![Net tools vs Iproute2](/data/attachment/album/201406/04/003404uy9l1t5zayzllylm.png)


要安装ip，请[点击这里](http://www.linuxgrill.com/anonymous/iproute2/NEW-OSDL/)下载**iproute2套装工具** 。不过，大多数Linux发行版已经预装了iproute2工具。


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



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

```

![iproute2 git clone](/data/attachment/album/201406/04/003410tpix2804k660lwu4.png)


### 设置和删除Ip地址


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



```
$ sudo ip addr add 192.168.0.193/24 dev wlan0

```

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


在你按照上述方式设置好IP地址后，需要查看是否已经生效。



```
$ ip addr show wlan0

```

![set ip address](/data/attachment/album/201406/04/003411qp4xsem5491ee49t.png)


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



```
$ sudo ip addr del 192.168.0.193/24 dev wlan0

```

![delete ip address](/data/attachment/album/201406/04/003412dottfn0jnidyykd2.png)


### 列出路由表条目


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


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



```
$ ip route show

```

![ip route show](/data/attachment/album/201406/04/003413mnehm4uinhziu287.png)


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



```
$ ip route get 10.42.0.47

```

![ip route get](/data/attachment/album/201406/04/003414h53e34qwjfo34emm.png)


### 更改默认路由


要更改默认路由，使用下面ip命令：



```
$ sudo ip route add default via 192.168.0.196

```

![default route](/data/attachment/album/201406/04/003415i8d82ulsa4c4jcd4.png)


### 显示网络统计数据


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


![ip statistics all interfaces](/data/attachment/album/201406/04/003417l1jc4h5537m050wy.png)


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



```
$ ip -s -s link ls p2p1

```

![ip link statistics](/data/attachment/album/201406/04/003418acoo0krhjellollu.png)


### ARP条目


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



```
$ ip neighbour

```

![ip neighbour](/data/attachment/album/201406/04/003419uzm96tbvujb5bvqe.png)


### 监控netlink消息


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



```
$ ip monitor all

```

![ip monitor all](/data/attachment/album/201406/04/003420ap2j3jjvjk3jvvoo.png)


### 激活和停止网络接口


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


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



```
$ sudo ip link set ppp0 down

$ sudo ip link set ppp0 up

```

![ip link set up and down](/data/attachment/album/201406/04/003421mdudvkazcgkl6g8d.png)


### 获取帮助


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


比如，想知道关于route选项更多的信息：



```
$ ip route help

```

![ip route help](/data/attachment/album/201406/04/003422xh9xm2wihecdjhif.png)


### 小结


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




---


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


译者：[KayGuoWhu](https://github.com/KayGuoWhu) 校对：[wxy](https://github.com/wxy)
-----------------------------------------------------------------------------


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出

