如何用Ubuntu本地搭建pppoe服务器?
配置环境:ubuntu,两张网卡eth0(连接外网,192.168.10.2)、eth1(ppoe服务器,192.168.8.2)
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