zoukankan      html  css  js  c++  java
  • [转] Linux TCP/IP网络小课堂:net-tools与iproute2大比较

    PS:netstat选项是-planet,方便记忆

    http://os.51cto.com/art/201409/450886.htm

    如今许多系统管理员仍结合使用ifconfig、route、arp和netstat等命令行工具(它们统称为net-tools),管理和排查各 种网络配置。这类工具原先起源于BSD TCP/IP工具箱,旨在配置老式Linux内核的网络功能。自2001年以后,它在Linux社区的发展就止步不前了。Arch Linux和CentOS/RHEL 7等一些Linux发行版已经弃用了net-tools,其他发行版计划弃用net-tools,改而使用iproute2。

    iproute2是另一个系列的网络配置工具,它旨在取代net-tools的功能。net-tools可以通过procfs(/proc)和 ioctl系统调用,访问和更改内核网络配置,iproute2则通过网络链路套接字接口与内核进行联系。/proc接口比网络链路接口来得更笨拙。抛开 性能不讲,iproute2的用户界面比net-tools的用户界面要来得直观。比如说,网络资源(比如链路、IP地址、路由和隧道等)用“对象”抽象 进行了恰当的定义,你可以使用一致的语法来管理不同的对象。最重要的是,迄今为止iproute2一直在积极开发当中。

    如果你仍在使用net-tools,是时候改用iproute2了,如果你想跟上Linux内核的最新最好的网络功能特性,更是如此。很可能有好多 操作可以用iproute2来实现,却无法用net-tools来实现,无论是基于源的路由、服务质量、虚拟局域网(VLAN)、绑定,还是网桥其他什么 操作。另外值得一提的是,网络管理器等更高级网络配置工具依赖iproute2。

    对于想要改用iproute2的那些人来说,下面对net-tools与iproute2进行了一番全面的比较。

    显示所有连接的网络接口

    下列命令显示了所有可用的网络接口(无论是不是活动网络接口)。

    使用net-tools:

    1. $ ifconfig -a 

    使用iproute2:

    1. $ ip link show 

    激活或禁止网络接口

    想激活/禁止某一个网络接口,可以使用这些命令。

    使用net-tools:

    1. $ sudo ifconfig eth1 up  
    2. $ sudo ifconfig eth1 down 

    使用iproute2:

    1. $ sudo ip link set down eth1  
    2. $ sudo ip link set up eth1 

    将一个或多个IPv4地址分配给网络接口

    使用这些命令,即可配置网络接口的IPv4地址。

    使用net-tools:

    1. $ sudo ifconfig eth1 10.0.0.1/24 

    使用iproute2:

    1. $ sudo ip addr add 10.0.0.1/24 dev eth1 

    注意:如果使用iproute2,你可以将多个IP地址分配给某个接口;如果换成ifconfig,就无法做到这点。就ifconfig而言,一个变通办法就是使用IP别名。

    1. $ sudo ip addr add 10.0.0.1/24 broadcast 10.0.0.255 dev eth1  
    2. $ sudo ip addr add 10.0.0.2/24 broadcast 10.0.0.255 dev eth1  
    3. $ sudo ip addr add 10.0.0.3/24 broadcast 10.0.0.255 dev eth1 

    从网络接口删除IPv4地址

    就删除IP地址而言,如果使用net-tools,除了分配0给接口外,没有合适的方法从网络接口删除IPv4地址。iproute2可以合理地处理这个问题。

    使用net-tools:

    1. $ sudo ifconfig eth1 0 

    使用iproute2:

    1. $ sudo ip addr del 10.0.0.1/24 dev eth1 

    显示网络接口的一个或多个IPv4地址

    可以通过下列方法,检查某一个网络接口的IPv4地址。

    使用net-tools:

    1. $ ifconfig eth1 

    使用iproute2:

    1. $ ip addr show dev eth1 

    同样,要是有多个IP地址分配给了某个接口,iproute2就会显示所有IP地址,而net-tools只能显示一个IP地址。

    分配IPv6地址给网络接口

    使用这些命令,即可将一个或多个IPv6地址添加给某个网络接口。net-tools和iproute2都让你可以将多个IPv6地址添加给某个接口。

    使用net-tools:

    1. $ sudo ifconfig eth1 inet6 add 2002:0db5:0:f102::1/64  
    2. $ sudo ifconfig eth1 inet6 add 2003:0db5:0:f102::1/64 

    使用iproute2:

    1. $ sudo ip -6 addr add 2002:0db5:0:f102::1/64 dev eth1  
    2. $ sudo ip -6 addr add 2003:0db5:0:f102::1/64 dev eth1 

    显示网络接口的一个或多个IPv6地址

    可以通过以下方法显示某一个网络接口的IPv6地址。net-tools和iproute2都能显示所有已分配的IPv6地址。

    使用net-tools:

    1. $ ifconfig eth1 

    使用iproute2:

    1. $ ip -6 addr show dev eth1 

    删除网络接口的IPv6地址

    使用这些命令即可删除某个接口的任何不必要的IPv6地址。

    使用net-tools:

    1. $ sudo ifconfig eth1 inet6 del 2002:0db5:0:f102::1/64 

    使用iproute2:

    1. $ sudo ip -6 addr del 2002:0db5:0:f102::1/64 dev eth1 

    更改网络接口的MAC地址

    若想欺骗网络接口的MAC地址,请使用下列命令。要注意:在更改MAC地址之前,你需要先禁止该接口。

    使用net-tools:

    1. $ sudo ifconfig eth1 hw ether 08:00:27:75:2a:66 

    使用iproute2:

    1. $ sudo ip link set dev eth1 address 08:00:27:75:2a:67 

    查看IP路由表

    net-tools有两个选项可用于显示内核的IP路由表:route或netstat。如果是iproute2,只需使用ip route命令。

    使用net-tools:

    1. $ route -n $ netstat -rn 

    使用iproute2:

    1. $ ip route show 

    添加或改动默认路由

    下面这些命令可以添加或改动内核IP路由表中的默认路由。要注意:如果使用net-tools,只要添加一个新的默认路由,就可以实现改动默认路由这个操作。如果使用iproute2,只需使用ip route replace命令。

    使用net-tools:

    1. $ sudo route add default gw 192.168.1.2 eth0  
    2. $ sudo route del default gw 192.168.1.1 eth0 

    使用iproute2:

    1. $ sudo ip route add default via 192.168.1.2 dev eth0  
    2. $ sudo ip route replace default via 192.168.1.2 dev eth0 

    添加或删除静态路由

    可使用下列命令添加或删除静态路由。

    使用net-tools:

    1. $ sudo route add -net 172.16.32.0/24 gw 192.168.1.1 dev eth0  
    2. $ sudo route del -net 172.16.32.0/24 

    使用iproute2:

    1. $ sudo ip route add 172.16.32.0/24 via 192.168.1.1 dev eth0  
    2. $ sudo ip route del 172.16.32.0/24 

    查看套接字统计数据

    下面这些命令可以查看套接字统计数据(比如激活/侦听TCP/UDP套接字)。

    使用net-tools:

    1. $ netstat  
    2. $ netstat -l 

    使用iproute2:

    1. $ ss  
    2. $ ss -l 

    查看ARP表

    你可以使用这些命令来显示内核的ARP表。

    使用net-tools:

    1. $ arp -an 

    使用iproute2:

    1. $ ip neigh 

    添加或删除静态ARP项

    添加或删除本地ARP表中的静态ARP项可通过以下方法来实现。

    使用net-tools:

    1. $ sudo arp -s 192.168.1.100 00:0c:29:c0:5a:ef  
    2. $ sudo arp -d 192.168.1.100 

    使用iproute2:

    1. $ sudo ip neigh add 192.168.1.100 lladdr 00:0c:29:c0:5a:ef dev eth0  
    2. $ sudo ip neigh del 192.168.1.100 dev eth0 

    添加、删除或查看多播地址

    想配置或查看某个网络接口上的多播地址,可以使用下列命令。

    使用net-tools:

    1. $ sudo ipmaddr add 33:44:00:00:00:01 dev eth0  
    2. $ sudo ipmaddr del 33:44:00:00:00:01 dev eth0  
    3. $ ipmaddr show dev eth0  
    4. $ netstat -g 

    使用iproute2:

    1. $ sudo ip maddr add 33:44:00:00:00:01 dev eth0  
    2. $ sudo ip maddr del 33:44:00:00:00:01 dev eth0  
    3. $ ip maddr list dev eth0 

    英文原文:http://xmodulo.com/2014/09/linux-tcpip-networking-net-tools-iproute2.html

  • 相关阅读:
    东南大学2020年数学分析考研试题参考解答
    东北师范大学2020年数学分析考研试题参考解答
    丁同仁常微分方程第一版习题参考解答
    电子科技大学2020年数学分析考研试题参考解答
    点集拓扑课件/作业/作业讲解
    毕业论文[博士]不可压缩流体动力学方程组的若干正则性条件
    毕业论文[本科]笛卡尔积上的拓扑学
    Ibragimov微分方程与数学物理问题习题参考解答
    Evans Partial Differential Equations 第一版第1-3章笔记及习题解答
    [Tex模板]Annales Polonici Mathematici
  • 原文地址:https://www.cnblogs.com/qiangxia/p/4325230.html
Copyright © 2011-2022 走看看