KoolShare

 找回密码
 立即注册
搜索
楼主: 妙妙呜

[教程] 华硕及梅林固件改版路由器双线路双拨策略分流方案v2.9.4

  [复制链接]

1

主题

10

帖子

228

积分

中级魔法师

Rank: 3Rank: 3

精华
0
门户文章
0
魔力币
225
魔法值
0
注册时间
2018-2-13
发表于 2018-8-30 12:13:06 | 显示全部楼层
更新了2.0之后,发现迅雷下载时无线会断网,电脑重启后才能重连,不知道为什么

12

主题

1736

帖子

683

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
404
魔法值
0
注册时间
2018-7-15
 楼主| 发表于 2018-8-30 12:39:52 | 显示全部楼层
本帖最后由 妙妙呜 于 2018-8-30 13:16 编辑
leoeos 发表于 2018-8-30 12:13
更新了2.0之后,发现迅雷下载时无线会断网,电脑重启后才能重连,不知道为什么 ...

理论上应该跟脚本无关,或许是系统内部的负载均衡造成的,别的实在是判断不出来了,建议使用最新的v2.1通用版,可以试试屏蔽和不屏蔽系统负载均衡两种情况时迅雷下载的效果。
注意:修改配置后要重启路由器,否则一些内核占用的资源无法更新。

8

主题

99

帖子

169

积分

初级魔法师

Rank: 2

精华
0
门户文章
0
魔力币
144
魔法值
0
注册时间
2017-11-2
发表于 2018-8-30 13:11:49 | 显示全部楼层
大神 你写的太多 看不懂啊    我家现在是 主用电信 又装了1条移动宽带 都是100M  现在电信连的是86U WAN口   我想再用LAN口变成WAN 然后把移动的插上面  然后移动只单独给一个设备用可以吗

1

主题

10

帖子

228

积分

中级魔法师

Rank: 3Rank: 3

精华
0
门户文章
0
魔力币
225
魔法值
0
注册时间
2018-2-13
发表于 2018-8-30 13:14:06 | 显示全部楼层
妙妙呜 发表于 2018-8-30 12:39
理论上应该跟脚本无关,或许是系统内部的负载均衡造成的,别的实在是判断不出来了,建议使用最新的v2.1通 ...

好的,谢谢。

2

主题

18

帖子

166

积分

初级魔法师

Rank: 2

精华
0
门户文章
0
魔力币
161
魔法值
0
注册时间
2018-2-10
发表于 2018-8-30 13:23:21 | 显示全部楼层
妙妙呜 发表于 2018-8-30 02:21
非常抱歉,因工作耽搁,这么晚才给回复。NND,业余时间总被占用,什么世道,没人性。

刚刚测试并复现出你 ...

感谢解答,不过在修正部分代码过后又出现了新的问题:在ssh中尝试运行时出现如下提示
  1. Error: argument "wan0" is wrong: invalid table ID

  2. insmod: 'ip_set.ko': module not found
  3. insmod: 'ip_set_hash_net.ko': module not found
  4. insmod: 'ip_set_hash_ip.ko': module not found
  5. insmod: 'xt_set.ko': module not found
  6. Error: argument "wan0" is wrong: table id value is invalid

  7. Error: argument "wan0" is wrong: table id value is invalid

  8. Error: argument "wan0" is wrong: invalid table ID
复制代码
同时路由器系统日志中显示为
  1. Thu Aug 30 13:17:29 CST 2018: --------------LZ rules come here!-----------
  2. Thu Aug 30 13:17:39 CST 2018: LZ ip_rule_prio_9995 = 0
  3. Thu Aug 30 13:17:39 CST 2018: LZ ip_rule_prio_9996 = 0
  4. Thu Aug 30 13:17:39 CST 2018: LZ ip_rule_prio_9997 = 0
  5. Thu Aug 30 13:17:39 CST 2018: LZ ip_rule_prio_9998 = 0
  6. Thu Aug 30 13:17:39 CST 2018: LZ ip_rule_prio_9999 = 0
  7. Thu Aug 30 13:17:39 CST 2018: LZ ip_rule_prio_10000 = 0
  8. Thu Aug 30 13:17:39 CST 2018: --------------LZ rules initialized!---------
  9. Thu Aug 30 13:17:39 CST 2018: --------------No LZ rules run!--------------
复制代码
更新今天的2.1版本过后还是这样,请问应该如何处理?

12

主题

1736

帖子

683

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
404
魔法值
0
注册时间
2018-7-15
 楼主| 发表于 2018-8-30 13:33:25 | 显示全部楼层
没奶的奶牛 发表于 2018-8-30 13:11
大神 你写的太多 看不懂啊    我家现在是 主用电信 又装了1条移动宽带 都是100M  现在电信连的是86U WAN口  ...

WAN口接电信是第一WAN口,LAN1口接移动作为第二WAN口,在路由器的外部网络里设置,开启双线路负载均衡。

直接下载使用v2.1版,可直接用主执行代码自定义区的缺省设置,但需要改一下自定义区里路由器的本地地址(如果不一样的话)。
另外,删除掉下面自定义函数案例里面地址不匹配和不需要的命令。

你说的“ 然后移动只单独给一个设备用可以吗”是啥情况?没弄懂。

12

主题

1736

帖子

683

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
404
魔法值
0
注册时间
2018-7-15
 楼主| 发表于 2018-8-30 13:59:31 | 显示全部楼层
本帖最后由 妙妙呜 于 2018-8-30 14:05 编辑
TinyTitanPro 发表于 2018-8-30 13:23
感谢解答,不过在修正部分代码过后又出现了新的问题:在ssh中尝试运行时出现如下提示同时路由器系统日志 ...

你那个GT的固件版本号能给我一下吗?

你的机器比较高级,可能固件的linux版本跟我们用的不一样。

你先在SSH里分别输入如下两条命令:
ip route show table 100
ip route show table 200
看看有没有错误提示。

若没有,
请参考2#楼的代码示例,先将150~155行的“加载ipset组件”部分注释掉或删除,然后用100全局替换掉wan0,再用200替换掉wan1。

然后重启路由器,看看是否正常。

2

主题

18

帖子

166

积分

初级魔法师

Rank: 2

精华
0
门户文章
0
魔力币
161
魔法值
0
注册时间
2018-2-10
发表于 2018-8-30 14:07:37 | 显示全部楼层
本帖最后由 TinyTitanPro 于 2018-8-30 14:16 编辑
妙妙呜 发表于 2018-8-30 13:59
你那个GT的固件版本号能给我一下吗?

你的机器比较高级,可能固件的linux版本跟我们用的不一样。

我用的固件就是论坛http://koolshare.cn/thread-130902-1-1.html这帖的GT-AC5300_384_21140 官改固件。
按照你说的修改后没有错误提示了,日志中显示“LZ rule runs ok!”,目测是正常运行了。
非常感谢大佬的解答!

我在你的脚本上的改动:1.删除了lz_ip_rule_from_localip_to_wan_outlet和lz_outputsyslog这2个函数以及脚本中调用这2个函数的语句,2.注释了加载ipset组件的语句,3.替换了wan0和wan1

目前情况是可以正常分流(移动宽带测速页面显示的是第二wan的移动宽带信息),但由于删除了自定义的函数,暂时没法自己添加分流规则了。

12

主题

1736

帖子

683

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
404
魔法值
0
注册时间
2018-7-15
 楼主| 发表于 2018-8-30 14:29:09 | 显示全部楼层
本帖最后由 妙妙呜 于 2018-8-30 14:47 编辑
TinyTitanPro 发表于 2018-8-30 14:07
我用的固件就是论坛http://koolshare.cn/thread-130902-1-1.html这帖的GT-AC5300_384_21140 官改固件。
按 ...

你真的很棒!!!

你固件应该是7月份的,比较新,但很奇怪,我是在目前最新的官版梅林384.6上测的,没遇到问题。

那个加载ipset组件部分是为兼容老版本的,别的固件上都没问题。看来这个兼容性处理还是比较挠头的。
刚看到,S大自己在固件里加了ipset支持,不需要单独加载了。

12

主题

1736

帖子

683

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
404
魔法值
0
注册时间
2018-7-15
 楼主| 发表于 2018-8-30 14:57:27 | 显示全部楼层
本帖最后由 妙妙呜 于 2018-8-30 15:02 编辑
TinyTitanPro 发表于 2018-8-30 14:07
我用的固件就是论坛http://koolshare.cn/thread-130902-1-1.html这帖的GT-AC5300_384_21140 官改固件。
按 ...

其实没必要删那么多,留着可以方便添加和修改规则,并监视一下启动状态,提高不了运行效率。
脚本命令代码启动后只执行一次,把策略规则灌入系统的策略路由库后,由系统内核调度按规则执行,不像其它软件需要驻留在系统里工作和处理事务。

2

主题

18

帖子

166

积分

初级魔法师

Rank: 2

精华
0
门户文章
0
魔力币
161
魔法值
0
注册时间
2018-2-10
发表于 2018-8-30 15:03:41 | 显示全部楼层
妙妙呜 发表于 2018-8-30 14:57
其实没必要删那么多,留着可以方便添加和修改规则,并监视一下启动状态,提高不了运行效率。
脚本命令代 ...

删掉那2个函数是因为我一直没解决./lz_rule.sh: line 65: syntax error: unexpected "("的错误,所以干脆把所有造成错误的代码都删掉了,可能我这个固件不兼容这种函数的定义方式?

12

主题

1736

帖子

683

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
404
魔法值
0
注册时间
2018-7-15
 楼主| 发表于 2018-8-30 15:13:16 | 显示全部楼层
本帖最后由 妙妙呜 于 2018-8-30 16:09 编辑
TinyTitanPro 发表于 2018-8-30 15:03
删掉那2个函数是因为我一直没解决./lz_rule.sh: line 65: syntax error: unexpected "("的错误,所以干脆 ...

我就是怕出现兼容性问题,尽可能用标准方式书写。

这样啊,可能S大加了一些自己的定义方式,你试试把函数定义前面的“function”去掉,看看行不行?并告之。
另外,请您在运行过程中用SSH运行一下这个命令:
ip rule show
然后吧SSH的显示截个图发给我,谢谢啦!

2

主题

18

帖子

166

积分

初级魔法师

Rank: 2

精华
0
门户文章
0
魔力币
161
魔法值
0
注册时间
2018-2-10
发表于 2018-8-30 16:29:36 | 显示全部楼层
本帖最后由 TinyTitanPro 于 2018-8-30 16:31 编辑
妙妙呜 发表于 2018-8-30 15:13
我就是怕出现兼容性问题,尽可能用标准方式书写。

这样啊,可能S大加了一些自己的定义方式,你试试把函数 ...

去掉function之后错误提示变成了./lz_rule.sh: line 101: syntax error: unexpected "}"  
运行ip rule show后的截图如下

12

主题

1736

帖子

683

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
404
魔法值
0
注册时间
2018-7-15
 楼主| 发表于 2018-8-30 17:20:56 | 显示全部楼层
TinyTitanPro 发表于 2018-8-30 16:29
去掉function之后错误提示变成了./lz_rule.sh: line 101: syntax error: unexpected "}"  
运行ip rule  ...

非常感谢!

两个WAN口的路由表确实如预料的采用最原始的100、200表示方式的,官方梅林是用wan0、wan1标识的。

那个第三行标号199的那行是你加的,还是系统自己产生的?

如果方便,你再试试,把函数定义的()“”括号去掉会是怎样?

还有就是,你先把firewall-start里面的lz_rule.sh注释掉,然后重启路由器,再进到SSH里,运行ip rule show,截图发给我,我先看一下启动脚本前的情况,我有些担心没有抓到负载均衡控制,否则你机器分流会不稳定。

拜托了,麻烦你了

2

主题

18

帖子

166

积分

初级魔法师

Rank: 2

精华
0
门户文章
0
魔力币
161
魔法值
0
注册时间
2018-2-10
发表于 2018-8-30 17:44:16 | 显示全部楼层
妙妙呜 发表于 2018-8-30 17:20
非常感谢!

两个WAN口的路由表确实如预料的采用最原始的100、200表示方式的,官方梅林是用wan0、wan1标 ...

去掉括号后还是出错,提示
./lz_rule.sh: line 77: function: not found
./lz_rule.sh: line 101: syntax error: unexpected "}"

重启后再运行脚本没有199那项了,运行脚本前:

运行脚本后:

12

主题

1736

帖子

683

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
404
魔法值
0
注册时间
2018-7-15
 楼主| 发表于 2018-8-30 17:46:25 | 显示全部楼层
TinyTitanPro 发表于 2018-8-30 16:29
去掉function之后错误提示变成了./lz_rule.sh: line 101: syntax error: unexpected "}"  
运行ip rule  ...

你把两个函数定义分别改成如下:
function lz_ip_rule_from_localip_to_wan_outlet {

function lz_outputsyslog {

我这里是可以通过的,有种感觉你机器上也可以,试一下吧

可能S大用的是比较老版的SHELL解释器

2

主题

18

帖子

166

积分

初级魔法师

Rank: 2

精华
0
门户文章
0
魔力币
161
魔法值
0
注册时间
2018-2-10
发表于 2018-8-30 17:52:55 | 显示全部楼层
妙妙呜 发表于 2018-8-30 17:46
你把两个函数定义分别改成如下:
function lz_ip_rule_from_localip_to_wan_outlet {

刚才就是这么改的,不行 orz

12

主题

1736

帖子

683

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
404
魔法值
0
注册时间
2018-7-15
 楼主| 发表于 2018-8-30 18:06:08 | 显示全部楼层
TinyTitanPro 发表于 2018-8-30 17:52
刚才就是这么改的,不行 orz

那个函数名跟“{”括弧间要有一个空格,若这样也不行,暂时只能将函数体内的命令拷贝到主程序内调用函数的位置替换那个函数了。

看了一下,负载均衡控制是抓到了,稳定运行应该没有问题,再多观察观察,有问题及时发帖告知,S大这个固件确实有些怪异,不同寻常。

辛苦了,谢谢哈

25

主题

9732

帖子

1万

积分

大魔导师

Rank: 9Rank: 9Rank: 9

精华
1
门户文章
1
魔力币
2849
魔法值
10
注册时间
2015-9-23

R7000EA6700DDOS纪念勋章

发表于 2018-8-31 08:39:23 | 显示全部楼层
感谢分享

如果能把梅林的策略路由插件优化那就最好了

重新做一个轮子也是一种办法,但毕竟前人也做过,总有重复性的地方,精力难免有所浪费
不如把现有的插件,解决其中的bug,做的更好

12

主题

1736

帖子

683

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
404
魔法值
0
注册时间
2018-7-15
 楼主| 发表于 2018-8-31 15:14:09 | 显示全部楼层
本帖最后由 妙妙呜 于 2018-8-31 15:17 编辑
glk17 发表于 2018-8-31 08:39
感谢分享

如果能把梅林的策略路由插件优化那就最好了

我这也是借鉴了前人经验,解决了之前那些方案中的不足和缺失,找到了造成问题的原因,保证了策略执行的可靠、可控和使用中的流畅。

直接在之前的代码上优化意义不大了,原来也想那么干,后发现解决问题的时候太受原有架构限制,会越搞越乱,可读性不好,不如重启炉灶,更加干净,而且也想把代码搞成范例教程让想了解策略路由机制和学习代码的初级爱好者更容易阅读。

好在代码本身不长,就是注释写的多,占了很大篇幅。估计有点IT基础和初级编程经验的小白,看看就会整了。通过注释说明指引,策略配置不用一分钟,以后可以随意定制自己的方案。

貌似高深的东东就这么给白菜化了,都是因为之前没找到一个可靠好用的插件和脚本,被逼的自己白手起家,罪过罪过。。。

点评

谢大神,好主意,我要先学怎么做插件。当前急需解决某本土改版固件不完全支持标准命令,有兼容性问题,可单改解决,还是希望能统一成一个版本  发表于 2018-8-31 15:35
如果能打包成插件的形式来分享就更好了,插件开发详解:http://koolshare.cn/thread-130439-1-1.html  发表于 2018-8-31 15:19

联系我们|手机版|KoolShare ( 沪ICP备13045430号 )

GMT+8, 2019-1-19 02:26 , Processed in 0.091594 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表