返回列表 发帖

[求助] 3WAN(多WAN)带宽叠加脚本怎么用?

本帖最后由 skycity999 于 2010-3-7 11:01 编辑

请问下面的3WAN脚本放在路由后台那里运行?谢谢老师!
  1. #!/bin/ash
  2. # load-balance Script VER 0.5 by rightzd 20081124

  3. LOGGER=logger
  4. LOCK_FILE=/var/policyroute-set.lock

  5. NETLIST=/var/policyroute-netlist
  6. if [ ! -f $WAN1_NETLIST ]; then
  7.     $LOGGER "$NETLIST does not exist!"
  8.     exit 2
  9. fi

  10. $LOGGER "Start PolicyRouting ..."
  11. WAN1_GATEWAY=$(nvram get wan_gateway)
  12. WAN2_GATEWAY=$(nvram get wan_gateway)
  13. WAN3_GATEWAY=$(nvram get wan_gateway)
  14. WAN1_IFACE=ppp0
  15. WAN2_IFACE=ppp1
  16. WAN3_IFACE=ppp2
  17. LAN_IFACE=$(nvram get lan_ifname)
  18. LAN_IP=$(nvram get lan_ipaddr)
  19. LAN_NET=${LAN_IP%.*}.0/24
  20. WAN1_WAN_IP=$(ifconfig $WAN1_IFACE|grep "inet addr"|awk -F ":" '{print $2}'|awk -F " " '{print $1}')
  21. WAN2_WAN_IP=$(ifconfig $WAN2_IFACE|grep "inet addr"|awk -F ":" '{print $2}'|awk -F " " '{print $1}')
  22. WAN3_WAN_IP=$(ifconfig $WAN3_IFACE|grep "inet addr"|awk -F ":" '{print $2}'|awk -F " " '{print $1}')
  23. LAN_IP=$(ifconfig $LAN_IFACE|grep "inet addr"|awk -F ":" '{print $2}'|awk -F " " '{print $1}')

  24. if [ "$WAN1_IFACE" = "$WAN2_IFACE" ]; then
  25.   $LOGGER "Start PolicyRouting fail, WAN1_IFACE = WAN2_IFACE"
  26.   exit
  27. fi

  28. if [ "$WAN1_IFACE" = "$WAN3_IFACE" ]; then
  29.   $LOGGER "Start PolicyRouting fail, WAN1_IFACE = WAN3_IFACE"
  30.   exit
  31. fi

  32. if [ "$WAN2_IFACE" = "$WAN3_IFACE" ]; then
  33.   $LOGGER "Start PolicyRouting fail, WAN2_IFACE = WAN3_IFACE"
  34.   exit
  35. fi

  36. if [ "$WAN1_IFACE" = "" ]; then
  37.   $LOGGER "Start PolicyRouting fail, WAN1_IFACE is NULL"
  38.   exit
  39. fi

  40. if [ "$WAN2_IFACE" = "" ]; then
  41.   $LOGGER "Start PolicyRouting fail, WAN2_IFACE is NULL"
  42.   exit
  43. fi

  44. if [ "$WAN3_IFACE" = "" ]; then
  45.   $LOGGER "Start PolicyRouting fail, WAN3_IFACE is NULL"
  46.   exit
  47. fi

  48. if [ -f $LOCK_FILE ]; then
  49.   $LOGGER "Start PolicyRouting exit, other process starting."
  50.   exit
  51. fi

  52. echo "SETTING" > $LOCK_FILE

  53. $LOGGER "WAN1_IFACE: $WAN1_IFACE, WAN1_WAN_IP: $WAN1_WAN_IP, WAN1_GATEWAY: $WAN1_GATEWAY"
  54. $LOGGER "WAN2_IFACE: $WAN2_IFACE, WAN2_WAN_IP: $WAN2_WAN_IP, WAN2_GATEWAY: $WAN2_GATEWAY"
  55. $LOGGER "WAN3_IFACE: $WAN3_IFACE, WAN3_WAN_IP: $WAN3_WAN_IP, WAN3_GATEWAY: $WAN3_GATEWAY"
  56. $LOGGER "LAN_IP: $LAN_IP LAN_NET: $LAN_NET"

  57. $LOGGER "disable rp_filter "
  58. echo 0 >/proc/sys/net/ipv4/conf/all/rp_filter

  59. $LOGGER "set default router via $WAN1_IFACE, $WAN2_IFACE, $WAN3_IFACE"
  60. ip route del default
  61. ip route del default
  62. ip route del default
  63. ip route add default nexthop via $WAN1_GATEWAY dev $WAN1_IFACE weight 1 nexthop via $WAN2_GATEWAY dev $WAN2_IFACE weight 1 nexthop via $WAN3_GATEWAY dev $WAN3_IFACE weight 1
  64. ip rule flush
  65. ip rule del table main
  66. ip rule del table default
  67. ip rule add lookup main prio 32766
  68. ip rule add lookup default prio 32767

  69. WAN1_GET_DNS=$(nvram get wan_get_dns)
  70. for WAN1_DNS in $WAN1_GET_DNS
  71. do
  72.     $LOGGER "set route($WAN1_GATEWAY) for DNS: $WAN1_DNS"
  73.     ip rule add to $WAN1_DNS table 100 prio 150
  74. done

  75. $LOGGER "set route table 100..."
  76. ip route flush table 100
  77. ip route del table 100
  78. ip route add to $WAN1_GATEWAY dev $WAN1_IFACE src $WAN1_WAN_IP proto kernel scope link table 100
  79. ip route add to $WAN2_GATEWAY dev $WAN2_IFACE src $WAN2_WAN_IP proto kernel scope link table 100
  80. ip route add to $WAN3_GATEWAY dev $WAN3_IFACE src $WAN3_WAN_IP proto kernel scope link table 100
  81. ip route add to $LAN_NET dev $LAN_IFACE src $LAN_IP proto kernel scope link table 100
  82. ip route add to 127.0.0.0/8 dev lo scope link table 100
  83. ip route add default via $WAN1_GATEWAY dev $WAN1_IFACE src $WAN1_WAN_IP  table 100
  84. ip route append default via $WAN2_GATEWAY dev $WAN2_IFACE src $WAN2_WAN_IP table 100
  85. ip route append default via $WAN3_GATEWAY dev $WAN3_IFACE src $WAN3_WAN_IP table 100
  86. ip rule add from $WAN1_WAN_IP table 100 prio 100

  87. $LOGGER "set route table 200..."
  88. ip route flush table 200
  89. ip route del table 200
  90. ip route add to $WAN1_GATEWAY dev $WAN1_IFACE src $WAN1_WAN_IP proto kernel scope link table 200
  91. ip route add to $WAN2_GATEWAY dev $WAN2_IFACE src $WAN2_WAN_IP proto kernel scope link table 200
  92. ip route add to $WAN3_GATEWAY dev $WAN3_IFACE src $WAN3_WAN_IP proto kernel scope link table 200
  93. ip route add to $LAN_NET dev $LAN_IFACE src $LAN_IP proto kernel scope link table 200
  94. ip route add to 127.0.0.0/8 dev lo scope link table 200
  95. ip route add default via $WAN2_GATEWAY dev $WAN2_IFACE src $WAN2_WAN_IP  table 200
  96. ip route append default via $WAN1_GATEWAY dev $WAN1_IFACE src $WAN1_WAN_IP table 200
  97. ip route append default via $WAN3_GATEWAY dev $WAN3_IFACE src $WAN3_WAN_IP table 200
  98. ip rule add from $WAN2_WAN_IP table 200 prio 100

  99. $LOGGER "set route table 203..."
  100. ip route flush table 203
  101. ip route del table 203
  102. ip route add to $WAN1_GATEWAY dev $WAN1_IFACE src $WAN1_WAN_IP proto kernel scope link table 203
  103. ip route add to $WAN2_GATEWAY dev $WAN2_IFACE src $WAN2_WAN_IP proto kernel scope link table 203
  104. ip route add to $WAN3_GATEWAY dev $WAN3_IFACE src $WAN3_WAN_IP proto kernel scope link table 203
  105. ip route add to $LAN_NET dev $LAN_IFACE src $LAN_IP proto kernel scope link table 203
  106. ip route add to 127.0.0.0/8 dev lo scope link table 203
  107. ip route add default via $WAN3_GATEWAY dev $WAN3_IFACE src $WAN3_WAN_IP  table 203
  108. ip route append default via $WAN2_GATEWAY dev $WAN2_IFACE src $WAN2_WAN_IP table 203
  109. ip route append default via $WAN1_GATEWAY dev $WAN1_IFACE src $WAN1_WAN_IP table 203
  110. ip rule add from $WAN3_WAN_IP table 203 prio 100

  111. #防止QQ掉线加的IP,默认走wan1线
  112. ip rule add to 219.133.60.0/24 table 100 prio 100
  113. ip rule add to 219.133.48.0/24 table 100 prio 100
  114. ip rule add to 219.133.40.0/24 table 100 prio 100
  115. ip rule add to 219.133.38.0/24 table 100 prio 100
  116. ip rule add to 119.147.11.0/24 table 100 prio 100
  117. ip rule add to 119.147.12.0/24 table 100 prio 100
  118. ip rule add to 119.147.14.0/24 table 100 prio 100
  119. ip rule add to 121.14.77.0/24 table 100 prio 100
  120. ip rule add to 121.14.101.0/24 table 100 prio 100
  121. ip rule add to 121.14.100.0/24 table 100 prio 100
  122. ip rule add to 121.14.73.0/24 table 100 prio 100
  123. ip rule add to 61.152.88.0/24 table 100 prio 100
  124. ip rule add to 61.152.100.0/24 table 100 prio 100
  125. ip rule add to 58.59.1.0/24 table 100 prio 100
  126. ip rule add to 58.60.10.0/24 table 100 prio 100
  127. ip rule add to 58.61.166.0/24 table 100 prio 100
  128. ip rule add to 58.61.32.0/24 table 100 prio 100
  129. ip rule add to 58.61.33.0/24 table 100 prio 100
  130. ip rule add to 124.115.5.0/24 table 100 prio 100
  131. ip rule add to 61.177.95.103 table 100 prio 100


  132. $LOGGER "clear route cache..."
  133. ip route flush cache

  134. $LOGGER "Start PolicyRouting success."
  135. rm $LOCK_FILE
复制代码

顶一下,3WAN脚本怎么用,有人知道吗?

TOP

用在早期的单WAN版Tomato上的!有空可以测试一下!

TOP

我们还是需要3WAN的。

有三条线路,还有一条空着呢,虽然是固件IP的全国内部网。
我是魅族
bbs.meizu.com

TOP

怎么吧3WAN脚本改成最新tt固件也能用的呢?有大侠能改吗,如果能用,花点钱也行,PM我。

TOP

3WAN?  真牛B

TOP

返回列表