惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
G
Google Developers Blog
博客园 - 三生石上(FineUI控件)
B
Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hugging Face - Blog
Hugging Face - Blog
C
Check Point Blog
V
V2EX
Vercel News
Vercel News
U
Unit 42
Recent Announcements
Recent Announcements
Last Week in AI
Last Week in AI
J
Java Code Geeks
WordPress大学
WordPress大学
罗磊的独立博客
I
InfoQ
阮一峰的网络日志
阮一峰的网络日志
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
小众软件
小众软件
M
MIT News - Artificial intelligence
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Apple Machine Learning Research
Apple Machine Learning Research
Martin Fowler
Martin Fowler
云风的 BLOG
云风的 BLOG

K.I.S.S

身在 Kimi 的 800 天 写在 Kimi K2 发布之后:再也不仅仅是 ChatBot macOS 按域名切换 DNS 解析 | K.I.S.S 为什么说 GPT 是无损压缩 | K.I.S.S 握着你的手训一个类GPT语言模型 (二) | K.I.S.S 握着你的手训一个类GPT语言模型 (一) | K.I.S.S Rosetta in Linux Virtual Machine on Apple Silicon Fit an Overfit with MegEngine 把 CUPS 扔进 docker 里 ASUS Chromebook Flip | K.I.S.S GPG 与 SSH Agent 转发 使用 dnsmasq 和 ipset 的策略路由 YubiKey 4 简介与配置 | K.I.S.S 定制GH60机械键盘 | K.I.S.S Debian 网络安装内核参数 | K.I.S.S 我的 Vim 配置 | K.I.S.S Libinput 与 Udev | K.I.S.S 给妹子看的 Arch Linux 桌面日常安装 | K.I.S.S 修复GTK3 CSD外观 | K.I.S.S 握着你的手教你画哀女王 | K.I.S.S R.I.P Google Reader | K.I.S.S Richard Stallman仍然是对的 | K.I.S.S Scala 自定义控制结构 | K.I.S.S 入手Wacom Bamboo CTL470 | K.I.S.S 转个型? | K.I.S.S Wish List | K.I.S.S pulseaudio音量问题 | K.I.S.S 入手yubikey,一点小心得 | K.I.S.S 迁移到Octopress | K.I.S.S 自动更新DNSPod记录 | K.I.S.S
iPhone使用OpenVPN | K.I.S.S
2011-02-02 · via K.I.S.S

目田的互联网一直是我的梦想,之前在iPhone上一直使用WFGinterceptor(为保护小站,那三个字母是倒序的),但是不能存cookie是一个问题,而且它依赖于GAE,一个在前途未卜的网络。想来还是VPN或者SSH比较靠谱。

前几日在Twitter上看到有人介绍#lolihosting传送门),貌似很不错的样子,还支持ipv6,这对于"3G"时代的西电人是一个极大地利好。在计算机上测试一下,果然速度不凡,比之前在Linost上买的SSH快多了。

OpenVPN on iPhone

在iPhone上使用OpenVPN需要先越狱,纯果粉到这里可以不用往下看了。//个人感觉iPhone不越狱就是小资货,越狱后就是Unix!

  1. 在cydia里下载下载必要的软件包:{% codeblock %}OpenSSL,OpenSSH,SBSettings,OpenVpn Toggle for SBSettings,Python{% endcodeblock %}
  2. 去lolihosting下载OpenVPN的配置文件,我用的是卖家提供的公网默认配置。传进iPhone里,我放到了/var/mobile/Library/OpenVPN/conf.ovpn

由于Lolihosting使用的是user/pass的认证方式,而iphone openvpn又不支持从文件读取username/passwd,所以每次都要打开终端,从标准输入吧user/pass敲进去,相当麻烦。所谓想偷懒于是有创造,这位大哥就采用了python脚本替代自己的工作。

  1. 安装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
    
  2. 建立文件/var/mobile/Library/OpenVpn/startopenvpn, 并将该文件权限设置为755
      #!/usr/bin/pythonimport pexpect
      import syschild = 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)
    
  3. 修改/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 &
    
  4. 修改/var/mobile/Library/SBSettings/Commands/com.offinf.openvpndown为如下内容:
      #!/bin/sh
      /bin/touch /var/mobile/Library/SBSettings/Toggles/OpenVpn/OFF
      /usr/bin/killall openvpn-iphone
    
  5. 在sbsetting中启用openvpn的管理,就可以通过sbsetting来启动和管理vpn了!

{% img center /images/IMG_0176.png 320 480 %}

DNS配置

连上OpenVPN之后我发现了一个严重的问题(不知道其他人是不是也这样),虽然我本身获得了自由,但DNS污染依然存在,各种网址不能被正确解析。我想到了改DNS,但iOS 只提供WiFi接入点的DNS配置,3G/EDGE的DNS是不让改的。

本着iOS也是Unix的思想,我天真的以为它会在/etc/resolv.conf中,事实证明我错了。其实要改也不难,Apple的一个系统配置工具叫scutil。//由于对Mac OS X系列不太了解,我也不知道它的机制,但用起来大概也挺方便

  1. 进入终端环境,SSH或者MobileTerminal都可以
  2. 取得root权限
  3. # scutil 进入scutil环境,命令提示符是 >
  4. > list 看一下大概都有那些选项,有数个类似于 State:/Network/Service/EBF2E739-C251-4B13-82AC-43187C1228A6/DNS 对应于当前的网络接入点,至少3G/EDGE一个,WiFi一个,Bluetooth一个
  5. > show State:/Network/Service/EBF2E739-C251-4B13-82AC-43187C1228A6/DNS 对于以上几个接入点,看看DNS配置,凭自己的感觉(我承认我不了解iOS,不知道接入点命名规则)找到对应于3G/EDGE的那一条。
  6. > d.init
  7. > get State:/Network/Service/EBF2E739-C251-4B13-82AC-43187C1228A6/DNS
  8. > d.add ServerAddresses * 208.67.222.222 208.67.220.220
  9. > set State:/Network/Service/EBF2E739-C251-4B13-82AC-43187C1228A6/DNS

看看,看到以下画面,恭喜你,有干净的DNS了。

{% img center /images/IMG_0175.png 320 480 %}

现在去https://m.facebook.com/试试,我自由了~

{% img center /images/IMG_0178.png 320 480 %}