PPPoE Server 服务搭建说明

PPPoE Server 搭建

安装PPPoE

sudo apt-get install ppp

https://www.roaringpenguin.com/products/pppoe/下载最新版本的rp-pppoe程序,我下的是3.12版本的。解压到/opt目录下,然后

sudo chown -R root:root rp-pppoe-3.12

cd rp-pppoe-3.12

sudo ./configure

sudo make

sudo make install

sudo apt-get install libc6-dev

配置

修改 /etc/ppp/options

ms-dns 8.8.8.8    
ms-dns 8.8.4.4  
-pap  
+chap  

其中ms-dns指的是dns服务器的地址,填实际的dns地址
-pap去除pap,因为pap是明文,Windows不支持
+chap,使用chap的方式

PAP是简单二次握手身份验证协议,用户名和密码明文传送,安全性低.PAP全称为:Password Authentication Protocol CHAP是一种挑战响应式协议,三次握手身份验证,口令信息加密传送,安全性高.

添加用户 修改/etc/ppp/chap-secrets

# Secrets for authentication using CHAP
# client    server  secret          IP addresses

"fan"   *   "12345678"  *

添加用户,例如这里添加测试账户名fan,密码12345678

修改/etc/ppp/pppoe-server-options

auth
require-chap
logfile /var/log/pppd.log

删除require-pap,改为require-chap
/var/log/pppd.log中放的是log信息

启动和关闭服务器

sudo pppoe-server -I eth0 -L 192.168.5.1 -R 192.168.5.5 -N 10

意思就是,获得pppoe地址信息如下

-I eth0 指定pppoe服务器在那个网卡接口监听连接请求(我们在虚拟机中设置的eth0为有线网卡);
-L 192.168.5.1 指定pppoe服务器的ip地址。(注意:此IP地址不是网卡的IP地址,而是PPPOE服务器的虚拟IP)(此地址可以任意);
-R 192.168.5.5 pppoe服务器分配给客户端的IP地址,从192.168.5.5开始,递增;
-N 10 指定最多可以连接pppoe服务器的客户端数量(默认是64 最大是65534);

启动服务器转发数据

通过前面的配置,pppoe拨号客户端应该已经可以正常拨号并获取地址,但是如果不启用服务器的数据转发,client即使拿到IP地址,流量也只能到达server而无法转发出去,可通过以下步骤启用服务器的数据转发。

在虚拟机中使用iptabes进行端口转发规则定义

丢弃在eth0上的pppoe数据(这一步我没做也是可以的)

sudo iptables-A INPUT -i eth0 -s 192.168.5.0/24 -j DROP

转发pppoe上的数据到可以联网的wlan0无线网卡上:

sudo iptables -t nat -A POSTROUTING -s192.168.5.0/24 -o wlan0 -j MASQUERADE

保存路由规则

sudo iptables-save  

重启iptables服务(这里需要注意的是ubuntu没有将iptables注册为服务,所以serviceiptables restart stop 等命令使用不了)

sudo modprobe ip_tables  

开启ip转发功能

使用超级用户的身份,注意,必需是超级用户身份,sudo都没有这个权限,执行:

echo "1">/proc/sys/net/ipv4/ip_forward

如果单单是执行这个命令,只会暂时开启IP转发功能。重启后会自动关闭。如果想一直打开,则应该编辑 /etc/sysctl.conf 文件,取消 net.ipv4.ip_forward=1 的注释,再执行 sudo sysctl -p 就可以永久打开IP转发功能了。

查看服务是否起来

启动pppoe-server之后,查看该服务是否起来了

ps -aux

关闭PPPOE服务器

killall pppoe-server

或者sudo kill 进程ID

测试

用虚拟机搭建的PPPoE服务器,可以用PC机进行拨号连接,也可以用路由器进行拨号连接,我都试过,都是可以的。

image

遇到的问题说明

1、 虚拟机和电脑的连接方式应选择桥接模式,这样才可以暴露出虚拟机的PPPoE服务给盒子终端。

image

2、 Windows拨号连接显示错误651

说明拨号就不成功了。

可能的原因是没有正确打开服务器。

因此,可能是在 pppoe-server 打开时没有指定到正确的网卡。也可能是使用虚拟机上网时没有设置好上网模式,如果没有使用桥接模式上网而是使用了NAT模式,则也可能遇到此问题。

同时,如果没有pppoe-server-options 文件或者该文件没有 auth 和 require-chap 选项设置的话,也会出现这个问题。

同时,该问题也可能是因为在Windows拨号连接时在属性中指定了一个服务器,和linux下开启的PPPoE Server名称不同造成的。

pppoe-server中,-S参数用于指定服务器名称。

3、 拨号成功,但是网页打不开报DNS_PROBE_FINISHED_NO_INTERNET

需要启动服务器转发数据

发表评论

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.