如何用Ubuntu本地搭建pppoe服务器?

2020/11/26 17:56:00

配置环境:ubuntu,两张网卡eth0(连接外网,192.168.10.2)、eth1(ppoe服务器,192.168.8.2)

20181129152318_5358.jpg


1、安装pppoe服务软件

1)#sudo apt-get install ppp

2)#sudo apt-get install libc6-dev

3)#wget -c  http://www.roaringpenguin.com/files/download/rp-pppoe-3.11.tar.gz

  #sudo tar zxvf rp-pppoe-3.11.tar.gz -C /opt/

  #sudo /opt/rp-pppoe-3.11/go(配置网卡选择eth1、防火墙选0)



2、配置服务


2.1、设置验证信息

vim /etc/ppp/pppoe-server-options

#使用chap验证协议,如果使用pap验证协议,则此行为 require-pap

require-chap

以下为具体配置内容:

----------------------/etc/ppp/pppoe-server-options-------------------

# PPP options for the PPPoE server

# LIC: GPL

require-chap

auth

#login

lcp-echo-interval 10

lcp-echo-failure 2

ms-dns 192.168.10.1

------------------------------------------------------------------------------



#vim /etc/ppp/options

#(设置验证方式)

-pap

+chap

#(允许本地验证)

local

这里:

(1)、如果使用pap验证方式,windowsxp以上系统自带的pppoe拨号,无法拨通。可能原因是pap使用明文密码验证,而windows保存的密码是加密的,而且是不可恢复的加密,所以windows无法提供密码明文。

(2)、/etc/ppp/pppoe-server-options和/etc/ppp/options,配置无论写在哪个文件中,都能够起到作用

以下为具体配置内容:

------------------/etc/ppp/options-----------------------------

ms-dns 192.168.10.1

asyncmap 0

noauth

crtscts

local

lock

hide-password

modem

-pap

+chap

proxyarp

lcp-echo-interval 30

lcp-echo-failure 4

noipx

-------------------------------------------------------------------



2.2、添加用户信息


#vim /etc/ppp/chap-secrets

#添加用户名和密码

#最后的* 不能少(系统安装时,少了一个*)

# client  server  secret    IP addresses

myuser    *        mypassword           *



3、 启用forward:


$sudo -i

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

注意: 这条命令一定要用root身份执行,sudo都没用,否则会提示权限不够。

     如果不启用forward, client即使拿到IP, traffic也不能出去,只能到server而已。

 

或者这样改

修改/etc/sysctl.conf文件:net.ipv4.ip_forward = 1 启用转发功能

 

执行如下命令,让配置即时生效

#sysctl -p



4、利用pppoe链接共享上网


首先,给pppoe服务添加默认网关使之能访问外网(如果跟以下内容相符,可以不改):

#route add default gw 192.168.10.1 dev eth0

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

default         192.168.10.1     0.0.0.0         UG    0      0        0 eth0

......

然后,转发pppoe上的数据到外网上:

#iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -o eth0 -j MASQUERADE

至此,可以用板子链接上外网了。



5、启动和关闭PPPOE服务


5.1、启动pppoe服务

#pppoe-server -I eth1 -L 192.168.8.1 -R 192.168.8.10 -N 20

-I eth1 指定pppoe服务器在哪个网卡接口监听连接请求

-L 192.168.8.1 指定pppoe服务器的ip地址。(注意:此IP地址不是网卡的IP地址,而是PPPOE服务器的虚拟IP,和网卡eth1的地址无关,实际网卡eth1没有IP也可以)

-R 192.168.8.10 pppoe服务器分配给客户端的IP地址,从192.168.8.10开始,递增。

-N 20 指定最多可以连接pppoe服务器的客户端数量


5.2、关闭PPPOE服务器

#killall pppoe-server