【network】关于ifconfig与ip addr
如今很多系统管理员依然通过组合使用诸如ifconfig、route、arp和netstat等命令行工具(统称为net-tools)来配置网络功能,解决网络故障。
net-tools起源于BSD的TCP/IP工具箱,后来成为老版本Linux内核中配置网络功能的工具,但自2001年起,Linux社区已经对其停止维护。同时,一些Linux发行版比如Arch Linux和CentOS/RHEL 7则已经完全抛弃了net-tools,只支持iproute2。
作为网络配置工具的一份子,iproute2是linux下管理控制TCP/IP网络和流量控制的新一代工具包,旨在替代老派的工具链net-tools,即大家比较熟悉的ifconfig,arp,route,netstat等命令。
net-tools通过procfs(/proc)和ioctl系统调用去访问和改变内核网络配置,而iproute2则通过netlink套接字接口与内核通讯。
抛开性能而言,net-tools的用法给人的感觉是比较乱,而iproute2的用户接口相对net-tools来说相对来说,更加直观。比如,各种网络资源(如link、IP地址、路由和隧道等)均使用合适的对象抽象去定义,使得用户可使用一致的语法去管理不同的对象,更重要的是,到目前为止,iproute2仍处在持续开发中,所以,net-tools和iproute2都需要去学习掌握了。
如果你仍在使用net-tools,而且尤其需要跟上新版Linux内核中的最新最重要的网络特性的话,那么是时候转到iproute2的阵营了。原因就在于使用iproute2可以做很多net-tools无法做到的事情。
# which ip
# rpm -qf /usr/sbin/ip
# yum info iproute
# which ifconfig
# rpm -qf /usr/sbin/ifconfig
# route -n
# ip -o -4 route
# ip -o -4 route show to default
# ip -o -4 route show to default | awk '{print $5}'
route 命令查看 Linux 内核路由表,输出的各列含义是什么?
# route -n
ifconfig -a 的输出,都有哪些含义?
# ifconfig -a
# ip addr list
参考
https://www.bbsmax.com/A/kmzL9bqBJG/
https://zhidao.baidu.com/question/256198410.html
https://blog.csdn.net/freeking101/article/details/68939059