ubuntu server 之拨号软件ADSL(rp-pppoe 工具)

以ubuntu16.04为例

下载官方包

https://dianne.skoll.ca/projects/rp-pppoe/

目前下载这样

https://dianne.skoll.ca/projects/rp-pppoe/download/rp-pppoe-3.15.tar.gz

先把网卡配置成DHCP

netconfig

解压

tar -zxf rp-pppoe-3.15.tar.gz

cd rp-pppoe-3.15

运行脚本 go:

./go

自动进行编译和安装

调用 /usr/sbin/adsl-setup 进行设置

Enter your PPPoE user name :
输入ADSL帐号

Enter the Ethernet interface connected to the ADSL modem
For Solaris, this is likely to be something like /dev/hme0.
For Linux, it will be ethn, where ’n’ is a number.
(default eth0):
输入eth0 ,网卡的名字

Enter the demand values (default no):
输入 no

Enter the DNS inFORMation here:
输入DNS服务器 IP 地址

Please enter your PPPoE password:
输入ADSL密码

Choose a type of firewall (0-2):
输入 0 或 1

Accept these settings and adjust configuration files (y/n)?
输入 y

拨号上网
pppoe-start

成功出现 Connected;

pppoe-stop 断开和ISP的连接

pppoe-status 查看当前连接的状态

拨号脚本示例



#! /bin/sh
PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
Log=/var/log/pppoe.log
sed -i '/^gateway/d' /etc/network/interfaces
sed -i '/^dns-nameservers/d' /etc/network/interfaces

echo "del ifcfg-eth0 Gateway  ...... Success" >  $Log
echo "del ifcfg-eth0 DNS     ...... Success" >>  $Log


ppp_user=$1
password=$2

[ -z "$ppp_user" ]&&{
echo "没有指定拨号账号..."
echo "示例: $0 user password ethx"
exit 0
}

[ -z "$password" ]&&{
echo "没有指定拨号密码..."
echo "示例: $0 user password ethx"
exit 0
}

echo "请等待,正在进行配置..."

ppps=`ps -ef|grep ppp0|grep -v "grep"|wc -l`
if [ $ppps -gt 0 ];then
    ifdown ppp0;
fi
sed -i '7d' /etc/ppp/pppoe.conf
sed "7 iUSER=$1" -i /etc/ppp/pppoe.conf


line1=`cat /etc/ppp/chap-secrets|grep "*"|wc -l`

if [ $line1 -lt 1 ];then
    echo "\"$ppp_user\"    *    \"$password\"" >  /etc/ppp/chap-secrets
else
    user=`cat /etc/ppp/chap-secrets|grep "*"|awk '{print$1}'`
    passwd=`cat /etc/ppp/chap-secrets|grep "*"|awk '{print$3}'`
    sed -i "s/$user/\"$ppp_user\"/g" /etc/ppp/chap-secrets
    sed -i "s/$passwd/\"$password\"/g" /etc/ppp/chap-secrets
fi

line2=`cat /etc/ppp/pap-secrets|grep "*"|wc -l`

if [ $line1 -lt 1 ];then
        echo "\"$ppp_user\"     *       \"$password\"" >> /etc/ppp/pap-secrets
else
        user=`cat /etc/ppp/pap-secrets|grep "*"|awk '{print$1}'`
        passwd=`cat /etc/ppp/pap-secrets|grep "*"|awk '{print$3}'`
        sed -i "s/$user/\"$ppp_user\"/g" /etc/ppp/pap-secrets
        sed -i "s/$passwd/\"$password\"/g" /etc/ppp/pap-secrets
fi


ck=`cat /sbin/ifup|grep "routeok"|wc -l`

if [ $ck -lt 1 ];then
        sed -i "s/exec \${OTHERSCRIPT} \${CONFIG} \$2//g" /sbin/ifup

        echo "#route" >> /sbin/ifup
        echo "{" >> /sbin/ifup
        echo "sleep 10" >> /sbin/ifup
        echo "route_ip=\`/sbin/pppoe-status|grep \"inet\"|awk '{print\$4}'|awk -F\/ '{print\$1}'\`" >> /sbin/ifup
        echo "len=\`echo \$route_ip|wc -c\`" >> /sbin/ifup
        echo "if [ \$len -gt 10 ];then" >> /sbin/ifup
        echo "        route add default gw \$route_ip dev ppp0" >> /sbin/ifup
        echo "fi" >> /sbin/ifup
        echo "}&" >> /sbin/ifup
        echo "" >> /sbin/ifup
        echo "exec \${OTHERSCRIPT} \${CONFIG} \$2" >> /sbin/ifup
        echo "" >> /sbin/ifup
        echo "#routeok" >> /sbin/ifup
fi

ifdown eth0
ifup eth0

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注