ip命令工作在OSI 网络栈的两个层上:第二层(数据链路层)和第三层(网络 或 IP)层。它做了之前net-tools包的所有工作。
安装 ip
ip命令包含在iproute2util包中,一般都会有,自己想办法安装。
ifconfig 和 ip 使用对比:
查看网口和 IP 地址
如果你想查看主机的 IP 地址或网络接口信息,ifconfig(不带任何参数)命令提供了一个很好的总结:
$ ifconfig
$ ip address show,或者简写为ip a:
$ ip a
添加 IP 地址
使用 ifconfig命令添加 IP 地址命令为:
$ ifconfig eth0 add 192.9.203.21
ip类似:
$ ip address add 192.9.203.21 dev eth0
ip中的子命令可以缩短,所以下面这个命令同样有效:
$ ip addr add 192.9.203.21 dev eth0
你甚至可以更短些:
$ ip a add 192.9.203.21 dev eth0
移除一个 IP 地址
添加 IP 地址与删除 IP 地址正好相反。
使用 ifconfig,命令是:
$ ifconfig eth0 del 192.9.203.21
ip命令的语法是:
$ ip a del 192.9.203.21 dev eth0
启用或禁用组播
使用 ifconfig接口来启用或禁用组播multicast:
# ifconfig eth0 multicast
对于 ip,使用set子命令与设备(dev)以及一个布尔值和multicast选项:
# ip link set dev eth0 multicast on
启用或禁用网络
每个系统管理员都熟悉“先关闭,然后打开”这个技巧来解决问题。对于网络接口来说,即打开或关闭网络。
ifconfig命令使用up或down关键字来实现:
# ifconfig eth0 up
或者你可以使用一个专用命令:
# ifup eth0
ip命令使用set子命令将网络设置为up或down状态:
# ip link set eth0 up
开启或关闭地址解析功能(ARP)
使用 ifconfig,你可以通过声明它来启用:
# ifconfig eth0 arp
使用 ip,你可以将arp属性设置为on或off:
# ip link set dev eth0 arp on
ip 和 ipconfig 的优缺点
ip命令比ifconfig更通用,技术上也更有效,因为它使用的是Netlink套接字,而不是ioctl系统调用。