问题产生原因: 因为需求,原来用tc做过限速
原命令如下:
ifb模块手动加载
modprobe ifb
启动虚拟设备ifb0
ip link set dev ifb0 up
tc qdisc add dev em1 ingress
使用ifb0做输入方向的重定向
tc filter add dev em1 parent ffff: protocol ip u32 match u32 0 0 flowid 1:1 action mirred egress redirect dev ifb0
tc qdisc add dev ifb0 root handle 1: htb default 1
tc class add dev ifb0 parent 1: classid 1:1 htb rate 1000kbit ceil 1000kbit burst 100k
使用ifb0做输出方向的重定向
tc filter add dev ifb0 parent 1: prio 1 protocol ip u32 match ip dst 36.110.160.37 match ip dport 80 0xffff flowid 1:1
tc filter add dev ifb0 parent 1: prio 1 protocol ip u32 match ip dst 111.206.217.37 match ip dport 80 0xffff flowid 1:1
查看
tc -s -d filter show dev ifb0
tc -s -d class show dev ifb0
tc -s -d qdisc show dev ifb0
更改
tc class change dev ifb0 parent 1: classid 1:1 htb rate 35kbit ceil 35kbit burst 3k
删除
tc qdisc del dev em1 root parent
tc class del dev ifb0 parent
tc class del dev ifb0
各命令均有效,执行无错误。
但是,我发现一个有效且简单的限速软件 wondershaper
https://blog.csdn.net/zhangxueleishamo/article/details/79924837
事前没有进行原tc限速删除,直接rpm安装了该包,安装完后再执行tc 删除原限速,出现错误为:
RTNETLINK answers: Invalid argument
百度得 https://blog.csdn.net/zahuopuboss/article/details/8678570 但是没有解决
删除软件包也没有解决
百度得https://www.linuxidc.com/Linux/2014-01/95253.htm
编辑/etc/udev/rules.d/70-persistent-net.rules
找到含NAME="em1"的那行直接删除或如我一样#注释,如下:
# PCI device 0x14e4:0x163b (bnx2) (custom name provided by external tool)
#SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:26:b9:47:f2:8e", ATTR{type}=="1", KERNEL=="eth*", NAME="em1"
然后重启机器,解决该问题。
错误RTNETLINK answers: File exists
http://www.bubuko.com/infodetail-1491579.html
(1)分析该问题的成因:
/etc/init.d/network
/etc/init.d/NetworkManager这两个服务有冲突。
从根本上说是NetworkMaganager(NM)的带来的冲突,停用NetworkManager即可解决。重启即可。
(2)解决问题:
既然不是操作系统和网卡配置的问题解决问题的就简单许多。利用chkconfig查看下
[root@localhost ~]# chkconfig --list network
network 0:off 1:off 2:on 3:on 4;on 5:on 6:off
[root@localhost ~]# chkconfig --list NetworkManager
NetworkManager 0:off 1:off 2:off 3:on 4:on 5:off 6:off
[root@localhost ~]# service NetworkManager stop
然后就OK了.