Ubuntu搭建pppoe-server
目录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 10.0.0.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服务器,可以配置多个
-pap:禁用pap认证方式
+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为拨号用户名,这里为pppoe
,server可任意,secret为拨号密码,这里为12345678
,IP地址任意。
启用转发规则
直接配置forward:
echo 1 > /proc/sys/net/ipv4/ip_forward
检查看下是否成功:
cat /proc/sys/net/ipv4/ip_forward
启动程序
先停止先前的程序pppoe-server(如果有的话):
sudo 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,这里是网段内的10
-N:地址池的大小,即有几个
配置转发规则
启用NAT转发:
sudo iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -o enp2s0 -j MASQUERADE
注意接口名称、子网网段保持一致。
查看规则是否配置OK:
sudo iptables -t nat -S
成功配置的话,有以下条目的输出:
-A POSTROUTING -s 192.168.66.0/24 -o enp2s0 -j MASQUERADE
检查
服务器端成功启动:
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.10"`
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
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...