当前位置: 首页 > 无线与硬件 > 正文

[分享]DD-WRT使用QOS和限速命令

假设路由器下有4个用户,分别拥有IP地址192.168.1.11 ~ 192.168.1.14。
1。打开QoS界面,选择“WAN”、“HTB”,填入带宽的80%左右。假设是2M ADSL,这里就填上行200,下行1600
2。在Netmask Priority中,添加IP地址(把不同IP设置为不同的优先级,以便后续修改):
      192.168.1.11/32 (Premium)
      192.168.1.12/32 (Express)
      192.168.1.13/32 (Standard)
      192.168.1.14/32 (Bulk)
3。点击Apply Settings,保存一下QoS页面的设置
4。打开Administration,Management,启用Cron,然后在后面的文本框中填入下面的代码:
      * * * * * root tc class replace dev imq0 parent 1:2 classid 1:10 htb rate 400kbit ceil 1600kbit
      * * * * * root tc class replace dev imq0 parent 1:2 classid 1:20 htb rate 400kbit ceil 1600kbit
      * * * * * root tc class replace dev imq0 parent 1:2 classid 1:30 htb rate 400kbit ceil 1600kbit
      * * * * * root tc class replace dev imq0 parent 1:2 classid 1:40 htb rate 400kbit ceil 1600kbit

      * * * * * root tc class replace dev ppp0 parent 1:2 classid 1:10 htb rate 50kbit ceil 200kbit
      * * * * * root tc class replace dev ppp0 parent 1:2 classid 1:20 htb rate 50kbit ceil 200kbit
      * * * * * root tc class replace dev ppp0 parent 1:2 classid 1:30 htb rate 50kbit ceil 200kbit
      * * * * * root tc class replace dev ppp0 parent 1:2 classid 1:40 htb rate 50kbit ceil 200kbit
5。点击Apply Settings,然后点击Reboot重启路由器,于是大功告成了,限速设置完毕
6。一点说明:
注意一下上面的代码中的红色数字,左边是保障的带宽,而右边是最大限制带宽。上4行定义的是下载流量,下4行定义的是上传流量。4行分别重新定义了Premium / Express / Standard / Bulk的具体设置。所以读者只要按需更改数值就行了。
路由器要控制上传流量很容易,但是控制下载流量,尤其是基于UDP的下载流量,本质上就是非常困难的,这也是QoS并不那么简单,也常常并不十分有效的原因。
 

简单的脚本命令来实现DD-WRT上的DoS保护

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
  echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
  echo 1 > /proc/sys/net/ipv4/ip_forward

# 下面两个注释掉的参数会影响eMule等软件, 请自行调试后决定是否开启.
  #echo 1024 > /proc/sys/net/ipv4/ipfrag_high_thresh
  #echo 512 > /proc/sys/net/ipv4/ipfrag_low_thresh 
  echo 64000 > /proc/sys/net/ipv4/ipfrag_high_thresh
  echo 48000 > /proc/sys/net/ipv4/ipfrag_low_thresh 

echo 10 > /proc/sys/net/ipv4/ipfrag_time 
  echo 5 > /proc/sys/net/ipv4/icmp_ratelimit
  echo 1 > /proc/sys/net/ipv4/tcp_syncookies
  echo 0 > /proc/sys/net/ipv4/conf/eth1/accept_source_route
  echo 0 > /proc/sys/net/ipv4/conf/eth1/accept_redirects 
  echo 1 > /proc/sys/net/ipv4/conf/eth1/log_martians 
  echo 10 > /proc/sys/net/ipv4/neigh/eth1/locktime
  echo 0 > /proc/sys/net/ipv4/conf/eth1/proxy_arp
  echo 50 > /proc/sys/net/ipv4/neigh/eth1/gc_stale_time

#
  # 下面的命令确保提供最后保护和对于"中间人"MITM攻击提供适当的防御
  # 

echo 0 > /proc/sys/net/ipv4/conf/eth1/send_redirects
  echo 0 > /proc/sys/net/ipv4/conf/eth1/secure_redirects
  echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
  echo 5 > /proc/sys/net/ipv4/igmp_max_memberships
  echo 2 > /proc/sys/net/ipv4/igmp_max_msf
  echo 1024 > /proc/sys/net/ipv4/tcp_max_orphans
  echo 2 > /proc/sys/net/ipv4/tcp_syn_retries
  echo 2 > /proc/sys/net/ipv4/tcp_synack_retries
  echo 1 > /proc/sys/net/ipv4/tcp_abort_on_overflow
  echo 10 > /proc/sys/net/ipv4/tcp_fin_timeout
  echo 0 > /proc/sys/net/ipv4/route/redirect_number
  echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
  echo 1 > /proc/sys/net/ipv4/conf/eth1/rp_filter
  echo 1 > /proc/sys/net/ipv4/tcp_syncookies
  echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
  echo 61 > /proc/sys/net/ipv4/ip_default_ttl

# 调整超时防御DoS攻击
  echo "1800" > /proc/sys/net/ipv4/tcp_keepalive_time
  echo "0" > /proc/sys/net/ipv4/tcp_window_scaling
  echo "0" > /proc/sys/net/ipv4/tcp_sack

# 类似Windows XP的包检查防火墙功能
  echo 4096 87380 4194304 >/proc/sys/net/ipv4/tcp_rmem
  echo 4096 87380 4194304 >/proc/sys/net/ipv4/tcp_wmem

# 检查网络超载 (详细的拥堵通知)
  echo 1 > /proc/sys/net/ipv4/tcp_ecn

# 修改外出流量的端口范围
  echo "30000 60000" > /proc/sys/net/ipv4/ip_local_port_range
 

本文固定链接: http://blog.ich8.com/post/290 | 霸王硬上弓's Blog

avatar
该日志由 霸王硬上弓 于2010年09月06日发表在 无线与硬件 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: [分享]DD-WRT使用QOS和限速命令 | 霸王硬上弓's Blog

[分享]DD-WRT使用QOS和限速命令:等您坐沙发呢!

发表评论

您必须 [ 登录 ] 才能发表留言!