accel-pptp 部署
accel-pptp 是 pptp-client 和 pptpd 的改进版,使用内核 pptp 模块,相比 raw socket 实现方式能提供更好的性能。
Ubuntu 12.04 上启用内核 pptp
内核 3.2+ 已经包含内核 pptp 模块
1. 编译 pppd 模块
apt-get install ppp-dev cmake
cd accel-pptp
cmake . -DPPP_PLUGIN_PATH=/usr/lib/pppd/2.4.5/
2. 修改 peer config file (for instance, /etc/ppp/peers/my_vpn):
pty "pptp x.x.x.x ...."
为
plugin "/usr/lib/pppd/2.4.5/pptp.so"
pptp_server x.x.x.x
同时注释掉 peer config file 和 /etc/ppp/options.pptp 中的 lock
#lock
3. 启动 pptp VPN
pppd call my_vpn
RHEL 6
RHEL6 因为内核版本才 2.6.32 所以并不包含内核 pptp 模块——2.6.36才自带。
1. 下载 accel-pptp 并解压
2. 进入 kernel/driver 目录编译内核模块
安装内核头文件
yum install kernel-headers kernel-devel ppp-devel
如果没有用 yum update kernel 将内核升级到最新,则和内核头文件会有小版本不匹配。此时编译会出现找不到头文件,需
cd /lib/modules/2.6.32-431.1.2.0.1.el6.x86_64
rm build
ln -s ../../../usr/src/kernels/2.6.32-504.1.3.el6.x86_64/ build
编辑 pptp.c , 47行 取消对宏 CONFIG_GRE 的注释(将 pptp 模块注册到GRE协议里面,默认是注册到 inet 里面,此模式下总是会注册失败,如果再尝试卸载 pptp 模块则会机器无响应。)
#define CONFIG_GRE
然后编译
make
3. 进入 pppd_plugin 目录编译 pppd 模块 pptp.so
./configure
make
cp .libs/pptp.so /usr/lib64/pppd/2.4.5/
4. 进入 pptpd-1.3.3 目录编译 pptpd
./configure
make
make install # 安装到 /usr/local/sbin
拷贝配置样例。如果本机已经通过 yum 安装过 pptpd,则保留已有配置即可
cp samples/pptpd.conf /etc/
cp samples/options.pptpd /etc/ppp/
5. 内核模块开机自动加载
cp pptp.ko /lib/modules/`uname -r`/extra/
depmod -a # 对所有模块依赖关系,这样 modprobe 才能找到模块,否则必须用 insmod 加载
echo modprobe pptp >> /etc/rc.modules
chmod +x /etc/rc.modules
5. 启动 pptpd 服务
/usr/local/sbin/pptpd
posted on 2015-01-20 14:48 JesseFang 阅读(1150) 评论(0) 编辑 收藏 举报