openwrt网络管理工具网络管理工具:net-tools VS iproute2

本文对比了iproute2和net-tools在网络配置任务中的使用方法,如激活网卡、配置IPv4/IPv6地址、查看和修改路由表等。iproute2提供了更现代且强大的功能。

转自:

许多系统管理员仍然使用ifconfig、route、arp、netstat 命令组合来管理和排错网络配置,这些命令有net-tools包提供,但在Arch Linux、Centos7/RHEL7等发行版里面已经使用iproute2替代了net-toolsiproute2是另外一个网络配置工具,用来取代net-tools的功能;

net-tools访问和修改网络配置是通过procfs(/proc)和ioctl系统调用来完成的,而iproute2是通过netlink socket方式与内核通信;重要的是,iproute2发展一直很好:
https://www.kernel.org/pub/linux/utils/net/iproute2/
下面是net-tools和iproute2的使用对比:

列出所有网络接口(包括没有激活的网卡)
使用net-tools:
$ ifconfig -a
使用iproute2:
$ ip link show
iplink
激活和关闭网卡
使用net-tools:
$ sudo ifconfig eth1 up
$ sudo ifconfig eth1 down
使用iproute2:
$ sudo ip link set down eth1
$ sudo ip link set up eth1
配置IPv4地址
使用net-tools:
$ sudo ifconfig eth1 10.0.0.1/24
使用iproute2:
$ sudo ip addr add 10.0.0.1/24 dev eth1

使用net-tools配置多IP:
$ sudo ifconfig eth0:1 192.168.10.10 netmask 255.255.255.0 up
$ sudo ifconfig eth0:2 192.168.10.15 netmask 255.255.255.0 up

使用iproute2配置多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

查看eth0的IP地址
$sudo ip addr list dev eth0
移除网卡上的IPv4地址
使用net-tools:
$ sudo ifconfig eth1 0
使用iproute2:
$ sudo ip addr del 10.0.0.1/24 dev eth1
查看网卡上配置的IPv4地址
使用net-tools:
$ ifconfig eth1
使用iproute2:
$ ip addr show dev eth1
如果是网卡绑定了多IP的话,iproute2能显示所有的地址,而net-tools只能显示一个
ipaddr配置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地址
使用net-tools:
$ ifconfig eth1
使用iproute2:
$ ip -6 addr show dev eth1
ipv6
移除网卡上的IPv6地址
使用net-tools:
$ sudo ifconfig eth1 inet6 del 2002:0db5:0:f102::1/64
使用iproute2:
$ sudo ip -6 addr del 2002:0db5:0:f102::1/64 dev eth1
更改网卡MAC地址
使用net-tools:
$ sudo ifconfig eth1 hw ether 08:00:27:75:2a:66
使用iproute2:
$ sudo ip link set dev eth1 address 08:00:27:75:2a:67
查看路由表
使用net-tools:
$route -n
$ netstat -rn
使用iproute2:
$ ip route show
route
添加修改默认路由
使用net-tools:
$ sudo route add default gw 192.168.1.2 eth0
$ sudo route del default gw 192.168.1.1 eth0
使用iproute2:
$ sudo ip route add default via 192.168.1.2 dev eth0
$ sudo ip route replace default via 192.168.1.2 dev eth0
添加和删除静态路由
使用net-tools:
$ sudo route add default gw 192.168.1.2 eth0
$ sudo route del default gw 192.168.1.1 eth0
使用iproute2:
$ sudo ip route add default via 192.168.1.2 dev eth0
$ sudo ip route replace default via 192.168.1.2 dev eth0
查看socket统计
使用net-tools:
$ netstat
$ netstat -l
使用iproute2:
$ ss
$ ss -l
socket查看ARP表
使用net-tools:
$ arp -an
使用iproute2:
$ ip neigh
arp
添加和删除静态ARP
使用net-tools:
$ sudo arp -s 192.168.1.100 00:0c:29:c0:5a:ef
$ sudo arp -d 192.168.1.100
使用iproute2:
$ sudo ip neigh add 192.168.1.100 lladdr 00:0c:29:c0:5a:ef dev eth0
$ sudo ip neigh del 192.168.1.100 dev eth0
添加、删除和查看多播地址
使用net-tools:
$ sudo ipmaddr add 33:44:00:00:00:01 dev eth0
$ sudo ipmaddr del 33:44:00:00:00:01 dev eth0
$ ipmaddr show dev eth0
$ netstat -g
使用iproute2:
$ sudo ip maddr add 33:44:00:00:00:01 dev eth0
$ sudo ip maddr del 33:44:00:00:00:01 dev eth0
$ ip maddr list dev eth0
还是出现这个问题 zhihonghe@ubuntu:~/Desktop/docker-ub-18$ sudo docker build -t ubuntu_openwrt_18 -f Dockerfile . Sending build context to Docker daemon 8.704kB Step 1/23 : FROM ubuntu:18.04 ---> f9a80a55f492 Step 2/23 : LABEL Authors="Kun Liu <liukun@tp-link.com.hk> " ---> Using cache ---> 0c24f88a2436 Step 3/23 : LABEL Description="Broadcom SDK Build based on 18.04 LTS" Version="1.0" ---> Using cache ---> 6e934d1e19e4 Step 4/23 : ENV STAGINGDIR="" ---> Using cache ---> b30883665d79 Step 5/23 : ENV CONFIGDIR="" ---> Using cache ---> 60ee218d114e Step 6/23 : ENV PACKAGEDIR="" ---> Using cache ---> 13d94fd9880e Step 7/23 : RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections ---> Using cache ---> 597ec0c7bcd1 Step 8/23 : RUN apt-get clean && apt-get update && apt-get install --yes --no-install-recommends --no-install-suggests build-essential net-tools inetutils-ping libncurses5-dev libdigest-crc-perl libpopt-dev xxd liblzo2-dev zlib1g-dev lib32z1 libssl-dev libglib2.0-dev libreadline-dev libjson-c-dev libxml2-dev libsqlite3-dev sqlite3 libuv1-dev libxslt1-dev libfcgi-dev libevent-dev libyajl-dev liburiparser-dev libwebsockets-dev locales lua5.1 liblua5.1-dev python python3 python3-dev python3-pip git git-lfs subversion autoconf automake pkg-config ccache cmake ninja-build clang-tools-6.0 bison flex gettext ca-certificates libtool patch vim unzip uuid-dev wget curl cpio bc gawk gdb valgrind diffstat chrpath texinfo ssh openssh-client openssh-server netbase quilt protobuf-c-compiler dropbear-bin openvswitch-switch tmux dirmngr lighttpd alien mlocate iproute2 dos2unix lsb-release rsync gdisk man pax moreutils npm sudo ---> Running in 055b66ac3c61 Get:1 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB] Get:2 http://security.ubuntu.com/ubuntu bionic-security InRelease [102 kB] Get:3 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [1637 kB] Get:4 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [102 kB] Get:5 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [102 kB] Get:6 http://archive.ubuntu.com/ubuntu bionic/multiverse amd64 Packages [186 kB] Get:7 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages [1344 kB] Get:8 http://security.ubuntu.com/ubuntu bionic-security/restricted amd64 Packages [1688 kB] Get:9 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [3373 kB] Get:10 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages [11.3 MB] Get:11 http://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 Packages [23.8 kB] Get:12 http://archive.ubuntu.com/ubuntu bionic/restricted amd64 Packages [13.5 kB] Get:13 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [2411 kB] Get:14 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 Packages [30.8 kB] Get:15 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [3786 kB] Get:16 http://archive.ubuntu.com/ubuntu bionic-updates/restricted amd64 Packages [1728 kB] Get:17 http://archive.ubuntu.com/ubuntu bionic-backports/universe amd64 Packages [20.6 kB] Get:18 http://archive.ubuntu.com/ubuntu bionic-backports/main amd64 Packages [64.0 kB] Fetched 28.2 MB in 19s (1467 kB/s) Reading package lists... Reading package lists... Building dependency tree... Reading state information... Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: npm : Depends: node-gyp (>= 0.10.9) but it is not going to be installed E: Unable to correct problems, you have held broken packages. The command '/bin/sh -c apt-get clean && apt-get update && apt-get install --yes --no-install-recommends --no-install-suggests build-essential net-tools inetutils-ping libncurses5-dev libdigest-crc-perl libpopt-dev xxd liblzo2-dev zlib1g-dev lib32z1 libssl-dev libglib2.0-dev libreadline-dev libjson-c-dev libxml2-dev libsqlite3-dev sqlite3 libuv1-dev libxslt1-dev libfcgi-dev libevent-dev libyajl-dev liburiparser-dev libwebsockets-dev locales lua5.1 liblua5.1-dev python python3 python3-dev python3-pip git git-lfs subversion autoconf automake pkg-config ccache cmake ninja-build clang-tools-6.0 bison flex gettext ca-certificates libtool patch vim unzip uuid-dev wget curl cpio bc gawk gdb valgrind diffstat chrpath texinfo ssh openssh-client openssh-server netbase quilt protobuf-c-compiler dropbear-bin openvswitch-switch tmux dirmngr lighttpd alien mlocate iproute2 dos2unix lsb-release rsync gdisk man pax moreutils npm sudo' returned a non-zero code: 100
11-08
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值