您的位置:首页 > 运维架构 > Linux

CentOS 7 离线拨号(PPPOE)

2017-12-01 18:50 507 查看

CentOS 7 离线拨号(PPPOE)

逛了一圈,就是没有找到离线拨号的教程,我就很好奇,如果电脑有网,那还要拨什么号。无奈下就自己想着下载好拨号工具再安装的方案,然后测试就成功了,故在这记录下安装过程,防以后再用到。

教程使用的 CentOS 版本为 CentOS 7.4 mini,其它版本请自行做相应修改。

1.准备所有的安装包

由于我们要在没有网的CentOS里面安装拨号工具,所以要提前下载好安装包。

拨号工具 打包(拨号工具及其依赖):

CentOS 7.4 版:http://download.csdn.net/download/kxwinxp/10141260

CentOS 6.9 版:http://download.csdn.net/download/kxwinxp/10141264

1.1)下载拨号工具及其依赖

打开 rpm 包下载网址:http://rpm.pbone.net

设置高级搜索,选择 CentOS 7 的包



分别搜索如下包(自行选择对应版本),并下载下来

libpcap-1.5.3-9.el7.x86_64.rpm

ppp-2.4.5-33.el7.x86_64.rpm

net-tools-2.0-0.22.20131004git.el7.x86_64.rpm

rp-pppoe-3.11-7.el7.x86_64.rpm

自行把下载好的安装包拷贝到U盘!

2.挂载U盘,拷贝rpm安装包到CentOS

// 加载USB模块
modprobe usb-storage

// 查看U盘设备
fdisk -l

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    41943039    19921920   8e  Linux LVM
/dev/sdb4            2048    14039    2015920   8e  FAT32
// 这里假设U盘是sdb4

// 建立要挂载的目录
mkdir -p /mnt/usbdisk
// 挂载U盘
mount /dev/sdb4 /mnt/usbdisk


// 卸载U盘
umount /mnt/usb


3.安装拨号工具及其依赖

// 进入安装包目录
cd /mnt/usbdisk/rp-pppoe
// 安装
rpm -ivh libpcap-1.5.3-9.el7.x86_64.rpm ppp-2.4.5-33.el7.x86_64.rpm net-tools-2.0-0.22.20131004git.el7.x86_64.rpm rp-pppoe-3.11-7.el7.x86_64.rpm


4.配置pppoe拨号

// 查看当前以太网卡代号
ip address

enp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
ether 20:1b:06:3d:22:05  txqueuelen 1000  (Ethernet)

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
inet 127.0.0.1  netmask 255.0.0.0

// 那么我这的以太网卡代号就是 enp1s0 (等下要用到)

// 开始设置
pppoe-setup

// 输入ISP提供的账户(拨号账号)
Enter your Login Name (default root):sz20012231@163.gd

// 输入以太网卡代号,根据刚刚查到的(enp1s0)
(default eth0):enp1s0

// 配置:若长时间连线,连线会被自动中断(否 no)
Enter the demand value (default no): no

// 配置主DNS服务器(8.8.8.8)
Enter the DNS information here:8.8.8.8

// 配置次DNS服务器(8.8.4.4)
Enter the secondary DNS server address here:8.8.4.4

// 两次输入账户密码以确认(拨号密码)
Please enter your Password:
Please re-enter your Password:

// 配置普通账户是否有网络连接权限(允许 yes)
normal user to start or stop DSL connection (default yes):yes

// 配置防火墙(无限制 0)
Choose a type of firewall (0-2): 0

// 配置是否开机自动拨号连接(开启 yes)
Please enter no or yes (default no):yes

// 确认刚填写的配置信息(确认 y)
Accept these settings and adjust configuration files (y/n)? y

// 开启拨号网络
ifup ppp0


5.自动配置pppoe脚本

如果你觉得一步步输入确认很麻烦,那么,这个自动配置代码将很有用。

// 请保存为ppp_auto.sh
#!/bin/bash

ppp_user=$1
password=$2
eth=$3

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

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

[ -z "$eth" ]&&{
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

if [ -d "/etc/sysconfig/network-scripts/ifcfg-ppp0" ];then
echo "" > /etc/sysconfig/network-scripts/ifcfg-ppp0
else
touch /etc/sysconfig/network-scripts/ifcfg-ppp0
fi

echo "USERCTL=yes" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "BOOTPROTO=dialup" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "NAME=DSLppp0" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "DEVICE=ppp0" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "TYPE=xDSL" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "ONBOOT=yes" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "PIDFILE=/var/run/pppoe-adsl.pid" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "FIREWALL=NONE" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "PING=." >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "PPPOE_TIMEOUT=80" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "LCP_FAILURE=3" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "LCP_INTERVAL=20" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "CLAMPMSS=1412" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "CONNECT_POLL=6" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "CONNECT_TIMEOUT=60" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "DEFROUTE=yes" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "SYNCHRONOUS=no" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "ETH=$eth" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "PROVIDER=DSLppp0" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "USER=$ppp_user" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "PEERDNS=no" >> /etc/sysconfig/network-scripts/ifcfg-ppp0
echo "DEMAND=no" >> /etc/sysconfig/network-scripts/ifcfg-ppp0

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

ifup ppp0
if [ $? -eq 0 ];then
echo "ifup ok"
else
echo "配置失败,请重新配置,比如重新选择网卡或者确认账号密码?"
fi


执行:
./ppp_auto.sh sz20012231@163.gd 123456 enp1s0
即可自动配置

第一个参数是账号,第二个是密码,第三个是以太网卡代号
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息