现如今许多网站管理员仍然根据组成应用例如ifconfig、route、arp和netstat等命令行工具(通称为net-tools)来配备互联网作用,处理网络问题。net-tools始于BSD的TCP/IP辅助工具,之后变成老版本Linux核心中配备互联网作用的专用工具。但自2001年起,Linux社区早已对其终止维护保养。与此同时,一些Linux桌面操作系统例如Arch Linux和CentOS/RHEL 7则早已彻底抛下了net-tools,只适用iproute2。
做为网络配置专用工具的一份子,iproute2的发生致力于从作用上替代net-tools。net-tools根据procfs(/proc)和ioctl系统进程去浏览和更改核心网络配置,而iproute2则根据netlinktcp协议插口与核心通信。撇开特性来讲,iproute2的客户插口比net-tools看起来更为形象化。例如,各种各样互联网资源(如link、IP地址、路由器和隧道施工等)均应用适合的目标抽象性去界定,促使客户可应用一致的英语的语法去管理方法不一样的目标。更关键的是,到迄今为止,iproute2仍处于不断开发设计中。
假如你仍在应用net-tools,并且特别是在*须紧跟新版本Linux核心中的全新最重要的互联网特点得话,那麼现在是时候转至iproute2的势力了。缘故就取决于应用iproute2能够做许多net-tools没法*的事儿。
下边的指令表明出全部可以用网线端口的目录(不管插口是不是激话)。应用net-tools:
$ ifconfig -a
应用iproute2:
$ ip link show
为啥 RedHat Linux 5 下不可以应用 ifconfig 指令
激话或停止使用网线端口
应用这种指令来激话或停止使用某一特定的网线端口。
应用net-tools:
$ sudo ifconfig eth1 up
$ sudo ifconfig eth1 down
应用iproute2:
$ sudo ip link set down eth1
$ sudo ip link set up eth1
为网线端口分派IPv4详细地址
应用这种指令配备网线端口的IPv4详细地址。
应用net-tools:
$ sudo ifconfig eth1 10.0.0.1/24
应用iproute2:
$ sudo ip addr add 10.0.0.1/24 dev eth1
特别注意的是,能够应用iproute2给同一个插口分派好几个IP地址,ifconfig则没法那么做。应用ifconfig的随机应变计划方案是应用IP别称。
$ sudo ip addr add 10.0.0.1/24 broadcast 10.0.0.255 dev eth1
$ sudo ip addr add 10.0.0.2/24 broadcast 10.0.0.255 dev eth1
$ sudo ip addr add 10.0.0.3/24 broadcast 10.0.0.255 dev eth1
清除网线端口的IPv4详细地址
就IP地址的清除来讲,除开给插口分派全0详细地址外,net-tools沒有给予一切适合的方式 来清除网线端口的IPv4详细地址。反过来,iproute2则能非常好地彻底。
应用net-tools:
$ sudo ifconfig eth1 0
应用iproute2:
$ sudo ip addr del10.0.0.1/24 dev eth1
表明网线端口的IPv4详细地址
依照以下实际操作可查询某一特定网线端口的IPv4详细地址。
应用net-tools:
$ ifconfig eth1
应用iproute2:
$ ip addr show dev eth1
一样,假如插口分派了好几个IP地址,iproute2会表明出全部详细地址,而net-tools只有表明一个IP地址。
为网线端口分派IPv6详细地址
应用这种指令为网线端口加上IPv6详细地址。net-tools和iproute2都容许客户为一个插口加上好几个IPv6详细地址。
应用net-tools:
$ sudo ifconfig eth1 inet6 add 2002:0db5:0:f102::1/64
$ sudo ifconfig eth1 inet6 add 2003:0db5:0:f102::1/64
应用iproute2:
$ sudo ip -6 addr add 2002:0db5:0:f102::1/64 dev eth1
$ sudo ip -6 addr add 2003:0db5:0:f102::1/64 dev eth1
表明网线端口的IPv6详细地址
依照以下实际操作可表明某一特定网线端口的IPv6详细地址。net-tools和iproute2都能够表明出全部已分派的IPv6详细地址。
应用net-tools:
$ ifconfig eth1
应用iproute2:
$ ip -6 addr show dev eth1