首页 > 系统相关 >Ubuntu搭建pppoe-server

Ubuntu搭建pppoe-server

时间:2023-10-18 19:11:48浏览次数:37  
标签:sudo 192.168 echo chap Ubuntu server pppoe

Ubuntu搭建pppoe-server

目录

环境

  1. ubuntu 14.04 32bit
  2. ubuntu 16.04 64bit

安装软件包

sudo apt-get install pppoe-server
sudo apt-get install pppoe

修改配置

  1. options
sudo vim /etc/ppp/options

示例如下:

ms-dns 172.29.1.1
ms-dns 192.168.0.8
asyncmap 0
noauth
crtscts
local
lock
hide-password
modem
-pap
+chap
passive
lcp-echo-interval 30
lcp-echo-failure 4
noipx

主要修改:

  • ms-dns:有效的dns服务器
  • -pcap:禁用pcap认证方式
  • +chap:启用chap认证方式
  1. pppoe-server-options
sudo vim /etc/ppp/pppoe-server-options

如果文件不存在则创建,内容为:

auth  
require-chap     
logfile /var/log/pppd.log 
+ipv6
  1. chap-secrets
sudo vim /etc/ppp/chap-secrets

内容:

# Secrets for authentication using CHAP
# client	server	secret			IP addresses
pppoe   *   12345678   *

client为拨号用户名,server可任意,secret为拨号密码,这里为12345678,IP地址任意。

启用转发规则

直接配置forward:

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

检查看下是否成功:

cat /proc/sys/net/ipv4/ip_forward

启动程序

先停止先前的程序pppoe-server(如果有的话):

killall pppoe-server

启动pppoe-server,可视情况判断是否需要sudo:

sudo pppoe-server -I enp2s0 -L 192.168.8.1 -R 192.168.8.10 -N 5

参数说明:

  • -I:接口名称,即实际的物理网卡,可用ifconfig查看实际接口名称,也可能是eth0这样
  • -L:一个PPP连接中,PPPoE服务器的IP地址
  • -R:地址池的起始IP
  • -N:地址池的大小,即有几个

配置转发规则

启用NAT转发:

sudo iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -o enp2s0 -j MASQUERADE

注意接口名称、子网网段保持一致。

检查

  1. 服务器端成功启动(实测ubuntu16.04无此接口,但不影响使用):

    ppp0      Link encap:Point-to-Point Protocol  
              inet addr:192.168.8.1  P-t-P:192.168.8.10  Mask:255.255.255.255
              UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1480  Metric:1
              RX packets:370 errors:0 dropped:0 overruns:0 frame:0
              TX packets:256 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:3 
              RX bytes:73316 (73.3 KB)  TX bytes:24830 (24.8 KB)
    
    
  2. 客户端拨号成功(接口名称不一定是pppoe-internet):

    pppoe-internet Link encap:Point-to-Point Protocol  
              inet addr:192.168.8.10  P-t-P:192.168.8.1  Mask:255.255.255.255
              UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1480  Metric:1
              RX packets:1307 errors:0 dropped:0 overruns:0 frame:0
              TX packets:1742 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:3 
              RX bytes:287250 (280.5 KiB)  TX bytes:298883 (291.8 KiB)
    

脚本执行

执行脚本后,需手动调整配置。
调整配置文件完成后,再执行一次脚本即可。
后续每次开启可运行一次(或者配置开机自动运行)。

#!/bin/sh
main() {
    echo "Setup PPPoE Server"
    if [ ! -f /etc/ppp/chap-secrets ]; then
        sudo apt-get install pppoe-server
        sudo apt-get install pppoe
    fi

    # modify your configuration here
    local interface=enp2s0
    local lan=192.168.8
    local mask=24
    local ip_pool_count=5

    local exist=`pgrep pppoe-server`
    [ ! -z "$exist" ] && sudo killall pppoe-server
    sudo pppoe-server -I $interface -L $lan.1 -R $lan.10 -N $ip_pool_count
    local ipt_rule=`sudo iptables -t nat -S|grep "$lan.0"`
    if [ -z "$ipt_rule" ]; then
        echo "add iptables rule"
        sudo iptables -t nat -A POSTROUTING -s $lan.0/$mask -o $interface -j MASQUERADE
    else
        echo "iptables rule seems already added"
        echo $ipt_rule
    fi

    echo "pppoe info:"
    sudo cat /etc/ppp/chap-secrets |tail -n 2
}

main

标签:sudo,192.168,echo,chap,Ubuntu,server,pppoe
From: https://www.cnblogs.com/adam-zheng/p/17773108.html

相关文章

  • 通过SQLserver系统存储过程分离和附加数据库的简单使用
    sp_detach_db 数据库分离sp_detach_db 是SQLServer中的一个系统存储过程,用于卸载数据库。使用这个存储过程可以使得数据库不再与当前SQLServer实例关联。以下是 sp_detach_db 的基本语法:sp_detach_db'database_name';其中 'database_name' 是要卸载的数据库的名......
  • SqlServer的执行计划如何分析?
    sqlserver的执行计划执行计划是SQLServer中的一个重要工具,用于分析和优化查询的性能。它提供了关于查询的详细信息,包括查询的执行顺序、使用的索引、连接类型、过滤条件等。What(什么):执行计划显示了查询的执行计划,即查询的逻辑操作和物理操作。它告诉你查询是如何执行的,包......
  • Ubuntu22.04 使用核显显示+独显工作+风扇声音过大的缓解办法
    在使用教程安装好ubuntu22.04的显卡驱动后,在使用过程中发现2个问题。问题1:当我运行pmemd.cuda,可以使得显卡使用率高达98%。但是这同样带来一个问题,显卡的温度会升高,导致显卡风扇狂转,声音太吵。问题2:从开机后显卡就一直有/usr/lib/xorg/Xorg在运行。虽然只用了100MB左右,但是这无......
  • Ubuntu 操作系统中常用的命令
    以下是Ubuntu操作系统中常用的命令,这些命令可用于文件和目录操作、系统管理、软件安装和网络配置等方面:1.ls:列出当前目录下的文件和目录列表。2.cd:切换到指定目录。3.pwd:显示当前所在的目录。4.mkdir:创建新的目录。5.rm:删除文件或目录。6.cp:复制文件或目录。7.mv:移动文......
  • 如何在 ubuntu 上搭建 minio
    由于腾讯的对象存储服务器(COS)的半年免费试用期已过,所以寻思鼓捣一下minio,试着在自己的服务器上搭建一套开源的minio对象存储系统。单机部署基本上有以下两种方式。直接安装最基础的一种单机安装,这里不做过多阐述,可以参考这篇博客:Ubuntu22.04安装MinIOdocker安装1.查看......
  • WinSCP 脚本实现将 jar 包一键上传 Ubuntu 并 docker 部署
    准备首先,在Ubuntu写一个.sh脚本用于自动更新jar包的docker容器和镜像,然后在Windows写一个.bat脚本用于上传jar包并运行.sh脚本。deploy.sh#Kill容器dockerkilldemo#删除容器dockerrmdemo#删除镜像dockerrmimy/demo#构建镜像dockerbuild-t......
  • VMware 虚拟机 Ubuntu 系统没有IP地址 解决:UP BROADCAST MULTICAST 问题【转】
    转自:https://blog.csdn.net/a262624/article/details/95792665几周没使用虚拟机,今天打开的时候发现启动网络就是5分钟,然后还没有ip。百度了下找到了解决办法:  在我的VMware 虚拟机软件里面有许多Ubuntu系统的虚拟机,并且它们都是使用一段时间,就会出现没有IP地址的问题。我一......
  • Ubuntu 中Docker Compose的奇淫异巧
    在本教程中,我们将看到如何在Ubuntn16.04上安装DockerCompose。安装Docker我们需要安装Docker来安装DockerCompose。首先为官方Docker仓库添加公钥。$curl-fsSLhttps://download.docker.com/linux/ubuntu/gpg|sudoapt-keyadd-接下来,添加Docker仓库......
  • java在ubuntu上部署生产环境(适合小项目)
    一、概述需求:将SpringBoot项目打包成jar包,快速部署到云服务器的生产环境。(小型项目)二、部署步骤1.配置好项目运行所需的环境2.将jar包上传到服务器的指定目录(可以自定义)。如:/usr/local/或/tony/jar/(这是个自定义目录)3.创建一个服务文件并将其放入:/etc/system......
  • ubuntu日常使用经验记录
    Linux-daily-use本文所有记录都是在ubuntu22.04版本上验证配置,其它版本可能并不适用,请谨慎参考本文可能涉及到的桌面操作都是KDE桌面环境常用Linux命令#查找命令find/-nameYour_want_find_file_name2>/dev/null#添加用户sudoadduseruser_name#添加用户sudo......