找回密码
 骑士注册

QQ登录

微博登录


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

2014-06-04 09:00    评论: 82 收藏: 18 分享: 42    

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

Net tools vs Iproute2

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

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

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

iproute2 git clone

设置和删除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

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

$ sudo ip addr del 192.168.0.193/24 dev wlan0

delete ip address

列出路由表条目

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

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

$ ip route show

ip route show

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

$ ip route get 10.42.0.47

ip route get

更改默认路由

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

$ sudo ip route add default via 192.168.0.196

default route

显示网络统计数据

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

ip statistics all interfaces

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

$ ip -s -s link ls p2p1

ip link statistics

ARP条目

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

$ ip neighbour

ip neighbour

监控netlink消息

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

$ ip monitor all

ip monitor all

激活和停止网络接口

你可以使用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

获取帮助

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

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

$ ip route help

ip route help

小结

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


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

译者:KayGuoWhu 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

发表评论


最新评论

我也要发表评论

[1]
来自 - 广东广州 的 Chrome/Windows 用户 发表于 2015-02-13 14:24 的评论:
ip是新命令?
linux 2015-02-13 16:12 21 回复
是的,netstat 过时啦。
hyplove 2014-06-22 09:01 19 回复
yeah,很不错!学习了
星夜 2014-06-17 14:23 19 回复
mark
尛赑龘 2014-06-11 21:03  新浪微博网友评论 19 回复
arhool 2014-06-11 16:22 20 回复
ifconfig过时还早吧,都是习惯用这个了。
编码狂人 2014-06-11 14:03  新浪微博网友评论 19 回复
没用过IP,得学习了,@我的印象笔记
Mr-Bobby 2014-06-11 13:33  新浪微博网友评论 21 回复
得学会努力接受新的事务。
王梁星 2014-06-11 11:03  新浪微博网友评论 19 回复
我跟不上时代潮流了[懒得理你]
秦启飞 2014-06-11 10:33  新浪微博网友评论 20 回复
转给Linux爱好者。 //@Linux中国:汗//@T-Bagwell刘歧: 玩raspberry pi的时候发现pidora不支持ifconfig了,支持ip,不会用 yum install net-tools 又把ifconfig 装回来了……//@T-Bagwell刘歧: //@2gua: [赞]
斯宾洛克 2014-06-11 10:33  新浪微博网友评论 19 回复
mark//@Linux中国: 汗//@T-Bagwell刘歧: 玩raspberry pi的时候发现pidora不支持ifconfig了,支持ip,不会用 yum install net-tools 又把ifconfig 装回来了……//@T-Bagwell刘歧: //@2gua: [赞]
Linux中国 2014-06-11 10:33  新浪微博网友评论 19 回复
汗//@T-Bagwell刘歧: 玩raspberry pi的时候发现pidora不支持ifconfig了,支持ip,不会用 yum install net-tools 又把ifconfig 装回来了……//@T-Bagwell刘歧: //@2gua: [赞]
T-Bagwell刘歧 2014-06-11 09:33  新浪微博网友评论 19 回复
玩raspberry pi的时候发现pidora不支持ifconfig了,支持ip,不会用 yum install net-tools 又把ifconfig 装回来了……//@T-Bagwell刘歧: //@2gua: [赞]
netb2c 2014-06-11 08:12 18 回复
赞一个!
金山YIN霸 2014-06-08 21:33  新浪微博网友评论 18 回复
//@马全一:转发微博
金山YIN霸 2014-06-08 21:33  新浪微博网友评论 18 回复
//@马全一:转发微博
cdc_Relax 2014-06-06 22:57  新浪微博网友评论 18 回复
@天宇feiyond
jeremyqing 2014-06-06 18:03  新浪微博网友评论 18 回复
学习了
金陵创客 2014-06-06 12:03  新浪微博网友评论 20 回复
【用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
bakgho 2014-06-05 15:27 18 回复
我还用ifconfig和ifcfg-eth*的配置文件来管理和设置网络,除非没有ifconfig命令的时候。
遗世独立_yc 2014-06-05 11:33  新浪微博网友评论 回复
soga
路人疯crazy 2014-06-05 11:03  新浪微博网友评论 回复
[晕]
无名的城堡 2014-06-04 23:33  新浪微博网友评论 19 回复
还是在用ifconfig哇 //@Linux中国:历史遗迹,事实上开源界一方面新生事物和新技术发展的很快,另外一方面遗老遗少也挺多。不要被旧的东西完全束缚住,但也不能草率前进。//@releaseV1:既然废弃了为什么那么多的发行版预装的都是ifconfig?//@Rhinuxx:BSD 系统ifconfig用得挺好//@2gua: [赞]
MpaxLJH 2014-06-04 19:33  新浪微博网友评论 回复
习惯了ifconfig
维斯有条河 2014-06-04 16:33  新浪微博网友评论 1 回复
你却说花花世界不必当真!
钟腾辉-幻想ing 2014-06-04 15:33  新浪微博网友评论 回复
ip?没用过。。//@Linux中国:回复@王文文IT:应该与时俱进啦[嘻嘻]//@王文文IT:如果你新装的系统里找不到ifconfig,多半就是换成ip这个命令了(之前让我纳闷很久的一个问题)。
小白在安同 2014-06-04 14:33  新浪微博网友评论 回复
啊?//@某冰磷的碳核:lfs base早就是有ip没有ifconfig的
周坑坑坑坑坑 2014-06-04 14:03  新浪微博网友评论 回复
iproute2//@Linux中国: 历史遗迹,事实上开源界一方面新生事物和新技术发展的很快,另外一方面遗老遗少也挺多。不要被旧的东西完全束缚住,但也不能草率前进。//@releaseV1:既然废弃了为什么那么多的发行版预装的都是ifconfig?//@Rhinuxx:BSD 系统ifconfig用得挺好//@2gua: [赞]
My-name-is-pencil 2014-06-04 14:03  新浪微博网友评论 回复
我输入p link set eth0 down 能关闭网络,ip link set eth0 up 没反应? 求解@Linux中国
摆桌君 2014-06-04 14:03  新浪微博网友评论 回复
我不太能接受这个事儿。。。
史明春 2014-06-04 14:03  新浪微博网友评论 回复
你还在使用ifconfig吗?
__冷眼看客__ 2014-06-04 13:33  新浪微博网友评论 回复
mark //@我爱笨兔兔ibentutu: @mark //@Linux中国:历史遗迹,事实上开源界一方面新生事物和新技术发展的很快,另外一方面遗老遗少也挺多。不要被旧的东西完全束缚住,但也不能草率前进。//@releaseV1:既然废弃了为什么那么多的发行版预装的都是ifconfig?//@Rhinuxx:BSD 系统ifconfig用得挺好
奶哥 2014-06-04 13:33  新浪微博网友评论 回复
只有arch早早就坚持这个了//@王文文IT: 如果你新装的系统里找不到ifconfig,多半就是换成ip这个命令了(之前让我纳闷很久的一个问题)。
IT好码农 2014-06-04 13:33  新浪微博网友评论 回复
学习了
Nutall 2014-06-04 13:18 回复
有什么实质性的区别吗?
青春在路上_zz 2014-06-04 13:03  新浪微博网友评论 回复
活到老,学到老//@Linux中国:回复@王文文IT:应该与时俱进啦[嘻嘻]//@王文文IT:如果你新装的系统里找不到ifconfig,多半就是换成ip这个命令了(之前让我纳闷很久的一个问题)。
Zinway 2014-06-04 13:03  新浪微博网友评论 回复
原来这玩意儿叫iproute2~//@Linux中国:历史遗迹,事实上开源界一方面新生事物和新技术发展的很快,另外一方面遗老遗少也挺多。不要被旧的东西完全束缚住,但也不能草率前进。//@releaseV1:既然废弃了为什么那么多的发行版预装的都是ifconfig?//@Rhinuxx:BSD 系统ifconfig用得挺好//@2gua: [赞]
williamroot777 2014-06-04 13:03  新浪微博网友评论 回复
还有一个systemd//@我爱笨兔兔ibentutu:@mark //@Linux中国:历史遗迹,事实上开源界一方面新生事物和新技术发展的很快,另外一方面遗老遗少也挺多。不要被旧的东西完全束缚住,但也不能草率前进。//@releaseV1:既然废弃了为什么那么多的发行版预装的都是ifconfig?//@Rhinuxx:BSD 系统ifconfig用得挺好
裕用ID 2014-06-04 13:03  新浪微博网友评论 回复
好像不如原来的好用 @我的印象笔记
深圳陆小K 2014-06-04 13:03  新浪微博网友评论 回复
So Cool
Rbmac 2014-06-04 13:03  新浪微博网友评论 回复
怪不得arch默认没有ifconfig.//@zhangle1967082265: 转发微博
releaseV1 2014-06-04 13:03  新浪微博网友评论 回复
废话,等于没说//@Linux中国:历史遗迹,事实上开源界一方面新生事物和新技术发展的很快,另外一方面遗老遗少也挺多。不要被旧的东西完全束缚住,但也不能草率前进。//@releaseV1:既然废弃了为什么那么多的发行版预装的都是ifconfig?//@Rhinuxx:BSD 系统ifconfig用得挺好//@2gua: [赞]
一路向北_小鹏 2014-06-04 12:33  新浪微博网友评论 回复
//@butbueatiful:转发微博
二分之三减根五 2014-06-04 12:31  新浪微博网友评论 回复
我能说我习惯了ifconfig吗?//@我爱笨兔兔ibentutu: @mark //@Linux中国:历史遗迹,事实上开源界一方面新生事物和新技术发展的很快,另外一方面遗老遗少也挺多。不要被旧的东西完全束缚住,但也不能草率前进。//@releaseV1:既然废弃了为什么那么多的发行版预装的都是ifconfig?
D-Traveling 2014-06-04 12:31  新浪微博网友评论 回复
我爱笨兔兔ibentutu 2014-06-04 12:31  新浪微博网友评论 回复
@mark //@Linux中国:历史遗迹,事实上开源界一方面新生事物和新技术发展的很快,另外一方面遗老遗少也挺多。不要被旧的东西完全束缚住,但也不能草率前进。//@releaseV1:既然废弃了为什么那么多的发行版预装的都是ifconfig?//@Rhinuxx:BSD 系统ifconfig用得挺好//@2gua: [赞]
Linux中国 2014-06-04 12:31  新浪微博网友评论 回复
历史遗迹,事实上开源界一方面新生事物和新技术发展的很快,另外一方面遗老遗少也挺多。不要被旧的东西完全束缚住,但也不能草率前进。//@releaseV1:既然废弃了为什么那么多的发行版预装的都是ifconfig?//@Rhinuxx:BSD 系统ifconfig用得挺好//@2gua: [赞]
小白在安同 2014-06-04 12:31  新浪微博网友评论 回复
OS3 计划明年暑假,所以这个时候可能还要激进一些 //@果壳中的米特尼克: 其实我只见过arch默认没有ifconfig//@小白在安同:@某冰磷的碳核 OS3 换这?
releaseV1 2014-06-04 12:31  新浪微博网友评论 回复
既然废弃了为什么那么多的发行版预装的都是ifconfig?//@Rhinuxx:BSD 系统ifconfig用得挺好//@2gua: [赞]
果壳中的米特尼克 2014-06-04 12:31  新浪微博网友评论 回复
其实我只见过arch默认没有ifconfig//@小白在安同:@某冰磷的碳核 OS3 换这? //@Linux中国: 回复@王文文IT:应该与时俱进啦[嘻嘻]//@王文文IT:如果你新装的系统里找不到ifconfig,多半就是换成ip这个命令了(之前让我纳闷很久的一个问题)。
shukebeta 2014-06-04 12:31  新浪微博网友评论 19 回复
两种表现形式//@王海鹏Seal:KISS怎么体现?//@2gua: [赞]
某朝峻鋒連聊C 2014-06-04 12:03  新浪微博网友评论 回复
比如说Arch的base system就没有ifconfig和route等命令了 //@Linux中国:回复@王文文IT:应该与时俱进啦[嘻嘻] //@王文文IT:如果你新装的系统里找不到ifconfig,多半就是换成ip这个命令了(之前让我纳闷很久的一个问题)。
粑粑蛋-Bob 2014-06-04 12:03  新浪微博网友评论 回复
学习了//@王文文IT:如果你新装的系统里找不到ifconfig,多半就是换成ip这个命令了(之前让我纳闷很久的一个问题)。
小白在安同 2014-06-04 12:03  新浪微博网友评论 回复
@某冰磷的碳核 OS3 换这? //@Linux中国: 回复@王文文IT:应该与时俱进啦[嘻嘻]//@王文文IT:如果你新装的系统里找不到ifconfig,多半就是换成ip这个命令了(之前让我纳闷很久的一个问题)。
凯幽零 2014-06-04 12:03  新浪微博网友评论 回复
mark
Linux中国 2014-06-04 12:03  新浪微博网友评论 回复
回复@王文文IT:应该与时俱进啦[嘻嘻]//@王文文IT:如果你新装的系统里找不到ifconfig,多半就是换成ip这个命令了(之前让我纳闷很久的一个问题)。
Linux中国 2014-06-04 12:03  新浪微博网友评论 回复
回复@王文文IT:应该与时俱进啦[嘻嘻]
某朝峻鋒連聊C 2014-06-04 12:03  新浪微博网友评论 回复
That's so cool!
王文文IT 2014-06-04 12:03  新浪微博网友评论 回复
如果你新装的系统里找不到ifconfig,多半就是换成ip这个命令了(之前让我纳闷很久的一个问题)。
朱小壮的快乐生活 2014-06-04 12:03  新浪微博网友评论 回复
厉害!!我还一直用ifconfig…………不知道公司机器装没装ip工具//@Linux中国:[嘻嘻]//@网络化制造:男的女的嘴对嘴[哈哈]//@王海鹏Seal:KISS怎么体现?//@2gua: [赞]
剑驮 2014-06-04 12:03  新浪微博网友评论 回复
[good]//@网络化制造: 男的女的嘴对嘴[哈哈]//@王海鹏Seal:KISS怎么体现?//@2gua: [赞]
王文文IT 2014-06-04 11:33  新浪微博网友评论 回复
不错!
Linux中国 2014-06-04 11:33  新浪微博网友评论 回复
[嘻嘻]//@网络化制造:男的女的嘴对嘴[哈哈]//@王海鹏Seal:KISS怎么体现?//@2gua: [赞]
网络化制造 2014-06-04 11:33  新浪微博网友评论 回复
男的女的嘴对嘴[哈哈]//@王海鹏Seal:KISS怎么体现?//@2gua: [赞]
王海鹏Seal 2014-06-04 11:33  新浪微博网友评论 回复
KISS怎么体现?//@2gua: [赞]
Rhinuxx 2014-06-04 11:03  新浪微博网友评论 1 回复
BSD 系统ifconfig用得挺好//@2gua: [赞]
张鹏vim 2014-06-04 11:03  新浪微博网友评论 1 回复
nice//@ruochen_SH: //@T-Bagwell刘歧://@2gua: [赞]
VV老妖治 2014-06-04 11:03  新浪微博网友评论 回复
mark~~~
常山鼠 2014-06-04 10:33  新浪微博网友评论 回复
mark
ruochen_SH 2014-06-04 10:33  新浪微博网友评论 回复
//@T-Bagwell刘歧://@2gua: [赞]
kotzu 2014-06-04 10:33  新浪微博网友评论 回复
[赞]
kotzu 2014-06-04 10:33  新浪微博网友评论 回复
[赞] //@2gua:[赞]
张siri 2014-06-04 10:33  新浪微博网友评论 回复
学习一下
韩宪平 2014-06-04 10:03  新浪微博网友评论 回复
Mark
linKoops 2014-06-04 10:03  新浪微博网友评论 回复
@我的印象笔记
绿色圣光 2014-06-04 09:58 回复
好吧,习惯真的很难改。
ZHen江鱼 2014-06-04 09:33  新浪微博网友评论 回复
@我的印象笔记
大隐-于市 2014-06-04 09:33  新浪微博网友评论 回复
@我的印象笔记
jstyle 2014-06-04 09:33  新浪微博网友评论 回复
哦? //@2gua:[赞]
人草木苦 2014-06-04 09:33  新浪微博网友评论 回复
@我的印象笔记
2gua 2014-06-04 09:33  新浪微博网友评论 回复
[赞]
狂虎虎 2014-06-04 09:33  新浪微博网友评论 1 回复
屌爆了

收藏

返回顶部

分享到微信

打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。