在Ubuntu上配置PPPoE服务:从安装到自动化启动的全指南

在Ubuntu上配置PPPoE服务:从安装到自动化启动的全指南

PPPoE(点对点协议以太网)是一种广泛用于DSL和光纤宽带连接的协议。在本篇技术博客中,我们将详细介绍如何在Ubuntu系统上配置PPPoE服务,包括安装、配置、启动以及设置自动启动等步骤。

1. 安装pppoe-server

首先,我们需要安装pppoe-server工具。使用以下命令进行安装:

bash 复制代码
sudo apt-get update
sudo apt-get install pppoe

安装完成后,可以使用pppoe-server -h命令查看软件版本以确认安装成功。

2. 配置服务器

配置基本选项

/etc/ppp目录下编辑配置文件:

编辑/etc/ppp/options
bash 复制代码
sudo nano /etc/ppp/options

修改以下内容:

  • 找到# ms-dns行,去掉注释并将其改为实际可用的DNS服务器地址,如114.114.114.1148.8.8.8
  • 注释掉+pap,取消注释-pap
  • 取消注释+chap,注释掉-chap

PAP和CHAP是两种不同的认证协议,根据需要选择其一。

编辑/etc/ppp/chap-secrets
bash 复制代码
sudo nano /etc/ppp/chap-secrets

添加以下内容,设置用户名和密码:

123456  *   123456   *

表示用户名为123456,服务器名为任意,密码为123456,IP为任意的IP。

创建并编辑/etc/ppp/pppoe-server-options

如果文件不存在则创建该文件,并添加以下内容:

bash 复制代码
sudo nano /etc/ppp/pppoe-server-options
auth
require-chap
logfile /var/log/pppd.log

3. 设置IP策略

开启IP转发功能

打开/etc/sysctl.conf文件,找到并取消注释net.ipv4.ip_forward=1行,然后运行以下命令以启用IP转发:

bash 复制代码
sudo sysctl -p

配置iptables的IP策略

在超级用户权限下运行以下命令:

bash 复制代码
sudo iptables -A POSTROUTING -t nat -s 192.168.156.0/24 -j MASQUERADE

其中192.168.156.0/24为实际的网络地址,需要根据你的实际情况填写。

4. 运行PPPoE服务器

使用以下命令启动PPPoE服务器:

bash 复制代码
sudo pppoe-server -I ens33 -L 192.168.156.117 -R 192.168.156.118 -N 10

参数说明:

  • -I:指定网络端口名称。
  • -L:指定PPPoE服务器的IP地址。
  • -R:指定客户连接到服务器时分配的IP地址范围。
  • -N:指定最多允许的客户连接数。

示例

bash 复制代码
sudo pppoe-server -I eth0 -L 172.168.0.1 -R 172.168.0.210 -N 20

5. 添加开机自启动

配置rc-local服务

编辑rc-local.service文件
bash 复制代码
sudo chmod 777 /lib/systemd/system/rc-local.service
sudo nano /lib/systemd/system/rc-local.service

在文件尾部添加以下内容:

[Install]
WantedBy=multi-user.target
Alias=rc-local.service
编辑/etc/rc.local文件

如果文件不存在则创建该文件,并添加以下内容:

bash 复制代码
sudo nano /etc/rc.local
#!/bin/sh
echo "看到这行字,说明添加自启动脚本成功。" > /usr/local/test.log
pppoe-server -I ens33 -L 200.200.156.117 -R 200.200.156.118 -N 10
iptables -A POSTROUTING -t nat -s 200.200.156.0/24 -j MASQUERADE
exit 0

/etc/rc.local文件加上执行权限:

bash 复制代码
sudo chmod +x /etc/rc.local
创建软链接

/etc/systemd/system目录下创建软链接:

bash 复制代码
sudo ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/

停止 PPPoE 服务器

  1. 查找并终止 PPPoE 服务器进程
    使用以下命令查找 pppoe-server 进程:

    bash 复制代码
    ps aux | grep pppoe-server

    终止进程:

    bash 复制代码
    sudo kill <pppoe-server进程ID>

    或者使用以下命令停止所有 pppoe-server 进程:

    bash 复制代码
    sudo killall pppoe-server

使用pppoeconf配置PPPOE服务

在 Ubuntu 上开启和关闭 PPPoE 服务也可通过安装并配置 pppoeconf 工具完成。

开启 PPPoE 服务

  1. 安装 pppoeconf 工具

    如果没有安装 pppoeconf,可以使用以下命令进行安装:

    bash 复制代码
    sudo apt-get update
    sudo apt-get install pppoeconf
  2. 配置 PPPoE 连接

    运行 pppoeconf 工具进行 PPPoE 连接配置:

    bash 复制代码
    sudo pppoeconf

    按照屏幕上的提示进行配置,输入 ISP 提供的用户名和密码等信息。

  3. 启动 PPPoE 连接

    配置完成后,可以使用以下命令启动 PPPoE 连接:

    bash 复制代码
    sudo pon dsl-provider

    dsl-providerpppoeconf 创建的默认配置文件名称。

  4. 验证连接

    使用以下命令查看 PPPoE 连接状态:

    bash 复制代码
    ifconfig ppp0

    或者:

    bash 复制代码
    ip addr show ppp0

    如果看到 ppp0 接口的 IP 地址,说明 PPPoE 连接已经成功启动。

关闭 PPPoE 服务

  1. 停止 PPPoE 连接

    使用以下命令停止 PPPoE 连接:

    bash 复制代码
    sudo poff dsl-provider

    这将断开当前的 PPPoE 连接。

  2. 验证连接断开

    再次查看网络接口状态,确保 ppp0 接口已经消失或不再有 IP 地址:

    bash 复制代码
    ifconfig ppp0

    或者:

    bash 复制代码
    ip addr show ppp0

示例

以下是一个完整的示例过程,包括安装、配置、启动和关闭 PPPoE 服务的命令:

bash 复制代码
# 更新软件包列表并安装 pppoeconf 工具
sudo apt-get update
sudo apt-get install pppoeconf

# 运行 pppoeconf 配置 PPPoE 连接
sudo pppoeconf

# 按照提示输入 ISP 提供的用户名和密码,完成配置

# 启动 PPPoE 连接
sudo pon dsl-provider

# 验证 PPPoE 连接状态
ifconfig ppp0
# 或者
ip addr show ppp0

# 停止 PPPoE 连接
sudo poff dsl-provider

# 验证连接断开
ifconfig ppp0
# 或者
ip addr show ppp0

通过以上步骤,你可以在 Ubuntu 上成功开启和关闭 PPPoE 服务。如果遇到问题,确保你的网络设备和 ISP 提供的设置正确,并检查系统日志获取更多信息。

结论

通过以上步骤,你可以在Ubuntu上成功配置并运行PPPoE服务,并设置其为开机自启动。这样不仅可以确保网络服务的持续性,还能提供稳定的PPPoE连接服务。希望本教程对你有所帮助,如果在操作过程中遇到问题,欢迎留言讨论。

相关推荐
_.Switch1 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
Ai 编码助手4 小时前
MySQL中distinct与group by之间的性能进行比较
数据库·mysql
陈燚_重生之又为程序员4 小时前
基于梧桐数据库的实时数据分析解决方案
数据库·数据挖掘·数据分析
caridle4 小时前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express
白云如幻4 小时前
MySQL排序查询
数据库·mysql
萧鼎4 小时前
Python并发编程库:Asyncio的异步编程实战
开发语言·数据库·python·异步
^velpro^4 小时前
数据库连接池的创建
java·开发语言·数据库
荒川之神4 小时前
ORACLE _11G_R2_ASM 常用命令
数据库·oracle
IT培训中心-竺老师4 小时前
Oracle 23AI创建示例库
数据库·oracle
不是笨小孩i4 小时前
开源AI图片处理工具HivisionIDPhotos安装与证件照制作指南
ubuntu