- 论坛徽章:
- 0
|
原文:
http://zxdz.8800.org/htmldata/1/ ... %C5%B1%BE250_1.html
FreeBSD6.1下 PPPOE掉线自动重拨的脚本
日期:2006-10-04 点击:7 作者:余振中 来源:[zxdz.8800.org]
不管是 Linux 或是 BSD 下所使用的 PPPoE 拨号程式,在遇到很多奇怪的断线情况后不能自动重拨,所以写了这/etc/ppp/ppp.sh 这个脚本。基本方法是:在cron中每隔5分钟运行一次,测试本站域名和163.com是否连通,若都不通说明PPPOE网络掉线,就调用(FB6.1)系统/etc/rc.d/ppp 程序停止、重启PPPOE拨号服务。其他脚本是和该脚本配合的,必须根据自己的实际进行相应的修改。另外要注意的是ppp.conf、ppp.linkup两个文件必须注意书写格式!否则不能正常运行相应的指令。
-------------------------/etc/ppp/ppp.sh-------------------------
#!/bin/sh
checkonline1=`/usr/local/sbin/fping zxdz.6600.org` #用fping命令测试我的网站
checkonline2=`/usr/local/sbin/fping 220.181.28.42` #用fping命令测试163.com网站
if [ "$checkonline1" = "zxdz.6600.org is alive" ] ; then
#echo "$checkonline1"
#echo "The ADSL is connected"
exit
else
if [ "$checkonline2" = "220.181.28.42 is alive" ] ; then
echo "$checkonline2"
echo "The ADSL is connected"
exit
else
echo "$checkonline1"
echo "$checkonline2"
echo "The ADSL is disconnected"
/etc/rc.d/ppp stop #FB6.1 使用,调用系统PPP脚本停止ppp拨号服务。
#/usr/bin/killall ppp #FB6.0版以前使用
sleep 10 #等10秒种
#/usr/sbin/ppp -ddial -unit 0 -nat gykj #FB6.0版以前使用
/etc/rc.d/ppp start #FB6.1 使用,调用系统PPP脚本重新开始ppp拨号服务。
fi
fi
---------------------/etc/ppp/ppp.conf--------------------------
# $FreeBSD: src/etc/ppp/ppp.conf,v 1.10 2004/11/19 17:12:56 obrien Exp $
###############################################
default: #注意格式,顶格,前面没空格
set device PPPoE:sis0 #指定进行pppoe连接的网卡,前面有一个空格,下同
set log Phase tun command
set ifaddr 10.0.0.1/0 10.0.0.2/0
enable lqr
gykj: #指定的pppoe名,顶格,前面没空格
set mru 1492 #前面有一个空格,下同
set mtu 1492
set cd 10!
set redial 15 100
set reconnect 15 100
set authname 用户名 #拨号用户名
set authkey 密码 #拨号密码
set dial
set login
enable dns
add default HISADDR # Add a (sticky) default route
-------------------/etc/rc.conf和PPP 相关行-----------------------
ppp_enable="YES" //允许启动时进行PPP拨号
ppp_mode="ddial" //断线自动重拨
ppp_nat="YES" //打开nat功能
ppp_profile="gykj" //前面在/etc/ppp/ppp.conf中定义的pppoe名
-----------------------/etc/crontab 相关行-----------------------
*/5 * * * * root /etc/ppp/ppp.sh
该行指定每5分钟运行一次/etc/ppp/ppp.sh,检查是否吊线,如掉线就重拨。
------------------------/etc/ppp/ppp.linkup----------------------
gykj: #注意格式,该行顶格,前面不能有空格
iface clear #该行前面必须且只有一个空格,下同
!bg /etc/ppp/dyndns.sh #PPPOE拨号完成后调用/etc/ppp/dyndns.sh动态DNS脚本
etc/ppp/ppp.linkup文件中存放有ppp拨号成功后要继续执行的指令。这里的dyndns.sh是我的动态DNS脚本,当系统PPP拨号成功后,将新的IP地址通知给动态DNS服务器,拨号后即便本机IP地址发生变化,也能将zxdz.6600.org的域名正确解析到本机。 |
|