歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux TCP/IP網絡管理工具:net-tools VS iproute2

Linux TCP/IP網絡管理工具:net-tools VS iproute2

日期:2017/2/27 15:57:09   编辑:Linux教程
許多系統管理員仍然使用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


激活和關閉網卡
使用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只能顯示一個


配置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地址
使用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


添加修改默認路由
使用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


查看ARP表
使用net-tools:
$ arp -an
使用iproute2:
$ ip neigh


添加和刪除靜態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
原文:http://my.oschina.net/geekwolf/blog/310523
Copyright © Linux教程網 All Rights Reserved