Ubuntu上架设PPPoE Server--转

本文提供了一步一步的指南来安装、配置并测试Ubuntu上的PPPoE服务器,包括安装软件、配置选项、添加用户、启用转发、启动服务及测试连接等关键步骤。

 

一。安裝 PPPoE Server Software

1)sudo apt-get install ppp
2)rp-pppoe(非apt套件)
wget -c  http://www.roaringpenguin.com/files/download/rp-pppoe-3.10.tar.gz
sudo tar zxvf rp-pppoe-3.6.tar.gz -C /opt/
sudo chown -R root:root /opt/rp-pppoe-3.6/
3) 安裝軟體開發函示庫:
sudo apt-get install libc6-dev
4) 產生需要的pppoe server程式
sudo /opt/rp-pppoe-3.6/go
 
二。配置:
allan @allan-desktop:~#sudo vim /etc/ppp/options
#######
ms-dns 4.2.2.2
ms-dns 172.25.5.1
-pap
+chap
.......
#######
具体的不详述,根据文件的描述加上自己的sense配就是。
 
三。添加用户:
allan @allan-desktop:~#sudo vim /etc/ppp/chap-secrets
##############################
# Secrets for authentication using CHAP
# client server secret   IP addresses
ting  *         "tingwang"       *    
##############################
 
四。启用forward:
root@allan-desktop:~# echo "1">/proc/sys/net/ipv4/ip_forward
Note: 这条命令一定要用root身份执行,sudo都没用,否则会提示Operation not permitted。
         如果不启用forward, client即使拿到IP, traffic也不能出去,只能到server而已。
 
Ubuntu root登陆技巧:只要用sudo passwd root给root设置密码,就可以以root身份登陆了。
 
五。启动PPPoE Server:
allan @allan-desktop:~# sudo pppoe-server -I eth1 -L 172.25.27.125 -R 172.25.27.181 -N 10
 
六。测试
在xp上破号,用户名ting, 密码tingwang. 拿到181的IP,并能上网。 Oh, yeah!



1、检查系统是否已安装PPPOE服务器
rpm -q rp-pppoe
如果未安装,可以到  www.roaringpenguin.com/pppoe/ 下载

2、配置系统以支持IP转发
修改/etc/sysctl.conf文件:net.ipv4.ip_forward = 1

3、修改PPPOE身份验证方式
修改/etc/ppp/pppoe-server-options,全部内容如下:
require-chap #使用chap验证协议,如果使用pap验证协议,则此行为 require-pap
login
lcp-echo-interval 10
lcp-echo-failure 2
ms-dns 202.96.134.133 #分配给客户端的DNS
ms-dns 202.96.128.68

4、添加身份验证账户
修改/etc/ppp/chap-secrets,添加账户 #如果使用pap验证,则修改/etc/ppp/pap-secrets
username * password *

5、启动pppoe服务器
pppoe-server -I eth0 -L 192.168.0.1 -R 192.168.0.5 -N 10
-I eth0 指定pppoe服务器在那个网卡接口监听连接请求
-L 192.168.0.1 指定pppoe服务器的ip地址。(注意:此IP地址不是网卡的IP地址,而是PPPOE服务器的虚拟IP)
-R 192.168.0.5 pppoe服务器分配给客户端的IP地址,从192.168.0.5开始,递增
-N 10 指定最多可以连接pppoe服务器的客户端数量

6、关闭PPPOE服务器
killall pppoe-server

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

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

编译安装

这篇文章是根据网上的文章作为参考,在根据自己的实验而得出的。

软件:pppoe-3.8.tar.gz

       Ppp-2.4.2.tar.gz2.4.3的版本以上与syslog冲突)(ppp.samba.org)

这只是做内部测试,并未提供使用,正式提供使用的话,必须要使用iptalbes开放pppoe

echo “1”>/proc/sys/net/ipv4/ip_forward

二、建立PPP服务器

在建立拨号服务器之前,应确保你在内核中打开了IP转发功能:

编译PPP服务器很容易,就是按以下几步就可以了:

tar xzvf Ppp-2.4.2.tar.gz

cd ppp-2.4.2

./configure(默认会在/usr/sbin

(如果你要修改执行文件的路径,还有配置文件的路径,就修改Makefiles.要想执行文件找到你指定配置文件的路径,必须要改源代码,在pppd的安装目录下,进入pppd目录,找到pathnames.h这个头文件,找到#define _PATH_* 修改后面的路径就行了)

Make

Make install

修改pppd的访问权限,允许由root启动服务进程

chmod u+s /usr/sbin/pppd

三、建立PPPOE服务器

cd /rp-pppoe-3.8/src

./configure

make

make install

启动PPPOE进程:

pppoe-server -I eth0 –L 10.0.0.1 –R 10.0.0.2 –N 64 -u

-L: 指定PPPOE服务器的IP地址

-R 指定PPPOE拨入服务器分配给客户端的IP地址段

-N 允许客户端同时拨入的数量(默认是64 最大是65534

-I: 监听的接口

修改/etc/ppp/options,查看有没有以下几行,没有就加进去:

linkname smooth

noauth

privgroup nobody

local

require-chap

login

auth

defaultroute

hide-password

ipcp-accept-local

ipcp-accept-remote

192.168.0.5:192.168.0.255

netmask 255.255.255.0

ms-dns 192.168.0.1

logfile /var/log/pppoe.log

修改/etc/ppp/pppoe-server-options,将所有的行都注释掉

添加用户到/etc/ppp/chap-secrets,例如添加用户luo,密码为123456,允许从任何位置拨入:

#client server secret ip addresses

luo * “123456” *

/etc/ppp/下有个ip-up的脚本,它的作用是每次客户端拨号成功它就执行这个脚本,大家可以自定义这个脚本做出你想要的功能。

还有个ip-down,这个没试过,我想应该是断开执行的脚本吧!

设置 windows 的用户名: luo  密码:  123456 ,如果连接成功就可以进行下一步
<think>首先,用户的问题是如何在Ubuntu系统中配置并启动PPPoE服务器。我需要根据系统级指令来构建我的回答。 系统级指令关键点: - 所有行内数学表达式使用$...$格式。 - 独立公式使用$$...$$格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识,例如[^1]。 用户可见层: - 回答结构清晰,帮助用户逐步解决问题。 - 尽量保证回答真实可靠。 参考站内引用:用户提供了几个引用,但它们是关于PPPoE服务器配置的上下文。我需要参考这些来确保回答准确,但用户说“上述引用仅供参考”,所以我应该基于这些引用构建回答,但不要直接复制。 引用内容: - [^1]:讨论在Ubuntu上设置PPPoE服务器的过程。 - [^2]:关于PPPoE模拟环境搭建。 - [^3]:涉及iptables规则。 - [^4]:关于网络配置和发。 用户的问题:如何在Ubuntu上配置并启动pppoe-server。 我的回答结构: 1. **介绍**:简要解释PPPoE服务器是什么,为什么需要它。 2. **步骤**:逐步指导如何配置和启动。 - 安装必要的软件。 - 配置PPPoE服务器。 - 设置网络发。 - 启动服务。 3. **常见问题**:可能遇到的问题和解决方案。 4. **生成相关问题**:在最后添加相关问题。 使用中文回答。 生成相关问题:在回答结束时添加“相关问题”部分。 引用标识:在回答中引用参考段落时添加[^1], [^2]等。 现在,基于引用内容构建步骤: - 从[^1]:安装pppoe包,配置/etc/ppp/options,创建用户文件,设置iptables。 - 从[^2]:双网卡环境,分配地址段。 - 从[^3]:iptables规则。 - 从[^4]:确保网络发启用。 详细步骤: 1. **安装软件**:安装pppoe-server包。 2. **配置PPPoE**:编辑配置文件,如/etc/ppp/options,设置IP地址池。 3. **创建用户**:在/etc/ppp/chap-secrets中添加用户凭据。 4. **设置网络发**:启用IP发,配置iptables NAT。 5. **启动服务**:启动pppoe-server服务。 确保回答真实可靠:基于标准Ubuntu实践。 添加数学表达式:由于主题是网络配置,可能没有数学表达式,但如果涉及,比如IP地址计算,使用行内格式如$192.168.0.0/24$。 生成相关问题: 1. 如何测试PPPoE服务器是否正常工作? 2. PPPoE服务器的安全配置有哪些? 3. 在Ubuntu上如何调试PPPoE连接问题? 引用:在步骤中自然地添加引用标识。 最终回答结构: - 开头:介绍。 - 步骤1:安装软件。 - 步骤2:配置PPPoE- 步骤3:设置用户。 - 步骤4:网络发和iptables。 - 步骤5:启动服务。 - 结尾:验证。 - 相关问题。</think>### 在Ubuntu系统中配置并启动PPPoE服务器 PPPoE(Point-to-Point Protocol over Ethernet)服务器允许设备通过以太网进行拨号上网,常用于模拟ISP环境或测试网络设备。在Ubuntu上配置PPPoE服务器需要安装特定软件包、配置网络参数、设置用户认证和启用IP发。以下是基于Ubuntu 20.04/22.04的详细步骤,确保操作前已连接双网卡(一张用于PPPoE服务器内网,一张用于外网访问互联网),并具有sudo权限[^1][^2]。 #### 步骤1: 安装PPPoE服务器软件 首先,更新软件包列表并安装`pppoe`包,它包含PPPoE服务器工具。 ```bash sudo apt update sudo apt install pppoe ``` 安装完成后,系统会自动创建必要的配置文件目录(如`/etc/ppp`)。 #### 步骤2: 配置PPPoE服务器选项 编辑PPPoE的主配置文件`/etc/ppp/options`,设置服务器参数。例如,定义IP地址池(如$192.168.0.0/24$)和认证方式。 ```bash sudo nano /etc/ppp/options ``` 在文件中添加以下内容(确保替换为您的网络参数): ``` # 基本配置 auth require-chap ms-dns 8.8.8.8 # 使用Google DNS,可替换 ms-dns 8.8.4.4 proxyarp # 定义IP地址池,例如192.168.0.100-200 ippool ubuntu-pool ``` - `auth`和`require-chap`强制使用CHAP认证。 - `ippool`指定IP地址池,需在`/etc/ppp/ip-up`中定义(见下一步)。 - 保存文件后退出(按`Ctrl+X`,然后`Y`)。 #### 步骤3: 定义IP地址池和用户认证 创建IP地址池文件,并添加用户凭据(用户名和密码)。 - **定义IP地址池**:编辑`/etc/ppp/ip-up`脚本(如果不存在则创建)。 ```bash sudo nano /etc/ppp/ip-up ``` 添加以下内容(例如,分配$192.168.0.100$到$192.168.0.200$): ```bash #!/bin/sh ippool ubuntu-pool 192.168.0.100 192.168.0.200 ``` 保存后,使脚本可执行: ```bash sudo chmod +x /etc/ppp/ip-up ``` - **添加用户认证**:编辑`/etc/ppp/chap-secrets`文件,添加允许拨号的用户。 ```bash sudo nano /etc/ppp/chap-secrets ``` 格式为`用户名 * 密码 *`,例如: ``` # 格式: <用户名> <服务器> <密码> <IP地址> user1 * password1 * user2 * password2 * ``` 保存文件。这确保客户端拨号时需提供正确凭据。 #### 步骤4: 设置网络发和iptables NAT PPPoE服务器需启用IP发和NAT,以允许客户端访问互联网。这涉及内核参数和iptables规则。 - **启用IP发**:编辑`/etc/sysctl.conf`。 ```bash sudo nano /etc/sysctl.conf ``` 取消注释或添加: ``` net.ipv4.ip_forward=1 ``` 应用更改: ```bash sudo sysctl -p ``` - **配置iptables NAT**:添加规则将客户端流量发到外网接口(例如,外网接口名为`eth0`)。使用命令[^3]: ```bash sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE ``` - `-s 192.168.0.0/24`匹配PPPoE分配的IP段。 - `-o eth0`指定外网接口。 保存规则以确保重启后生效: ```bash sudo apt install iptables-persistent sudo netfilter-persistent save ``` #### 步骤5: 启动PPPoE服务器 使用`pppoe-server`命令启动服务。指定服务器接口(例如,内网接口`eth1`)和选项文件。 ```bash sudo pppoe-server -I eth1 -L 192.168.0.1 -R 192.168.0.100 -N 10 ``` - `-I eth1`:PPPoE服务器监听的接口。 - `-L 192.168.0.1`:服务器IP地址(网关)。 - `-R 192.168.0.100`:起始客户端IP。 - `-N 10`:最大并发连接数。 - 若需后台运行,添加`-d`选项。 #### 步骤6: 验证和测试 - **检查服务状态**:使用`ps aux | grep pppoe-server`确认进程运行。 - **客户端测试**:在另一台设备上配置PPPoE客户端,使用添加的用户名和密码拨号。成功连接后,应能访问互联网。 - **日志查看**:PPPoE日志在`/var/log/syslog`,用`grep pppoe /var/log/syslog`调试问题。 #### 常见问题解决 - **连接失败**:检查`/etc/ppp/chap-secrets`格式是否正确,或iptables是否阻止流量(运行`sudo iptables -L`)。 - **无法访问互联网**:确保IP发已启用(`sysctl net.ipv4.ip_forward`输出1),并验证外网接口名称。 - **服务启动错误**:确认接口名称正确(使用`ip a`查看),且无端口冲突。 以上步骤基于Ubuntu标准实践,参考了PPPoE服务器配置的通用指南[^1][^2][^3]。确保在测试环境中操作,避免影响生产网络。 ### 相关问题 1. 如何测试PPPoE服务器的拨号连接和网络速度? 2. PPPoE服务器的安全配置有哪些(如防止未授权访问)? 3. 在Ubuntu上如何调试PPPoE客户端的常见连接问题? 4. PPPoE服务器与DHCP服务器有何区别? 5. 如何在Ubuntu上配置PPPoE服务器以实现多用户负载均衡? [^1]: For one reason or another, I needed to setup a PPPoE Server on my Ubuntu machine. Unfortunately almost all the guides found were talking about setting a PPPoE client connected to a PPPoE Server. So I spend a few days testing and trying out different configurations, until I finally found how to set it up from scratch. The below instructions will look similar to the guide I referenced, but there are some extra steps to ensure that your connection will be able to access Internet properly. Step #1: Topology Setup. [^2]: PPPOE 模拟环境搭建。这段时间,包括我自己测试OTT盒子 PPPOE的时候比较痛苦,要不就是在别人的位置上测试,要不就是借用PPPOE的设备,觉得还是自己搭建一个PPPOE真实拨号上网的环境多好!但是坑爹的win7找不到好用的pppoe服务软件,公共机器xp已经搭建好的PPPOE环境没有双网卡也验证不了拨号后网络共享是否OK。最后还是以自己的笔记本(win7)双网卡(无线、有线)的机器上搭建一个环境来做下实验(聪明的你也可以使用任何双网卡的机器搭建哦)。 [^3]: #sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE//192.168.0.0为即将配置的pppoe分配给client的地址段. [^4]: Before you start to configure your container network, it is useful to: disable all yournetctl(host and container),dhcpcd(host and container),systemd-networkd(container only) andsystemd-nspawn@.service(host only) services to avoid potential conflicts and to ease debuggingmake surepacket forwardingis enabled if you want to let containers access the internet. Make sure that your.networkfile does not accidentally turn off forwarding because if you do not have aIPForward=1setting in it,systemd-networkdwill turn off forwarding on this interface, even if you have it enabled globally.make sure you do not have anyiptablesrules which can block trafficwhen the daemon is started the systemdnetworkctlcommand displays the status of network interfaces.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值