Ubuntu下搭建与配置PPPoE server

1.安装pppoe

sudo apt-get install pppoe
#查看帮助与版本号(本文基于Version 3.12)
pppoe-server -h

2.修改配置文件

主要包括/etc/ppp/options 、/etc/ppp/pppoe-server-options 、/etc/ppp/chap-secrets三个文件

/etc/ppp/options :

#设置DNS
ms-dns 8.8.8.8
ms-dns 114.114.114.114
#
asyncmap 0
noauth
crtscts
local
lock
hide-password
modem
#注释+pap,取消注释-pap;
#取消注释+chap,注释-chap.
#PAP和CHAP为两种不同的认证协议,我们选择CHAP。
-pap
+chap
#
passive
lcp-echo-interval 30
lcp-echo-failure 4
noipx

/etc/ppp/pppoe-server-options:

auth  
require-chap     
#设置log
logfile /var/log/pppd.log 

/etc/ppp/chap-secrets(不存在话自行创建):

#表示用户名为admin,服务器名为任意,密码为admin,IP为任意的IP
# Secrets for authentication using CHAP
# client	server	secret			IP addresses
admin   *   admin   *

3.开启IP转发功能

打开/etc/sysctl.conf文件,找到 net.ipv4.ip_forward=1 所在行,取消该行的注释,随后运行 sudo sysctl -p 即可打开 IP 转发功能
或者

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

检查看下是否成功:

cat /proc/sys/net/ipv4/ip_forward

4.配置iptables策略

PPPoE接入控制的主要方式就是通过对IP数据包的封装再转发。所以要配置 PPPoE 服务器必须要开启IP转发功能

sudo iptables -t nat -A POSTROUTING -s 192.168.5.0/24 -o enp2s0 -j MASQUERADE
#检查配置结果
sudo iptables -t nat -S 
#成功配置的话,有以下条目的输出:
-A POSTROUTING -s 192.168.66.0/24 -o enp2s0 -j MASQUERADE

5.运行PPPoE服务

#-I 参数为网络端口名称,可以使用 ifconfig 命令查看当前工作的端口。
#-L 参数为一个PPP连接中,PPPoE服务器的IP地址,即当前 Ubuntu 服务器的地址。
#-R 参数为当有客户连接到服务器上时,从哪个IP地址开始分配。
#-N 参数为至多可以有多少个客户同时连接到当前服务器上。
sudo pppoe-server -I enp2s0 -L 192.168.5.1 -R 192.168.5.10 -N 5

注:配置的interface(网络端口)是要接到client的网口名,比如你ifconfig结果如下,wlp1s0为连接wifi的无线网卡,enp2s0 为Ubuntu主机对应的物理RJ45网口,完成上述配置后连接enp2s0的client设备可以通过enp2s0来进行pppoe请求,进而得到pppoe server分配的IP。

root@ubuntu:~/Desktop# ifconfig
enp2s0 : flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500ether 00:0e:c6:b7:ec:f4  txqueuelen 1000  (Ethernet)RX packets 22561  bytes 1296811 (1.2 MB)RX errors 0  dropped 2  overruns 0  frame 0TX packets 20882  bytes 1234179 (1.2 MB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 6753  bytes 1119755 (1.1 MB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 6753  bytes 1119755 (1.1 MB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0wlp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.98.228  netmask 255.255.255.0  broadcast 192.168.98.255inet6 fe80::13a1:4772:d2e1:7d63  prefixlen 64  scopeid 0x20<link>ether e0:94:67:32:3e:f3  txqueuelen 1000  (Ethernet)RX packets 183031  bytes 58421398 (58.4 MB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 41106  bytes 5008701 (5.0 MB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

完成后如果client连接,server侧用ifconfig命令查看会多一个interface:

ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1472inet 192.168.5.1  netmask 255.255.255.255  destination 192.168.5.10ppp  txqueuelen 3  (Point-to-Point Protocol)RX packets 262  bytes 8725 (8.7 KB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 171  bytes 1293 (1.2 KB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

client 也会拿到ip

pppoe-wan Link encap:Point-to-Point Protocol  inet addr:192.168.5.10  P-t-P:192.168.5.1  Mask:255.255.255.255UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1472  Metric:1RX packets:162 errors:0 dropped:0 overruns:0 frame:0TX packets:251 errors:0 dropped:2 overruns:0 carrier:0collisions:0 txqueuelen:3 RX bytes:1233 (1.2 KiB)  TX bytes:8319 (8.1 KiB)

6.通过配置脚本快速配置

完成pppoe安装与配置文件配置后可以手动运行下面的shell脚本,如果想开机自启动开启pppoe server可以配置shell脚本开机自动运行

#!/bin/sh
main() {echo "Setup PPPoE Server"if [ ! -f /etc/ppp/chap-secrets ]; thensudo apt-get install pppoe-serversudo apt-get install pppoefi# modify your configuration herelocal interface=enx000ec6b7ecf4local lan=192.168.5local mask=24local ip_pool_count=5local exist=`pgrep pppoe-server`[ ! -z "$exist" ] && sudo killall pppoe-serversudo pppoe-server -I $interface -L $lan.1 -R $lan.10 -N $ip_pool_countlocal ipt_rule=`sudo iptables -t nat -S|grep "$lan.10"`if [ -z "$ipt_rule" ]; thenecho "add iptables rule"sudo iptables -t nat -A POSTROUTING -s $lan.0/$mask -o $interface -j MASQUERADEelseecho "iptables rule seems already added"echo $ipt_rulefiecho "pppoe info:"sudo cat /etc/ppp/chap-secrets |tail -n 2
}main

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/19904.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯2024国赛--备赛刷题题单

1.游戏&#xff08;单调队列&#xff09; 注意如果结果是分数&#xff0c;直接设置变量为double&#xff0c;最好不要使用把int类型乘1.0变成分数来计算。 #include <iostream> #include <queue> using namespace std; const int N1e510; //滑动窗口大小为k,最大值…

2024上海中小学生古诗文大会方案已发布,家长孩子最关心10个问题

昨天&#xff08;2024年5月30日&#xff09;下午15点&#xff0c;上海中小学生古诗文大会组委会通过两个公众号发布了《2024上海中小学生古诗文大会系列活动方案出炉》的推文&#xff08;下称《方案》&#xff09;。如我之前的分析和预测&#xff0c;5月份会发布今年的中小学生…

Java - Java对象,充血模型的坑,还是不规范惹的祸~

充血模型的特点包括&#xff1a; 富含业务逻辑&#xff1a;在充血模型中&#xff0c;领域对象&#xff08;如Java中的类&#xff09;不仅仅是数据的容器&#xff0c;它们还包含了丰富的业务逻辑。这意味着业务规则、验证逻辑、计算等直接嵌入到领域对象内部。例如&#xff0c;一…

邮件服务器部署

目录 介绍 资源列表 基础环境 关闭防火墙 关闭内核安全机制 修改主机名 一、部署DNS服务器 mail节点操作 修改DNS地址 二、部署postfix和dovecot 安装软件包 修改postfix配置文件 重启postfix服务和开机自启 修改dovecot配置文件 重启dovecot服务和开机自启 创…

2024-5-28 刷题题单

1. 两数之和 经典算法 以空间换取时间。 链表 – 哑结点 dummy node 使用了虚拟头结点的技巧,也是为了防止出现空指针的情况。 例如:链表 head = [1,2,3,4,5],需要删除倒数第 5 个结点,也就是第一个节点。按照算法逻辑,应该首先找到倒数第 6 个节点。但由于头节点不存…

微服务:一篇博客带你学会Gateway(路由、过滤、跨域问题配置)

文章目录 Gateway搭建路由断言工厂路由过滤器全局过滤器过滤器执行顺序网关的core跨域配置跨域问题配置 Gateway 网关功能&#xff1a; 身份认证、权限校验服务路由、负载均衡请求限流 搭建 gateway也算一个服务 所以创建gateway子模块 引入依赖 <dependency><gro…

AIGC智能办公实战 课程,祝你事业新高度

在数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;已经渗透到我们生活的方方面面&#xff0c;从智能家居到自动驾驶&#xff0c;从医疗诊断到金融分析&#xff0c;AI助手正在改变我们的工作方式和生活质量。那么&#xff0c;你是否想过自己也能从零开始&#xff0c;…

Redis学习笔记【实战篇--短信登录】

开篇导读 实战篇有什么样的内容 短信登录 这一块我们会使用redis共享session来实现 商户查询缓存 通过本章节&#xff0c;我们会理解缓存击穿&#xff0c;缓存穿透&#xff0c;缓存雪崩等问题&#xff0c;让小伙伴的对于这些概念的理解不仅仅是停留在概念上&#xff0c;更…

音视频直播(一)

协议基础篇 直播协议基础推流与拉流推流拉流 直播传输协议RTMP传输协议 && HTTP-FLV协议为什么RTMP做推流&#xff0c;反而很少做拉流&#xff1f;HTTP-FLV协议 RTSP协议HLS协议SRT协议 WebRTC协议应用于直播 直播协议基础 从网络上搜寻到的有关推流与拉流的示意图 从…

Java项目对接redis,客户端是选Redisson、Lettuce还是Jedis?

JAVA项目对接redis&#xff0c;客户端是选Redisson、Lettuce还是Jedis&#xff1f; 一、客户端简介1. Jedis介绍2. Lettuce介绍3. Redisson介绍 二、横向对比三、选型说明 在实际的项目开发中&#xff0c;对于一个需要对接Redis的项目来说&#xff0c;就面临着选择合适的Redis客…

如何从浅入深理解transformer?

前言 在人工智能的浩瀚海洋中&#xff0c;大模型目前无疑是其中一颗璀璨的明星。从简单的图像识别到复杂的自然语言处理&#xff0c;大模型在各个领域都取得了令人瞩目的成就。而在这其中&#xff0c;Transformer模型更是成为大模型技术的核心。 一、大模型的行业发展现状如…

QT5:调用qt键盘组件实现文本框输入

目录 一、环境与目标 二、Qt VirtualKeyboard 1.勾选Qt VirtualKeyboard 2.ui设计流程 3.注意事项及问题点 三、参考代码 参考博客 一、环境与目标 qt版本&#xff1a;5.12.7 windows 11 下的 Qt Designer &#xff08;已搭建&#xff09; 目标&#xff1a;创建一个窗…

SPI协议——Flash的基本认识

1. 机械硬盘&#xff08;HDD&#xff09;和固态硬盘&#xff08;SSD&#xff09; 1.1 机械硬盘&#xff08;HDD&#xff09; 构造&#xff1a;机械硬盘由一个或多个磁盘片组成&#xff0c;这些磁盘片在一个密封的外壳内高速旋转。读写磁头悬停在磁盘片表面&#xff0c;通过电磁…

二叉树的顺序实现-堆

一、什么是堆 在数据结构中&#xff0c;堆&#xff08;Heap&#xff09;是一种特殊的树形数据结构&#xff0c;用数组存储&#xff0c;通常被用来实现优先队列。 堆具有以下特点&#xff1a; 堆是一棵完全二叉树&#xff08;Complete Binary Tree&#xff09;&#xff0c;即…

Unity各类资源链接汇总集合

不定时更新最新的资源都会放在前面 Unity AR VR Mixed Reality 4.0 虚拟现实虚拟加强插件 链接: https://pan.baidu.com/s/1fETUcJfnOlqQR1_rYL4jHQ?pwd=qvcx Unity Inventory Plus Customizable System 2.0.0 背包库存工具 链接:https://pan.baidu.com/s/1yEsmDvIkyY40E6…

下载安装nvm,使用nvm管理node.js版本

目录 一、下载安装nvm&#xff08;windows&#xff09; 二、使用nvm管理node.js版本 &#xff08;1&#xff09;nvm命令行 &#xff08;2&#xff09; 使用nvm管理node.js版本 ①查看nvm版本 ②显示活动的node.js版本 ③列出可供下载的node.js版本 ④安装node.js指定版本 ⑤列出…

HTML+CSS 响应式侧边栏菜单

效果演示 实现了一个响应式的侧边栏菜单,当用户点击菜单按钮时,菜单会从左侧滑出,同时页面内容会向右移动,展示菜单选项。菜单选项包括一个头像和用户名,以及其他的菜单项,当用户将鼠标悬停在菜单项上时,菜单项会高亮显示。这段代码使用了CSS的flex布局和过渡效果,以及…

Oracle登录时出现ERROR: ORA-01031 insufficient privileges

情况&#xff1a; 1.环境&#xff1a; - 操作系统版本&#xff1a;64位win10- Oracle版本&#xff1a;64位 oracle 11g解决方法&#xff1a; 利用DOS命令添加系统用户到ora_dba用户组 2.查看用户组 net localgroup–查看用户组&#xff1b; 3.查看ora_dba用户组下的具体用户&…

input输入框的一些复习

<template><div><div style"text-align: center;margin: 10px 0;"><span style"font-size: 15px;font-weight: bold;">input输入框的基本应用</span></div><el-descriptions :column"3" size"defau…

tinycudann安装

在安装完torch等 直接运行下面的指令会出现错误 pip install githttps://github.com/NVlabs/tiny-cuda-nn/#subdirectorybindings/torch大部分错误是下面的 大概看了一下都是因为虚拟环境里面的include文件下缺少文件&#xff0c;将之前的一些.h文件全部复制过来在执行上面的…