OpenVPN on iPhone
来源:互联网 发布:vscode 图标插件 编辑:程序博客网 时间:2024/06/07 21:12
OpenVPN on iPhone
在iPhone上使用OpenVPN需要先越狱,纯果粉到这里可以不用往下看了//个人感觉iPhone不越狱就是小资货,越狱后就是Unix!
- 在cydia里下载下载必要的软件包:
OpenSSL,OpenSSH,SBSettings,OpenVpn Toggle for SBSettings,Python
- 去lolihosting下载OpenVPN的配置文件,我用的是卖家提供的公网默认配置。传进iPhone里,我放到了/var/mobile/Library/OpenVPN/conf.ovpn
由于Lolihosting使用的是user/pass的认证方式,而iphone openvpn又不支持从文件读取username/passwd,所以每次都要打开终端,从标准输入吧user/pass敲进去,相当麻烦。所谓想偷懒于是有创造,这位大哥就采用了python脚本替代自己的工作。
- 安装python的pexpect模块。去http://sourceforge.net/projects/pexpect/files/下载pexpect-2.3.tar.gz至iPhone中,切换至root用户,执行
tar zxf pexpect-2.3.tar.gz cd pexpect-2.3 python setup.py install
- 建立文件/var/mobile/Library/OpenVpn/startopenvpn, 并将该文件权限设置为755
#!/usr/bin/python import pexpect import sys child = pexpect.spawn('/usr/bin/openvpn-iphone --config /var/mobile/Library/OpenVpn/conf.ovpn') child.logfile = sys.stdout child.expect('Enter Auth Username:') child.sendline('你的用户名') child.expect('Enter Auth Password:') child.sendline('你的密码') child.expect(pexpect.EOF, timeout=None)
- 修改/var/mobile/Library/SBSettings/Commands/com.offinf.openvpnup
#!/bin/sh [[ -f /var/mobile/Library/SBSettings/Toggles/OpenVpn/OFF ]] && /bin/rm /var/mobile/Library/SBSettings/Toggles/OpenVpn/OFF cd /var/mobile/Library/OpenVpn/ /var/mobile/Library/OpenVpn/startopenvpn >/var/mobile/Library/OpenVpn/ovpn.log &
- 修改/var/mobile/Library/SBSettings/Commands/com.offinf.openvpndown为如下内容:
#!/bin/sh /bin/touch /var/mobile/Library/SBSettings/Toggles/OpenVpn/OFF /usr/bin/killall openvpn-iphone
- 在sbsetting中启用openvpn的管理,就可以通过sbsetting来启动和管理vpn了!
DNS配置
连上OpenVPN之后我发现了一个严重的问题(不知道其他人是不是也这样),虽然我本身获得了自由,但DNS污染依然存在,各种网址不能被正确解析。我想到了改DNS,但iOS 只提供WiFi接入点的DNS配置,3G/EDGE的DNS是不让改的。
本着iOS也是Unix的思想,我天真的以为它会在/etc/resolv.conf中,事实证明我错了。其实要改也不难,Apple的一个系统配置工具叫scutil//由于对Mac OS X系列不太了解,我也不知道它的机制,但用起来大概也挺方便
- 进入终端环境,SSH或者MobileTerminal都可以
- 取得root权限
- # scutil 进入scutil环境,命令提示符是 >
- > list 看一下大概都有那些选项,有数个类似于
State:/Network/Service/EBF2E739-C251-4B13-82AC-43187C1228A6/DNS
对应于当前的网络接入点,至少3G/EDGE一个,WiFi一个,Bluetooth一个 - > show State:/Network/Service/EBF2E739-C251-4B13-82AC-43187C1228A6/DNS
对于以上几个接入点,看看DNS配置,凭自己的感觉(我承认我不了解iOS,不知道接入点命名规则)找到对应于3G/EDGE的那一条。 - > d.init
- > get State:/Network/Service/EBF2E739-C251-4B13-82AC-43187C1228A6/DNS
- > d.add ServerAddresses * 208.67.222.222 208.67.220.220
- > set State:/Network/Service/EBF2E739-C251-4B13-82AC-43187C1228A6/DNS
- OpenVPN on iPhone
- iPhone使用OpenVPN
- OpenVPN on CentOS 4
- Configure OpenVPN on Ubuntu
- OpenVPN On CentOS5 配置
- iPhone/iPod/iPad连接上OpenVPN
- A good explaination on OpenVPN Routing
- Install OpenVPN Server on CentOS 5.4
- Setting up bridged OpenVPN on Freebsd
- OpenVPN
- OpenVPN
- openVPN
- openVPN
- OpenVpn
- OpenVPN
- openvpn
- openvpn
- gdb on iPhone
- ant-build的详细用法,对你一定有用
- IBM 面试经验分享
- C和C++中的typedef的作用
- The type XXX cannot be resolved. It is indirectly referenced from required .class files错误.....
- 面向接口编程例子,我觉得很不错
- OpenVPN on iPhone
- 编程知识(日常积累)
- Android 学习历程之三 Android模拟器 命令行方式 安装和删除apk文件方法
- Maven依赖下载不到问题解决
- GridView,DataList控件获取当前行的行号
- lucene使用PhraseQuery设置slop进行短语查询
- 入职东纶
- ASP.NET的内置对象介绍
- 析构函数(√)、纯虚析构函数(√)、虚构造函数(X)