FreeVpnSsh教程:OpenVPN使用过程中的问题解决

2013年7月23日1,2910

FreeVpnSsh教程:OpenVPN使用过程中的问题解决

一、软件更新 OpenVPN 2.3_rc1在2012.10.31发布了,距离2.3正式版也越来越近了,OpenVPN这次更新主要是修复一下细小的问题。

OpenVPN下载:http://openvpn.net/index.php/download/community-downloads.html

二、支持系统 目前OpenVPN支持Windows/Mac/Linux/Android/iOS/webOS/DD-WRT/Tomato/Openwrt等众多系统 for Android(无需root) Android 4.0 及更高版本提供了更高的VPN权限,从此安卓设备使用OpenVPN就无需root或刷CM固件了。 OpenVPN for Android下载地址:https://play.google.com/store/apps/details?id=de.blinkt.openvpn 如果您有能力希望帮助他们翻译,项目地址 http://code.google.com/p/ics-openvpn/ 下载后安装即可配置使用OpenVPN了(openvpn需要tun模式,当然我们常见的openvpn都是tun模式的,tap模式的我至今未见过),有网友测试过可以正常使用,我没测试过。 此外OpenVPN官方经营的Private Tunnel VPN服务也推出专门的Android版客户端了。

这样OpenVPN在Windows、Mac、Linux和Android上都比较完善了,iOS估计不会开那么高的权限给OpenVPN所以想用OpenVPN还要继续越狱,WM手机估计也没啥希望据说微软还是不打算给新的WM手机增加VPN功能(微软手机系统也真够和谐的)。

另外还有网友说strongSwan VPN Client也是此次Android开放VPN更高权限的受益者,在安卓上使用IPsec VPN(IKEv2)也是个不错的选择,另外4.0之后的Android都可以记忆PPTP VPN/L2TP (IPSec) VPN密码,这样安卓的VPN支持也是比较完善了。

strongSwan VPN Client下载地址:https://play.google.com/store/apps/details?id=org.strongswan.android

据称国内最专业的VPN服务商IGVPN说他们家VPN服务已经提供安卓的IKEv2 VPN支持了,说起专业性IGVPN还是不错的,Nokia S60 mVPN、WebOS平台Cisco IPSec VPN、BlackBerry黑莓手机和PlayBook平板IPSec VPN、Windows Phone 7 APN Proxy等基本上能见到的设备的稀奇古怪的VPN代理的都支持了(点击查看IGVPN官方)。

说起这稀奇古怪的VPN有个Tinc一直感觉好玩,可惜国内搜索不到搭建教程,搜到个国外的也不怎么懂,有没有高人能根据其官方文档写一个Linux上搭建服务器端和Windows系统上使用Tinc VPN的教程啊。这个Tinc VPN支持IPv6,有Windows客户端和Android客户端,mac、Linux、BSD、iOS也都有支持。

Tinc-VPN官网:http://www.tinc-vpn.org/

Android客户端下载:https://play.google.com/store/apps/details?id=org.poirsouille.tinc_gui

另外还有连个项目感觉也可以看看https://github.com/ptrhere/tincie(据称可以实现无tun设备的VPN)和https://github.com/geniedb/tinc-tailor(简化tinc vpn)。

三、OpenVPN使用过程中的问题解决 OpenVPN相对于PPTP的一大优势,就是有完整的log,可以根据客户端的log来发现无法连接的问题所在。以下为本人的VPN用户经常遇到的问题,希望对其他搭建OpenVPN服务的人有所帮助。

注意:本日志主要用于本人的OpenVPN服务(https://yegle.net/openvpn/)的用户用于自行排查问题用,转载请保留此信息,谢谢:-)

各个平台下OpenVPN连接log所在的位置:

Windows下:如果使用OpenVPN GUI进行连接,默认的log会存放在OpenVPN安装目录下log文件夹。     Linux下:在OpenVPN配置文件中添加一行:log-append /path/to/logfile,连接后/path/to/logfile即为连接log。     Mac OS下:tunnelblick里,Details菜单(感谢@tianyi提供信息:-))     Android下:tunneldroid里,按menu查看log。

OpenVPN的log文件为普通文本文件,可以用各种文本编辑器,例如记事本、写字板、VIM等工具打开。一般情况下为了方便查看问题所在,建议在OpenVPN的配置文件中添加verb 5,可以在log里输出更多有效信息。

正常连接时,log的最后一行是:

Fri Mar 5 09:58:04 2010 Initialization Sequence Completed

这表明OpenVPN成功建立了连接并成功修改了路由表,已经可以正常使用VPN。

问题1:

Mon Mar 01 21:42:13 2010 us=78000 CreateFile failed on TAP device: .Global{3D3B7076-EC34-48DE-82A4-B34956532951}.tap     Mon Mar 01 21:42:13 2010 us=78000 All TAP-Win32 adapters on this system are currently in use.     Mon Mar 01 21:42:13 2010 us=78000 Exiting

解答:这个问题仅在Windows上出现。原因未知,怀疑与防火墙软件有关。通常情况下可以通过重启系统解决。如果没有解决的话,可以到 OpenVPN安装目录下bin文件夹,依次执行delalltap.bat和addtap.bat,即可解决。注意,如果使用的是Vista/Win7 /Win2003Win2008这样的带UAC的Windows系统,需要用管理员权限执行这两个脚本。

问题2:

Thu Dec 03 22:46:07 2009 us=651000 C:WINDOWSsystem32route.exe ADD 128.0.0.0 MASK 128.0.0.0 10.7.0.1     Thu Dec 03 22:46:07 2009 us=667000 ROUTE: route addition failed using CreateIpForwardEntry: 拒绝访问。 [status=5 if_index=14]     Thu Dec 03 22:46:07 2009 us=667000 Route addition via IPAPI failed [adaptive]     Thu Dec 03 22:46:07 2009 us=667000 Route addition fallback to route.exe     Thu Dec 03 22:46:07 2009 us=667000 ERROR: Windows route add command failed [adaptive]: returned error code 1

解答:这是在Vista/Win7/Win2003Win2008等系统中没有用管理员权限安装及启动OpenVPN GUI造成的,OpenVPN进程没有相应权限修改系统路由表。解决方法是重新用管理员权限安装OpenVPN,并在启动OpenVPN GUI时右键选择使用管理员权限打开。

问题3:

Mon Feb 1 18:44:52 2010 us=241882 /system/xbin/bb/route add -net 128.0.0.0 netmask 128.0.0.0 gw 10.7.0.1     Mon Feb 1 18:44:52 2010 us=244293 ERROR: Linux route add command failed: could not execute external program     Mon Feb 1 18:44:52 2010 us=244628 Initialization Sequence Completed

解答:这是Android下,Cyanogen Mod和OpenEclair两个ROM,曾经有段时间使用了错误的OpenVPN二进制文件,导致的无法调用busybox添加ip和路由。具体请参考Android上OpenVPN的设置与使用这篇日志,重新安装OpenVPN二进制文件,相应地修复busybox

问题4:

Sat Mar 06 16:31:42 2010 us=107000 There are no TAP-Win32 adapters on this system. You should be able to create a TAP-Win32 adapter by going to Start -> All Programs -> OpenVPN -> Add a new TAP-Win32 virtual ethernet adapter.

解答:这个问题在Windows上发生,原因未知。解决方案如log所述:开始->所有程序->OpenVPN->Add a new TAP-Win32 virtual ethernet adapter。如果是Vista/Win7,用管理员权限执行

四、关于OPENVPN之前相关的教程: OpenVPN软件最新版本更新OpenVPN 2.3_beta1 http://freevpnssh.com/openvpn2-3/ FreeVpnSsh教程:OpenVPN是什么?(OpenVPN如何配置与使用) http://freevpnssh.com/openvpn/

6 53