pptp VPN 的尝试
因为手机的网络设置里面本身自带了pptp VPN 的这一项,所以我就直接先尝试这个了。 如何获得pptp VPN 每个的方法都不一样。 网上有各种免费的VPN ,大家可以找一找。 自己因为是打算长期使用,所以花钱买的VPS,来搭建的VPN。
VPS搭建 pptp VPN
我购买的是buyvm的openVZ 的vps , 因为buyvm 使用的是最新的技术,所以让以前只有XEN VPS 才能实现的 pptp VPN 现在在 openVZ 上也可以实现。 我买的是 256M 的这一款,配置如下
Memory:256 MB Burst:512 MB Disk Space:30 GB Bandwidth: 1024 GB
关于bumvm 的VPS 安装pptp VPN 的全过程,参照的是 主机迷 的教程http://www.zhujimi.com/903.html
很多小盆友呢,趁着Buyvm最近的促销热潮入手了几个VPS,但是放着这些个VPS做什么用呢?难道像主机迷拿来观察用啊,肯定不行的啦,Buyvm既然是在HE,那就拿来建VPN吧…………
1、检查VPS是否有必要的支持。如果检查结果没有这些支持的话,是无法安装pptp的。
当然Buyvm的用户可以直接跳过。
modprobe ppp-compress-18 && echo ok
如果显示“ok”表明通过。不过接下来还需要做另一个检查:
cat /dev/net/tun
显示结果为下面的文本,表明通过:
cat: /dev/net/tun: File descriptor in bad state
上述两条只需一条通过,即可安装pptp。如果还有其它问题,或者请你的服务商来解决这个问题。
2、安装ppp和iptables。
yum install -y ppp iptables
3、安装pptp。
rpm -ivh http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm (32位系统使用)
rpm -ivh http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm (64位系统使用)
有些小盆友喜欢先wget再执行rpm,没必要多此一举。
4、配置pptp。首先我们要编辑/etc/pptpd.conf文件:
vim /etc/pptpd.conf
把下面字段前面的#去掉即可:
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
接下来再编辑/etc/ppp/options.pptpd:
vim /etc/ppp/options.pptpd
去掉ms-dns前面的#,并修改成如下字段:
ms-dns 8.8.8.8
ms-dns 8.8.4.4
5、设置pptp VPN账号密码。我们需要编辑/etc/ppp/chap-secrets这个文件:
vim /etc/ppp/chap-secrets
直接输入如下字段,zhujimi可以换成其他字段:
zhujimi pptpd zhujimi *
6、修改内核设置,使其支持转发。编辑/etc/sysctl.conf文件:
vim /etc/sysctl.conf
将“net.ipv4.ip_forward”改为1:
net.ipv4.ip_forward=1
同时在“net.ipv4.tcp_syncookies = 1”前面加# :
# net.ipv4.tcp_syncookies = 1
保存退出,并执行下面的命令来生效它:
sysctl -p
7、添加iptables转发规则。iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 12.34.56.78
(OpenVZ,12.34.56.78为你的VPS的公网IP地址)
#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
(XEN)
保存iptables转发规则:
/etc/init.d/iptables save
重启iptables:
/etc/init.d/iptables restart
8、重启pptp服务。
/etc/init.d/pptpd restart
9、设置开机自动运行服务。
chkconfig pptpd on
chkconfig iptables on
如果出现错误619则输入命令
mknod /dev/ppp c 108 0
然后重启VPS
如果出现错误800则修改/etc/ppp/options.pptpd文件,在require-mppe-128字段前面加#即可。。。
以上关于BUYvm VPS 搭建 pptp VPN 的内容摘自 主机迷
因为pptp VPN的服务器端如果搭建好了,则客户端就相对的简单了,在手机的网络设置里面里面添加虚拟专用网, 名称,IP,dns搜寻 这一项可以设置成GOOGLE的 DNS 8.8.8.8
我最开始就是测试的PPTP VPN ,服务器端的搭建都没有问题,可是在电脑上连接 VPN,发现有些网站无法访问,比如 twitter youtube 等,手机上就更不行了,显示VPN已经连接,可是就是上不去网,我也搞不明白到底是因为buyvm 的VPN 并非XEN ,还是我的搭建 PPTP VPN的时候有什么不对的地方。 最终 , 无奈只好抛弃PPTP vpn 转投openVPN.
服务器端 OPEN VPN 的搭建。
我还是采用的BUYVM 的256M 的openvz 的VPS , 安装的是 CentOS 5 32bit 版本的系统。
首先openvz 的服务器要安装 OPEN vpn 需要开启 TUN支持,可以用这个命令检测:cat /dev/net/tun 如果返回信息为:cat: /dev/net/tun: File descriptor in bad state 说明正常,否则发个ticket给VPS公司让他们帮忙开。还需要iptables_nat模块支持,用这个命令检测:iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE 返回信息为:iptables: Unknown error 4294967295 说明正常,否则同样需要发个ticket让VPS公司帮忙开通
53端口:
输入:
service named stop以使53端口
不被DNS占用。 (这里使用53端口,主要是为了测试是否能够突破CMZZ和CHINANET的验证而免费上网)
默认情况下centos的yum源没有OpenVPN的,先安装EPEL这个东西,使用命令:rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
成功后yum源里面就有OpenVPN了 , 我在尝试的时候,发现已经是5.4版本了,所以需要改为 rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
接下来就可以直接用yum 安装了,使用命令yum -y install openvpn
我们来找一下安装到哪去了,使用命令:locate easy-rsa
原来在这里:/usr/share/openvpn/easy-rsa 大家应该都是一样的。
我们把easy-rsa这个文件夹移出来,用命令:cp -R /usr/share/openvpn/easy-rsa /etc/openvpn/
然后cd /etc/openvpn/easy-rsa/2.0进入,生成OpenVPN需要的证书。
用vi vars来编辑环境变量,把最后几行根据实际情况修改:
[root@vps 2.0]# vi vars
然后,我们用vi打开了vars文件,首先输入I 使之成为insert模式
然后操作方向键,调到文件末尾,按照实际修改
export KEY_COUNTRY=”CN”
export KEY_PROVINCE=”GD”
export KEY_CITY=”GZ”
export KEY_ORG=”Lolita Ltd.”
export KEY_EMAIL=”loli@lolis.info”
修改完毕后,按下esc返回查看模式,输入: 并在:后输入wq 回车。
使设置生效:输入. Vars
Shell:
[root@vps 2.0]# . vars
接下来运行 ./clean-all 命令。。
./build-ca创建证书颁发机构
首先创建CA证书
./build-ca
接着创建服务器证书:
./build-key-server server
一路回车,直到Sign the certificate? [y/n]: 输入y 回车
1 out of 1 certificate requests certified, commit? 输入y 回车
建立客户端证书: (
理论上每个OpenVPN用户都有独立的证书,我们先来生成一个试试。
输入命令:./build-key client1,这里的client1是客户端名称,如果第二个就是client2了。
)在这里我使用的是 ./build-key user
运行 ./build-key user
过程同服务器,也是直到
Sign the certificate? [y/n]: 输入y 回车
1 out of 1 certificate requests certified, commit? 输入y 回车
最后生成Diffie Hellman参数:./build-dh,这个需要一点时间的。
完成上面的过程后,运行winSCP(请自行下载),把/etc/openvpn/2.0/keys里面的东西下载回来。
cd/etc/openvpn/ 返回到OpenVPN文件夹,输入vi server.conf
创建配置文件。输入i到可写模式,将编写好的配置文件写入。以下是我的配置文件,请按需修改。
port 53
proto udp
dev tun
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
verb 3
到这里为止OpenVPN就配置好了,接下来我们设置外网访问。
输入vi /etc/sysctl.conf开始编辑,找到net.ipv4.ip_forward = 0改成net.ipv4.ip_forward = 1保存。
输入iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT - -to-source 1.2.3.4添加规则,注意最后1.2.3.4改成你的VPS的IP地址。
执行:
/etc/init.d/iptables save
/etc/init.d/iptables restart
把OpenVPN添加到开机启动,用vi /etc/rc.local进入编辑,在后面加入/usr/sbin/openvpn --config /etc/openvpn/server.conf &这一行。
需要在服务器上完成的操作到这里就结束了,输入openvpn --config /etc/openvpn/server.conf &启动。
接下来的是在客户端上的配置,这里先介绍一下在电脑上OPEN vpn客户端的设置
客户端配置:
安装OpenVPN,win安装很简单,不再累述。
首先回头看看下载回来的KEY文件夹,挑出ca.crt,user.key,user.crt
找到C:\Program
Files\OpenVPN\config(如果默认的话)
把以上3个文件放进去,并创建user.ovpn 文本文件。 (如果之前创建客户端证书的时候你使用的是 ./build-key user 那么就是创建user.ovpn ,如果用的是 :./build-key client1 那么就创建 client1.ovpn)
client
dev tun
proto udp
remote “SERVER-IP” 53
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
comp-lzo
verb 3
把第四行的SERVER-IP换成VPS的IP地址 ,并把53改为你要设置的端口(同前),然后保存。
(备忘,可以使用vi /etc/rc.local进入编辑。加入 /sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j SNAT --to-source 1.2.3.4)
下面我说一下在Milestone 里程碑上OPEN VPN客户端的安装和设置。 下面全文引用自
http://www.techotaku.net/post/53 Milestone配置OpenVPN教程(Android2.1)【图解】
由于众所周知的原因,我们需要使用VPN(虚拟专用网)进行“科学上网”。而OpenVPN作为更安全的VPN解决方案受到更广泛的欢迎。这里图解一下Motorola Milestone的OpenVPN上网配置方法。
(理论上适用于其他任何android 2.1机型)
(有些图是我自己配置的时候截取的,有些是后来补截的,所以图片中电量等细节可能不大一致)
(其实在里程碑上不用PPTP还有个原因……因为经常不能用:电脑上好好的,手机上死活用不了;刷机前好好的,刷完就不行了,再刷回去也不行;或者从1.6、2.01换到2.1也不能用,替换pptpd什么的文件也不行,调整服务器不使用mppe128加密照样不行。)
在开始配置之前,你需要准备以下东西:0、你的手机需要是root过的,并且有一个Root Explorer和Terminal Emulator。一般刷过自定义ROM的都已经root和附带RE,Terminal Emulator(终端命令行工具)可以从市场下载。
1、一套在电脑上可以使用的OpenVPN服务器的配置文件,通常包括一个ovpn文件以及相关证书。
2、手机上需要有busybox命令。通常刷过自定义ROM的都会带这个命令。判断是否有busybox的方法见后文。可以从本文附带的压缩包中获得(busybox)。
3、OpenVPN For Android 的Binary库。可以从本文附带的压缩包中获得(openvpn)。
4、TunnelDroid 0.8.3 。不要使用市场的最新版,在milestone上大部分机友报告无法使用。可以从本文附带的压缩包中获得(net.sourceforge.tunneldroid.apk)。
5、Tun 驱动。据说有的Android版本自带这玩意。可以从本文附带的压缩包中获得(tun.ko)。
href="http://techotaku.net/wp-content/uploads/2010/08/milestoneOpenVPN.zip">点击此处下载Milestone配置OpenVPN工具包
okay,准备工作完成,开始配置OpenVPN。
首先安装OpenVPN库。确认/system是可写的,然后用Root Explorer把压缩包中的openvpn复制到/system/xbin下,然后勾选对应的权限:用户可读、可写、可执行,群组可读、可写、可执行,其他可读、可执行,如下图左一所示(点击图片查看大图)。
MileStone配置OpenVPN教程图解-图1
然后打开Terminal Emulator,运行以下命令确定busybox已经安装:su
busybox which busybox
如果出现了如下图所示的类似/system/bin/busybox的结果,表示busybox已经安装。
继续输入以下命令:busybox mkdir /system/xbin/bb
ln -s /system/bin/busybox /system/xbin/bb/ifconfig
ln -s /system/bin/busybox /system/xbin/bb/route
命令如下图所示(点击图片查看大图)。执行结果见上图中、右(点击图片查看大图)。
MileStone配置OpenVPN教程图解-图2
接下来安装本文附带的压缩包中的TunnleDroid 0.8.3。
安装完成之后,在SD卡根目录下新建openvpn文件夹,把你的OpenVPN的服务器配置文件放进去(TunnleDroid可以识别的配置文件为ovpn格式),把本文附带的压缩包内的tun.ko也一并拷入。
打开TunnleDroid,这个时候主界面中应该已经显示出了你拷入的配置文件,不过先别急着点,还需要做一些配置。
按出菜单,选择“Preferences”,选择“Set DNS after connect”,填入一个可靠的、未被污染的DNS服务器IP地址,确定。(我设置的是谷歌的DNS服务器8.8.8.8,你也可以设置成OpenDNS的地址)
然后选择“Set tun driver path”,填入“/sdcard/openvpn/tun.ko”,确定。
返回TunnleDroid主界面,你可以在配置文件名上长按打开菜单,选择“Edit”编辑检查一下配置文件的内容。
MileStone配置OpenVPN教程图解-图3(配置TunnelDroid)
“remote”语句指定服务器的地址和端口。
如果你的OpenVPN也需要用户名和密码的话,配置文件中就应该有“auth-user-pass”语句。如果你不想每次登录都手动输入密码(用户名 TunnleDroid能够记住),就可以在openvpn文件夹下建立一个文本文件,第一行写上用户名,第二行写上密码,然后把这个文本文件的名字放在 “auth-user-pass”后面作为参数(文件名与语句之间有一个空格),详见下图(点击图片查看大图)。
OpenVPN的配置到此已经完成,点击TunnelDroid主界面中的配置文件名,就可以连接OpenVPN网络了。(WiFi和EDGE均可连接,3G网络因为没有条件所以没有测试,不过想来也不会有问题)
经过“AUTH”、“GET_CONFIG”、“ASSIGN_IP”等步骤,成功连接之后会提示“VPN Connection Established”,配置文件名右侧的绿灯亮起,并在通知栏提示“Connected to XXXX”。
MileStone配置OpenVPN教程图解-图4(修改OpenVPN配置文件、连接VPN)
连接成功之后你不能够直接(按返回键)退出,必须先断开连接。如果需要进行其他任务,可以按Home键返回主屏。
拉下通知栏,里面会显示目前通过OpenVPN网络收发数据的速率。
连接成功之后再次点击配置文件名,即可断开连接。
MileStone配置OpenVPN教程图解-图5
呼,发两张我用Seesmic上推的截图。
所有的记录到此,有什么问题会后续补充,感谢Google 和主机迷 还有 技术宅。
不知道什么时候开始摩托罗拉就变成二线了
回复删除技术性有点强了
回复删除楼主写的很不错,没有多余的修饰,文章也显得容易理解。总体感觉很有可读性。顶你一个
回复删除milestone是可以用pptpd的连接方式,条件是在修改/etc/ppp/pptpd-options
回复删除将require-mppe-128这个微软的加密协议去掉,因为android是不支持window的128加密协议
还有你所说的有些网站上不去,因为linux跟window的mtu大少不一样,你要在iptables规则上设成1356,然后就可以穿墙于无形了,话说今天我的buyvm足足抽了一个下午,抽完后sysctl这个命令竟然用不了
回复删除技术性文章啊
回复删除你有多久不更新了哇
回复删除[...] openvpn 服务器端的安装, centos 版本可以见我之前的一篇博文, http://www.83g.org/220.html 里面有基于 centos 的 pptpvpn 和 openvpn [...]
回复删除