以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