文档库 最新最全的文档下载
当前位置:文档库 › TOMATO突破ISP双拨限制,成功自动双拨

TOMATO突破ISP双拨限制,成功自动双拨

TOMATO突破ISP双拨限制,成功自动双拨
我先说我这边ISP的情况:
联通FTTB+LAN入户,刚安装的时候同一个帐户是可以多拨的,我一直用自己的帐户实现双拨,效果很好,忽一日,联通限制帐号多拨了,于是搞到了别人的联通帐号,虽然都可以和我自己的账号一起实现2WAN,但是我这边拨号了,别人就不能用了,于是继续琢磨用我自己的帐号多拨。
经过多次试验,发现以下现象:
1:WAN1用我自己的帐号,WAN2用别人的帐号:插上500U的电源,两个WAN都可以拨号,但查看系统状态中的“已连接时间”两个WAN口的时间一般会相差几秒钟。
2:两个WAN都用我自己的帐号:插上500U的电源,只能有一个WAN成功,另一个一直都在拨号中,查看日志,错误信息是Authentication failed,也就是认证错误,明显是ISP限制多拨了。但是在基本设置-网络设置中按一下“保存设置”按钮,此时tomato会重新拨号,而且此时WAN1和WAN2最有可能同时(一秒都不差)拨号,两个WAN都可以成功。拨号成功后,可以在系统状态中的“已连接时间”两个WAN口的已连接时间是一样的。
结论:如果ISP限制了帐号多拨,那么如果你能保证两个WAN口能在同一时间(一秒不差)并发拨号,那么你就可以突破ISP的限制。(我估计是ISP的认证服务器会认为是一个请求吧)。

要按说,拨号成功后,就可以使用了,但杯具的是,我这边联通24小时会断线,让你重拨一次,不管是我让路由器24小时断线自动重拨,还是在定时任务中设置每天的几点定时重连,或是在telnet里命令service wan restart,都不能保证两个WAN口会一秒不差的同时拨号。

再次多次试验,当在基本设置--网络设置里面,不做任何改变,直接按“保存设置”,最有可能两个WAN能同时拨号,并成功拨上去。
在群里询问了ZD,在基本设置--网络设置里面,不做任何改变,按“保存设置”相当于什么命令,ZD告诉我相当于kill -SIGHUP 1
于是我在TELNET里试了kill -SIGHUP 1命令,真的可以成功双拨,而且成功率近乎100%。

现在的问题就是解决联通24小时踢我IP下线的问题了。
于是再次请教ZD,想实现每24小时自动kill -SIGHUP 1或是重启,并且通过脚本,让路由器自己检测是否成功双拨,如果双拨就不管他,如果没有成功则自动执行kill -SIGHUP 1

ZD给了我一个脚本,放在“脚本设置”-“初始化”里面:
#!/bin/sh
#1分钟后开始检测WAN1, WAN2
sleep 60
WAN1_IF=$(nvram get wan_iface)
WAN2_IF=$(nvram get wan2_iface)
if [ "$WAN1_IF" == "" ] || [ "$WAN2_IF" == "" ]; then
echo "2WAN fail"
kill -SIGHUP 1
else
echo "2WAN ok"
fi
复制代码
这样我就可以设置路由器每天夜里4点自动重启,而每次重启后他就会

自己执行以上脚本,并自动判断是否双拨成功。
其实,因为kill -SIGHUP 1的成功率已经很高,可以设置为每天夜里4点自动执行kill -SIGHUP 1就可以了,但是我觉得这个脚本也很有意义,因为这样可以保证每次reboot后都可以双拨,以应对平时的非正常断电之类的情况。
特发帖感谢ZD及群里朋友们的帮助,并分享给大家,希望对大家有帮助。










#!/bin/sh
#1分钟后开始检测WAN1, WAN2
sleep 60
WAN1_IF=$(nvram get wan_iface)
WAN2_IF=$(nvram get wan2_iface)
if [ "$WAN1_IF" == "" ] || [ "$WAN2_IF" == "" ]; then
echo "2WAN fail"
kill -SIGHUP 1
else
echo "2WAN ok"
fi

相关文档