Ubuntu搭建pppoe-server
目录环境
- ubuntu 14.04 32bit
- ubuntu 16.04 64bit
安装软件包
sudo apt-get install pppoe-server
sudo apt-get install pppoe
修改配置
- 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认证方式
- pppoe-server-options
sudo vim /etc/ppp/pppoe-server-options
如果文件不存在则创建,内容为:
auth
require-chap
logfile /var/log/pppd.log
+ipv6
- 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
注意接口名称、子网网段保持一致。
检查
-
服务器端成功启动(实测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)
-
客户端拨号成功(接口名称不一定是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