今天忙乎了一上午,终于解决了一个一直困扰着我的问题,如何在Linux下连接上寝室提供的PPPoE连接。

1.1  服务器软件安装

安裝PPPoE Server 所需的软件:

  • 安装ppp模块:

sudo apt-get install ppp   //一般默认下已安装

  • 安装rp-pppoe,从网络上下载安装包后拷贝到任意路径下,本文使用rp-pppoe-3.11版本:

sudo tar zxvf rp-pppoe-3.11.tar.gz      
//解压安装文件到当前路径,解压后ls可以看到当前路径下多出了一个rp-pppoe-3.11的文件夹

sudo chown -R root:root rp-pppoe-3.11              //改变文件属性

  • 安裝软件开发函数库:

sudo apt-get install libc6-dev

  • 生成需要的pppoe server程序

 图片 1

进入设置项页面后,这基本上不需要设置什么,直接回车,到防火墙选择项时选择0(即不需要防火墙):

 图片 2

到此软件安装完成。

  事情是这样的:

1.2  配置

进入配置文件路径 :

 图片 3

  • 配置option文件,编辑修改如下(基本取消红色项的注释符就可以了):

——————/etc/ppp/options—————————–

ms-dns 202.106.0.20  //设置DNS

ms-dns 5.5.5.5

asyncmap 0

noauth

crtscts

local

lock

hide-password

modem

-pap        //禁用pap认证方式

+chap      //启用chap认证方式

proxyarp

lcp-echo-interval 30

lcp-echo-failure 4

noipx


  • 配置pppoe-server-option文件,编辑修改如下:

——————/etc/ppp/pppoe-server-option—————————–

# PPP options for the PPPoE server

# LIC: GPL

auth

require-chap

default-mru

default-asyncmap

lcp-echo-interval 10

lcp-echo-failure 2

ms-dns 202.106.0.20

ms-dns 5.5.5.5

noipdefault

noipx

nodefaultroute

proxyarp

noktune


 图片 4

  • 添加用户,编辑chap-secrets文件增加用户名密码:

—————/etc/ppp/chap-secrets——————

# Secrets for authentication using CHAP

# client        server  secret                  IP addresses

test-pppoe      *       123456                  *


//*表示不指定服务器和IP地址

 图片 5

  我们寝室的连接是使用PPPoE或VPN连接,网络供应商建议使用PPPoE连接,因为其更为稳定。在Windows下是没有任何问题的,开始-控制面板-网络连接-添加一个新连接……就可以解决,在Windows
VISTA上也已解决了。但是在Linux如何连接呢?

1.3  启动和关闭服务器

执行如下命令可以启动pppoe server:

pppoe-server -I eth0 -L 55.55.55.1 -R 55.55.55.55 -N 100

  • 命令说明如下(也可以使用man pppoe-server查看更详细的内容):

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

-L 55.55.55.1            
指定pppoe服务器的ip地址。(注意:此IP地址不是网卡的IP地址,而是PPPOE服务器的虚拟IP,地址可以任意)

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

-N 100        指定最多可以连接pppoe服务器的客户端数量(默认是64
最大是65534)

可以查看进程检查服务器是否已启动:

 图片 6

执行killall pppoe-server命令可以关闭所有pppoe服务器进程:

 图片 7

  下载了一个rp-pppoe (在
Fedora core
9上直接使用yum便可以安装),运行pppoe-setup之后便可以进行设置:用户名,密码,DSN服务器(自动获得)等等。但是键入pppoe-connect是连接不上的。一直显示接受不到PADO包。以前没有耐心看PPPoE协议,所以一直没有解决,看来今天早上得下个决心,无论如何也要接入Intenet!

1.4  启用服务器数据转发

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

  • 修改sysctl.conf文件启用forward:

# vi /etc/sysctl.conf

 图片 8

执行命令sysctl –p让修改生效:

 图片 9

  • 使用iptables规则

iptables -A INPUT -i eth0 -s 55.55.55.0/24 -j DROP

iptables -t nat -A POSTROUTING -s 55.55.55.0/24  -j SNAT –to-source
192.168.10.99  //192.168.10.99为服务器上实际网络出口的地址

发表评论

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

网站地图xml地图