参考:
http://blog.csdn.net/zhangwenjianqin/article/details/7655375
http://blog.sina.com.cn/s/blog_80435476010146n8.html
http://blog.csdn.net/liangyamin/article/details/7092358
http://www.sudu.cn/info/html/edu/20070102/290442.html
http://blog.csdn.net/babyfans/article/details/5978882
http://www.php100.com/html/webkaifa/Linux/2008/0418/2524.html
http://www.360doc.com/content/11/1212/13/1317564_171672507.shtml
http://www.360doc.com/content/11/1129/08/1317564_168265809.shtml
http://www.cnblogs.com/cutepig/archive/2007/10/03/913383.html
安装软件:
sudo apt-get install pppoe pppoeconf pppstatus
/etc/ppp/pap-secrets配置如下:
#client server secret IP address
"usr" * "123" *
/etc/ppp/chap-secrets的配置和pap-secrets一样
/etc/ppp/pppoe-server-options配置如下:
#auth #注释掉这三行使用任意帐号就可以登录
#require-pap
#require-chap
login
lcp-echo-interval 30
lcp-echo-failure 4
ms-dns 202.118.224.101
然后运行:
modprobe pppoe
pppoe-server -I eth1 -N 200 -L 192.168.0.1 -R 192.168.0.100
I:指定响应PPPOE请求的端口,现在使用的eth0,也就是内网的
L:PPPOE服务器的IP地址,客户端连接可以看到的服务器地址
R:这是分配给客户端的地址池起始地址,本例中从192.168.1.2开始
N:地址池的IP地址递增几个,本例中添增10,也就是从192.168.1.2开始分配,一 共
分 配20个IP地址
到现在这个pppoe服务器就可以工作了。
测试:
pppoe-setup usr 123
pppoe-start
需要注意:
客户端要跟服务器在一个网段。
iptables设置:
打开ip转发和NAT功能
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -F
iptables -t nat -L
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 219.217.235.73
#iptables -t nat -A POSTROUTING -o eth0 -j SNAT -s 192.168.0.0/24 --to 219.217.235.73
pppoe-server -I eth1 -r -u
用xp连接就可以了
注意:
为了防止局域网内用户设置ip和eth1一致,从而达到间接上网的目的,必须将eth1的ip设置为空!
我猜测
用NAT上网时,客户设置好ip和网关为eth1后,发给服务器的连接会被iptables识别并路由过去。
用pppoe设置好后,客户如果没有建立pppoe连接,发给服务器的数据报会被过虑到,iptables识别不了。
而建立连接后,iptables识别就能识别出他来了。
具体是怎么实现的有待研究。