找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 75541|回复: 97

【2014-1-13更新】修改pppd的并发多拨,重新编译

 火.. [复制链接]
发表于 2012-12-2 10:21 | 显示全部楼层 |阅读模式
本帖最后由 qqdwtypm 于 2014-1-14 11:53 编辑

更新ar71xx/91xx:
楼主在事隔一年之后终于狠下心买了个二手的4530r,所以也就有了ar系列的修改版并发多拨。
使用注意事项:
1. 在linux 3.3.8和3.10的trunk上都测试过可用,2.6没测试,应该也可以用
2. openwrt从3.3.8开始使用netifd来管理网络,因此在3.3.8及以上版本还需要修改系统自带的拨号脚本,具体位置为/lib/netifd/proto/ppp.sh,需将第42-58行拨号命令注释掉并替换为我们的并发拨号脚本/root/pppoe-my start,也可直接用附件中修改好的来覆盖。
3. 3.3.8及以上netifd会自动执行拨号脚本,不用再在开机启动中设置,只需计划任务中添加断线检测脚本autodetect即可。

此外,对多拨的脚本pppoe-my也做了一些更新,包括
1. 判断当前是否有别的pppoe-my脚本在运行
2. 正常kill pppd程序,减少非正常断线造成的冷却时间
3. 每次拨号随机更换mac地址(主要是楼主这里的网管太变态)
4. 拨号成功后自动重启nwan(针对使用linux2.6的同志)
5. 自动去掉路由表cache(hg255d建议寻找最适合自己的多拨数,去掉路由表cache后,单线程网速下降,多线程同地址网速上升,例如6拨时单线程可到8m/s,多线程同址可到4-5m/s,建议自己依据自己的网速去测试寻找)
6. 各种sleep时间仍然需要自己去调出最适合自己路由器和运营商的参数。


更新,懒得贴了,增加hg255d的脚本和固件,主贴地址:
【20121229更新】修改pppd的并发多拨,重新编译



参考帖子:
[120425改进同步方式]修改pppd提高多拨成功率
http://www.openwrt.org.cn/bbs/fo ... =7527&fromuid=26665

其0419的版本无法运行,总是提示sem open fail,但其旧版本的已经不提供下载,所以自己用其0408的代码在最新的dreambox源码上重新编译了一下,trunk version @557,ppp的版本为2.4.5-4

测试平台:db120,120201-openwrt-RG100A_DB120-squashfs-STA-full-testing.bin,最新的固件应该都可以

使用方法:
1. 安装ppp-mod-pppoe_2.4.5-4_brcm63xx.ipk,ppp_2.4.5-4_brcm63xx.ipk
2. 将syncpppinit复制到/usr/sbin/目录下,改权限
3. 拨号脚本pppoe-my,设置里面的几个参数,如拨号次数、几拨等等,此外在拨号前会等待100s,代码为sleep 100,大家可以自己修改,逐步尝试看自己的运营商的冷却时间是多少。
4. 将拨号脚本放至任意目录,改权限,添加开机运行。
5. 将检测脚本放至任意目录,改权限,添加计划任务运行,5分钟即可。

在ssh里可以运行脚本测试一下,同时看看输出:
  1. /root/pppoe-my start
复制代码
脚本pppoe-my:
  1. #!/bin/sh /etc/rc.common
  2. # Copyright (C) 2008 OpenWrt.org
  3. START=99


  4. #number是重拔次数
  5. #n是几拔
  6. #ok是拔上几次后退出拔号

  7. number=10
  8. n=10
  9. ok=4

  10. start() {
  11.    for q in $( seq 1 $number )
  12.    do        
  13.         echo
  14.         echo ___________________________________________________
  15.         echo 开始第$q次拔号...........
  16.         
  17.         #取得wan口的账号和密码,用来多拨
  18.         user=`uci get network.wan.username`
  19.         pass=`uci get network.wan.password`
  20.         
  21.         killall -q -SIG pppd

  22.         killall -q -SIG syncpppinit
  23.         sleep 100

  24.         syncpppinit $n &
  25.         sleep 1
  26.       
  27.         echo 正开始并发拔号中.............



  28.         for i in $( seq 0 $(($n-1)))
  29.         do
  30.           if [ "$i" == "0"  ] ;
  31.           then
  32.                interface=wan
  33.                 ifname=eth0
  34.           else
  35.                interface=wan$i
  36.                 ifname=vth$i
  37.           fi

  38.            #ifname=`uci get network.$interface.ifname`
  39.            #user=`uci get network.$interface.username`
  40.            #pass=`uci get network.$interface.password`
  41.            #echo pppoe帐号:[$user]                pppoe密码:[$pass]        pppoe接口:[$ifname]

  42.            /usr/sbin/pppd plugin rp-pppoe.so syncppp mtu 1492 mru 1492 nic-$ifname nopersist usepeerdns nodefaultroute user $user password $pass ipparam $interface ifname pppoe-$interface nodetach &
  43.         done

  44.         echo 正在并发拔号中.............
  45.         echo 等待20秒.............
  46.         sleep 10
  47.         
  48.         j=`ifconfig|grep -c inet.*P-t-P`
  49.         echo [$n]拔[$j]拔成功.....

  50.         ! [ "$j" -ge "$ok" ] && echo 成功[$j]拔, 小于设定的[$ok]拔将重新拔号...
  51.         [ "$j" -ge "$ok" ] && echo 成功[$j]拔, 大于或等于设定的[$ok]退出拔号...   
  52.         [ "$j" -ge "$ok" ] && killall -q -SIG syncpppinit
  53.         [ "$j" -ge "$ok" ] && exit
  54.     done
  55. }
复制代码
脚本autodetect:
  1. #!/bin/sh /etc/rc.common

  2. state=`ps|grep -c pppoe-my`
  3. [ "$state" -ge "2" ] && exit

  4. n_connected=`ifconfig|grep -c inet.*P-t-P`

  5. ! [ "$n_connected" -ge "1" ] && /root/pppoe-my start
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 6恩山币 +15 收起 理由
papa*** + 2 学习一下传说中的并发多拨,感谢!
1579*** + 1 ppp_2.4.5-10_ralin.ipk能修改个吗?用在hg255上
ior*** + 1 恳求 大神 编译x86的
pu*** + 3 一看就是觉得高端、大气、上档次!
ha*** + 5 土豪,我们做朋友吧!
WeD*** + 3 土豪,我们做朋友吧!

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
发表于 2012-12-2 10:24 | 显示全部楼层
感谢提供
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2012-12-2 12:19 | 显示全部楼层
有没AR系列的?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2012-12-2 13:31 | 显示全部楼层
测试过没有?在不能nwan多拨的地区能够并发拨号吗?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2012-12-16 21:42 | 显示全部楼层
同4楼问题,电信限制了多拨,用楼主方法能成功么?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2012-12-16 22:22 来自手机 | 显示全部楼层
有没有找到错误的原因啊
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2012-12-19 17:37 | 显示全部楼层
怎么不编辑一个AR71XX的嘛 555
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2012-12-20 10:23 | 显示全部楼层
哈,这个经典,实用,了解原理必须。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2012-12-30 10:44 | 显示全部楼层
楼主,我想集成到的固件编译中去,请问如何操作
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2012-12-31 11:46 | 显示全部楼层
过期的可乐 发表于 2012-12-30 10:44
楼主,我想集成到的固件编译中去,请问如何操作

svn更新之后,再去查看他以往的源码,然后再自己生成一个patch,专门用来把他的源码再改成上一版的,放到最后,直接编译即可

或者直接把ipk集成进去,我估计这个应该比较简单,呵呵
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2013-1-7 19:51 | 显示全部楼层

感谢提供
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2013-1-8 13:37 | 显示全部楼层
楼主
你好
小白求教
你这个能在最新的基于12.09-rc1的固件里使用吗?
还有就是如果我不想多拨或者是不拨号换位DHCP获取后改更改那些参数呢
谢谢了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2013-1-14 19:52 | 显示全部楼层
请教如何编译出syncpppinit这个文件?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2013-2-6 16:29 | 显示全部楼层
下载试试
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2013-3-2 13:33 | 显示全部楼层
我有错误,在web里面点连接,可以成功连接wan
但是ssh里打命令,出现如下错误日志。请帮忙分析。
May  8 22:18:41 DreamBox daemon.err pppd[6083]: Fatal signal 7
May  8 22:18:41 DreamBox daemon.info pppd[6083]: Exit.
May  8 22:18:41 DreamBox daemon.err pppd[6084]: Fatal signal 7
May  8 22:18:41 DreamBox daemon.info pppd[6084]: Exit.
May  8 22:18:41 DreamBox daemon.err pppd[6085]: Fatal signal 7
May  8 22:18:41 DreamBox daemon.info pppd[6085]: Exit.
May  8 22:18:41 DreamBox daemon.info pppd[6079]: Exit.
May  8 22:20:15 DreamBox daemon.warn dnsmasq-dhcp[2369]: DHCP packet received on eth0.2 which has no address
May  8 22:20:17 DreamBox daemon.warn dnsmasq-dhcp[2369]: DHCP packet received on eth0.2 which has no address
May  8 22:20:18 DreamBox daemon.warn dnsmasq-dhcp[2369]: DHCP packet received on eth0.2 which has no address
May  8 22:20:18 DreamBox daemon.warn dnsmasq-dhcp[2369]: DHCP packet received on eth0.2 which has no address
May  8 22:20:22 DreamBox daemon.info pppd[6454]: Plugin rp-pppoe.so loaded.
May  8 22:20:22 DreamBox daemon.info pppd[6454]: RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5
May  8 22:20:22 DreamBox daemon.info pppd[6455]: Plugin rp-pppoe.so loaded.
May  8 22:20:22 DreamBox daemon.info pppd[6455]: RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5
May  8 22:20:22 DreamBox daemon.info pppd[6453]: Plugin rp-pppoe.so loaded.
May  8 22:20:22 DreamBox daemon.info pppd[6453]: RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5
May  8 22:20:22 DreamBox daemon.info pppd[6452]: Plugin rp-pppoe.so loaded.
May  8 22:20:22 DreamBox daemon.info pppd[6452]: RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5
May  8 22:20:22 DreamBox daemon.info pppd[6457]: Plugin rp-pppoe.so loaded.
May  8 22:20:22 DreamBox daemon.info pppd[6457]: RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5
May  8 22:20:22 DreamBox daemon.info pppd[6458]: Plugin rp-pppoe.so loaded.
May  8 22:20:22 DreamBox daemon.info pppd[6458]: RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5
May  8 22:20:22 DreamBox daemon.info pppd[6459]: Plugin rp-pppoe.so loaded.
May  8 22:20:22 DreamBox daemon.info pppd[6459]: RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5
May  8 22:20:22 DreamBox daemon.info pppd[6460]: Plugin rp-pppoe.so loaded.
May  8 22:20:22 DreamBox daemon.info pppd[6460]: RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5
May  8 22:20:22 DreamBox daemon.info pppd[6461]: Plugin rp-pppoe.so loaded.
May  8 22:20:22 DreamBox daemon.info pppd[6461]: RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5
May  8 22:20:22 DreamBox daemon.info pppd[6462]: Plugin rp-pppoe.so loaded.
May  8 22:20:22 DreamBox daemon.info pppd[6462]: RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5
May  8 22:20:22 DreamBox daemon.info pppd[6463]: Plugin rp-pppoe.so loaded.
May  8 22:20:22 DreamBox daemon.info pppd[6463]: RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5
May  8 22:20:22 DreamBox daemon.notice pppd[6455]: pppd 2.4.5 started by root, uid 0
May  8 22:20:22 DreamBox daemon.notice pppd[6453]: pppd 2.4.5 started by root, uid 0
May  8 22:20:22 DreamBox daemon.notice pppd[6452]: pppd 2.4.5 started by root, uid 0
May  8 22:20:22 DreamBox daemon.err pppd[6452]: error sending pppoe packet: Network is down
May  8 22:20:22 DreamBox daemon.err pppd[6452]: error receiving pppoe packet: Network is down
May  8 22:20:22 DreamBox daemon.notice pppd[6454]: pppd 2.4.5 started by root, uid 0
May  8 22:20:22 DreamBox daemon.info pppd[6456]: Plugin rp-pppoe.so loaded.
May  8 22:20:22 DreamBox daemon.info pppd[6456]: RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5
May  8 22:20:22 DreamBox daemon.notice pppd[6457]: pppd 2.4.5 started by root, uid 0
May  8 22:20:22 DreamBox daemon.notice pppd[6458]: pppd 2.4.5 started by root, uid 0
May  8 22:20:22 DreamBox daemon.notice pppd[6459]: pppd 2.4.5 started by root, uid 0
May  8 22:20:22 DreamBox daemon.notice pppd[6460]: pppd 2.4.5 started by root, uid 0
May  8 22:20:22 DreamBox daemon.notice pppd[6456]: pppd 2.4.5 started by root, uid 0
May  8 22:20:22 DreamBox daemon.notice pppd[6462]: pppd 2.4.5 started by root, uid 0
May  8 22:20:22 DreamBox daemon.notice pppd[6463]: pppd 2.4.5 started by root, uid 0
May  8 22:20:22 DreamBox daemon.notice pppd[6461]: pppd 2.4.5 started by root, uid 0
May  8 22:20:27 DreamBox daemon.err pppd[6452]: error sending pppoe packet: Network is down
May  8 22:20:32 DreamBox daemon.err pppd[6452]: error sending pppoe packet: Network is down
May  8 22:20:32 DreamBox daemon.err pppd[6452]: Fatal signal 7
May  8 22:20:32 DreamBox daemon.info pppd[6452]: Exit.
May  8 22:20:32 DreamBox daemon.err pppd[6453]: Fatal signal 7
May  8 22:20:32 DreamBox daemon.info pppd[6453]: Exit.
May  8 22:20:32 DreamBox daemon.err pppd[6454]: Fatal signal 7
May  8 22:20:32 DreamBox daemon.info pppd[6454]: Exit.
May  8 22:20:32 DreamBox daemon.err pppd[6455]: Fatal signal 7
May  8 22:20:32 DreamBox daemon.info pppd[6455]: Exit.
May  8 22:20:32 DreamBox daemon.err pppd[6456]: Fatal signal 7
May  8 22:20:32 DreamBox daemon.info pppd[6456]: Exit.
May  8 22:20:32 DreamBox daemon.err pppd[6458]: Fatal signal 7
May  8 22:20:32 DreamBox daemon.info pppd[6458]: Exit.
May  8 22:20:32 DreamBox daemon.err pppd[6459]: Fatal signal 7
May  8 22:20:32 DreamBox daemon.info pppd[6459]: Exit.
May  8 22:20:32 DreamBox daemon.err pppd[6460]: Fatal signal 7
May  8 22:20:32 DreamBox daemon.info pppd[6460]: Exit.
May  8 22:20:32 DreamBox daemon.err pppd[6461]: Fatal signal 7
May  8 22:20:32 DreamBox daemon.info pppd[6461]: Exit.
May  8 22:20:32 DreamBox daemon.err pppd[6462]: Fatal signal 7
May  8 22:20:32 DreamBox daemon.info pppd[6462]: Exit.
May  8 22:20:32 DreamBox daemon.err pppd[6463]: Fatal signal 7
May  8 22:20:32 DreamBox daemon.info pppd[6463]: Exit.
May  8 22:20:32 DreamBox daemon.err pppd[6457]: Fatal signal 7
May  8 22:20:32 DreamBox daemon.info pppd[6457]: Exit.
May  8 22:20:55 DreamBox daemon.warn dnsmasq-dhcp[2369]: DHCP packet received on eth0.2 which has no address
May  8 22:21:04 DreamBox authpriv.info dropbear[3395]: Exit (root): Exited normally
May  8 22:21:55 DreamBox daemon.info pppd[6963]: Plugin rp-pppoe.so loaded.
May  8 22:21:55 DreamBox daemon.info pppd[6963]: RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5
May  8 22:21:55 DreamBox daemon.notice pppd[6963]: pppd 2.4.5 started by root, uid 0
May  8 22:21:55 DreamBox daemon.info pppd[6963]: PPP session is 1156
May  8 22:21:55 DreamBox daemon.warn pppd[6963]: Connected to 00:00:5e:00:01:01 via interface eth0.2
May  8 22:21:56 DreamBox daemon.info pppd[6963]: Using interface pppoe-wan
May  8 22:21:56 DreamBox daemon.notice pppd[6963]: Connect: pppoe-wan <--> eth0.2
May  8 22:21:59 DreamBox daemon.info pppd[6963]: Remote message: Authentication success,Welcome!
May  8 22:21:59 DreamBox daemon.notice pppd[6963]: PAP authentication succeeded
May  8 22:21:59 DreamBox daemon.notice pppd[6963]: peer from calling number 00:00:5E:00:01:01 authorized
May  8 22:21:59 DreamBox daemon.notice pppd[6963]: local  IP address 113.200.100.81
May  8 22:21:59 DreamBox daemon.notice pppd[6963]: remote IP address 113.200.100.1
May  8 22:21:59 DreamBox daemon.notice pppd[6963]: primary   DNS address 124.89.1.129
May  8 22:21:59 DreamBox daemon.notice pppd[6963]: secondary DNS address 221.11.1.68
May  8 22:22:01 DreamBox daemon.info dnsmasq[2369]: reading /tmp/resolv.conf.auto
May  8 22:22:01 DreamBox daemon.info dnsmasq[2369]: using nameserver 221.11.1.68#53
May  8 22:22:01 DreamBox daemon.info dnsmasq[2369]: using nameserver 124.89.1.129#53
May  8 22:22:01 DreamBox daemon.info dnsmasq[2369]: using local addresses only for domain lan
May  8 22:22:01 DreamBox user.warn kernel: u32 classifier
May  8 22:22:01 DreamBox user.warn kernel:     Performance counters on
May  8 22:22:01 DreamBox user.warn kernel:     input device check on
May  8 22:22:01 DreamBox user.warn kernel:     Actions configured
May  8 22:22:02 DreamBox user.warn kernel: Mirror/redirect action on
May  8 22:22:03 DreamBox user.warn kernel: HTB: quantum of class 10040 is small. Consider r2q change.
May  8 22:22:03 DreamBox user.warn kernel: HTB: quantum of class 10050 is small. Consider r2q change.
May  8 22:22:03 DreamBox user.warn kernel: HTB: quantum of class 10001 is big. Consider r2q change.
May  8 22:22:04 DreamBox user.notice ifup: Enabling Router Solicitations on wan (pppoe-wan)
May  8 22:22:05 DreamBox user.info firewall: adding wan (pppoe-wan) to zone wan
May  8 22:22:07 DreamBox daemon.warn dnsmasq-dhcp[2369]: DHCP packet received on eth0.2 which has no address
May  8 22:22:09 DreamBox daemon.info pppd[7764]: Plugin rp-pppoe.so loaded.
May  8 22:22:09 DreamBox daemon.info pppd[7764]: RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5
May  8 22:22:09 DreamBox daemon.notice pppd[7764]: pppd 2.4.5 started by root, uid 0
May  8 22:22:09 DreamBox daemon.info pppd[7764]: PPP session is 8915
May  8 22:22:09 DreamBox daemon.warn pppd[7764]: Connected to 00:00:5e:00:01:01 via interface vth1
May  8 22:22:09 DreamBox daemon.info pppd[7764]: Using interface pppoe-wan1
May  8 22:22:09 DreamBox daemon.notice pppd[7764]: Connect: pppoe-wan1 <--> vth1
May  8 22:22:10 DreamBox daemon.warn dnsmasq-dhcp[2369]: DHCP packet received on eth0.2 which has no address
May  8 22:22:10 DreamBox daemon.warn dnsmasq-dhcp[2369]: DHCP packet received on eth0.2 which has no address
May  8 22:22:13 DreamBox daemon.info pppd[7764]: Remote message: 5
May  8 22:22:13 DreamBox daemon.err pppd[7764]: PAP authentication failed
May  8 22:22:19 DreamBox daemon.notice pppd[7764]: Connection terminated.
May  8 22:22:20 DreamBox daemon.notice pppd[7764]: Modem hangup
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-26 03:25

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

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