arm-linux上实现的VPN客户端(PPTP)

来源:互联网 发布:python中syntax error 编辑:程序博客网 时间:2024/05/18 00:14

搞了一个星期,终于搞定了,现在做一个总结 。

1.准备材料:

a.pptp客户端:pptp-1.7.2

下载地址 :http://sourceforge.net/project/showfiles.php?group_id=33063

b.ppp客户端ppp-2.4.4

ftp://ftp.samba.org/pub/ppp/或者在linux命令行下输入wget ftp://ftp.samba.org/pub/ppp/ppp-2.4.4.tar.gz

c.ppp-mppc-mppe补丁

在linux命令行下输入wget http://gaute.vetsj.com/arkiv/2008-03-19%20-%20arch-mppc/ppp/ppp-2.4.4-mppe-mppc.1.1.patch

注意:补丁的版本必须和ppp版本一致,且该补丁为必须,否则无法同WINDOWS 的VPN服务器实现加密链接

2.操作步骤

步骤一:将pptp-1.7.2解压,修改根目录下的Makefile文件,将CC=gcc改为arm-linux-gcc,保存退出后执行make命令,将生成pptp可执行文件。剥离调试信息后就可以将其拷贝到开发板的/usr/sbin目录下备用。

步骤二:执行tar zxvf ppp-2.4.4.tar.gz然后执行cd ppp-2.4.4。将 ppp-2.4.4-mppe-mppc.1.1.patch

拷贝到当前目录下,并执行patch -p1<ppp-2.4.4-mppe-mppc.1.1.patch对ppp打补丁< p="" style="word-wrap: break-word;">

执行./configure 生成Makefile文件

执行make CC=arm-linux-gcc

编译结束后在pppd目录下生成了一个名字为pppd的可执行文件,剥离调试信息后就可以下载至目标板的/usr/sbin目录下了。

3.连接测试。

到现在为止,一切已经就绪 ,准备连接你的VPN服务器了。

在开发板的命令行下输入以下命令

pptp --debug serverip user $username password $password mppc mppe stateless

serverip:VPN服务器IP地址或者域名

$username:连接使用的用户名,注意以后的参数都是传递给pppd的

$password:连接的密码

mppc:请求MPPC压缩

mppe:请求MPPE加密

stateless:无状态的加密方法。每一个包都采用单独的密码。

如果不出意料的话,你将获取到远端服务器给你分配的IP地址。执行ifconfig 验证,如果出现了名字为ppp0的设备,则表示你已经连接成功了。

如果没有成功,也不要灰心,用抓包工具查看连接过程,找到失败的原因,适当修改pppd的参数就可以了。

0 0