标签归档:GFW

iPhone通过VPS和Wi-Fi访问Google的方法

此前介绍过几种 iPhone 和 iPad 等 iOS 设备的 GFW 方法,除了需要在海外有 VPS 主机之外,还需要依赖一台本地的电脑主机来做安全隧道代理服务器。

在 Android 上有很多 App 可以解决依赖另一台主机的问题,经典的诸如 SSH Tunnel(https://play.google.com/store/apps/details?id=org.sshtunnel&hl=zh_CN)这样的 App 就可以在手机上直接建立安全隧道。

而在 iOS 这种权限管理严谨苛刻的系统上,则会相对麻烦一些。经过测试发现了两款勉强可以在手机上自行建立安全隧道的应用 Serverauditor 和 vSSH Lite。

Serverauditor – SSH Shell / Console / Terminal by Crystalnix https://appsto.re/us/K8AUG.i

在 Serverauditor 应用主界面的右上角有个图标可以添加 New Host(新主机),依次输入 Alias(别名),即显示的名称;Username(用户名);Hostname(主机名),也就是海外 VPS 的 IP 地址;冒号后面的数字 22 是端口号,如果你没有修改过,则为默认的 SSH 端口号;Password(密码);最后点击右上角的 Save(保存),完成主机的创建。

接下来点击主界面左上角的图标或者侧滑弹出菜单,选择 Port Forwarding(端口转发),进入端口转发界面后,接着是创建转发规则,依然是点击右上角的图标添加 New Rule(新规则),默认选定了 Local(本地)端口转发,在 Host(主机)项,选择刚才创建的主机,Port From(来源端口)输入 8888,Destination(目标主机)输入 127.0.0.1,Port To(目标端口)也输入 8888,最后点击右上角的 Save(保存),完成端口转发的创建。

轻触则可建立 SSH Tunnel 安全隧道,黑色的“L”字母会变成蓝色,代表连接成功。下次启动应用时,通过左侧的菜单,选择端口转发,会出现此前保存的端口转发信息,在这个地方开启就好。

vSSH Lite by Velestar Private Enterprise https://appsto.re/us/iYe5F.i

在 vSSH Lite 应用的左上角,点击“+”号 Add new(添加)Connection(连接),输入 Name(名称);Protocol(协议)选择 SSH 安全;Host(主机名),自然还是海外 VPS 的 IP 地址;Port(端口)默认为 22;Username(用户名);Password(密码);Autoconnect on startup(自动启动)根据个人意愿随意选择;No shell(-N mode)这个建议选择,建立安全隧道没必要其他交互。

更关键的来了,在 Port forwarding 项,Add port forwarding(添加端口转发),多了一项 Dynamic SOCKS proxying,不过此项我测试建立连接失败,提示主机、端口被占用,不知道是否 Lite 版本限制原因。

因此我们仍然选择 Local port is forwarded to the server(本地端口转发到服务器),在 Source 项目下 Host 输入 127.0.0.1,Port 输入 8888,在 Destination 项目下 Host 也输入 127.0.0.1,Port 输入 8888,其中 Options 打开的话,还可以给其他主机当安全隧道代理服务器,就是手机的 IP 地址和 8888 端口。

最后是 Save(保存),Done(完成),然后在 Booksmarks 轻触则可以建立 SSH Tunnel 安全隧道,终端界面上可以看到连接状态,下次再开启应用时,自动就会建立安全隧道代理服务器了。

关于代理设置,可以手动将服务器设置为:127.0.0.1,端口:8888;但这样每次使用不太方便,建议选择自动,在 URL 处输入一个 pac 文件链接(如: http://ca.lxl.cn/https.pac),其实就是自动代理配置脚本,只是返回本机代理。

function FindProxyForURL(url,host){return “PROXY 127.0.0.1:8888”;}

至此,打开 Safari 浏览器,久违的 Google 终于回来了。不过由于 iOS 有近于洁癖的种种限制,还是没有办法高兴得太早,那就是无论是 vSSH Lite 还是 Serverauditor,都会因为 App 不在前台而被“挂起”,那么辛辛苦苦创建的安全隧道就会在可以使用的数分钟后而无法使用了。

好在这两个应用基本上都会在收到挂起消息前,发送一个消息告诉自己被挂起,此时可以再回到那个界面,安全隧道又会再次有效,是不是觉得很苟且呢?据我对 iOS 的了解,似乎还是有保持长连接的方法,比如我们知道某些云盘应用可以背景自动传输照片,印象中只要定时播放一个没有声音的声音,也就是“震动”,就可以保持应用不被挂起。希望未来的某个版本可以解决这个挂起问题,让我们这些生活在这墙内的群众体验国际互联网。

Android 6.0代理服务器的设置方法

iOS 代理服务器的设置方法无论不同版本 iPhone、iPod touch 还是 iPad 都是大同小异,但 Android 就不完全是那么回事了,因为被很多厂商“深度定制”过,我先针对手里这台 Nexus 5X 来举个例子。

首先通过右上角那个梅花(六角)设置图标进到 WLAN 设置界面,或者通过下拉菜单,出来消息通知栏,在第二页里面就有无线网络设置图标,在图标右下度有个小箭头,点触那里也可以进去设置。

Screenshot_20160420-154112

在“无线和设置”界面,点触进入“WLAN”项目。

Screenshot_20160420-154123

在“WLAN”里,在已经开启并连接 Wi-Fi 的情况下,可以看到第一项热点的名称下方显示“已连接”字样。

Screenshot_20160420-154129

选中的方法是“长按”那项热点的名称,弹出菜单点触“修改网络”。

Screenshot_20160420-154141

这时候弹出来该热点的“高级选项”,点选他,将下方覆盖的画面滑动至上方,在“代理”的选项卡里面,选择“手动”选项。

Screenshot_20160420-154421

代理服务器主机名,如:192.168.31.120,端口号:8888,这是我那台 MacBook 上跑的安全隧道。

Screenshot_20160420-154518

代理自动配置,这个就是 PAC 配置文件了。

Screenshot_20160420-154553

说到自动配置,我希望将来可以把这个方法发扬广大,让大家省心省力,据说已经有个 gfw lists 但我上次发现更新频率不高,不知道是否我搞错了,等我再研究一下,好的话推荐给大家。

iOS代理服务器的设置方法

在 iPhone 和 iPod touch(iPad 界面布局略有不同)上找到“设置”图标,选择“Wi-Fi”项目,如下图所示表示已经连接了“XINEN”的热点 。

1

进到“Wi-Fi”项目后,会看到无线网络清单,我们选取已经建立连接即已经打了勾号的“XINEN”网络进入下一个设置环节。

2

这一步可以看到由 DHCP 动态分配的 IP 地址、子网掩码、路由器和 DNS 等详细信息,而“HTTP 代理”项则处于“关闭”选项卡上。

3

在“HTTP 代理”选项卡上,选择“手动”可以设置代理服务器的 IP 地址和端口号,如我在 MacBook Pro 上通过与 VPS 建立了 SSH TUNNEL 安全隧道的 HTTP 代理器,并且对局域网内开放,我只要写上我的 IP 地址和端口号就可以访问绝大多数海外网站。

4

上次我们讲到进阶,如果采用 Proxy auto-config 则只需指定一个 URL,这个网址其实是一个 JavaScript 写的代理服务器自动配置文件,里面最关键的是 FindProxyForURL 方法(函数),如将 Facebook.com、Google.com、Twitter.com 和 YouTube.com 加进白名单,而其他默认不走代理,则可以自由访问国内国外的网站,不会因为设置了代理服务器导致访问国内的网站时很慢。

5

这个自动方法的方便之处,是即便配置 proxy.pac 了的这台电脑假如没开机,也不会影响对国内网站的影响,不像手动模式,如果设置了,但是电脑没有开机或开户安全隧道代理服务,则无法访问一切网络。

穿墙心得经验点滴

作为一个国内的互联网用户,我长期使用海外的 VPS 主机,通过建立 SSH Tunnel 即「安全隧道」,来安全、稳定、有效并自由的访问全世界的网站。

因为 VPS 属于全功能云主机,拥有独立的 IP 地址、操作系统及超级用户访问权限,所以原则上除非放了敏感内容的网站在上面,比如政治或色情,否则几乎不会被封杀。

我购买过最低折扣后每个月仅2-3美元的海外 VPS,每个月会有那么几次访问不了的情况,一分钱一分货。而较为稳定除了 Amazon 还有国内某 A 开头的云计算平台在北美服务器。

部署基础的 VPS 都是傻瓜式的,比自己安装 Windows 或 Mac OS X 还简单得多,所以这个环节大家可以自己琢磨。

当你购买了属于自己的 VPS 主机后,你会得到属于自己的 IP 地址,默认开启了 SSH 服务,用户名可能是 root,密码就是你自己设置的或随机生成的。

国外的 VPS 有时候还有1个以上的免费 IP 地址,我当时花2、3美元买的,虽然极不稳定但到现在还每年续费,是因为我有3个 IP 地址,这便宜不占实在说不过去。

其实这一步已经可以开始享用 SSH 默认的 SOCKS 代理服务器,有几种途径使用 SOCKS 做代理,如 ssh、PuTTY 或 Entunnel 等。

如果是 Mac OS X 用户,直接使用系统自带的 ssh 命令最简单,打开终端(Terminal),输入命令:ssh -t root@你的IP地址 -p 22 -g -v -f -C -D 1080,然后输入密码就可以建立 SOCKS 代理服务器,输入密码这个步骤其实可以省略,具体教程搜索「ssh-keygen」。

如果是 Windows 用户,建议从 http://www.chiark.greenend.org.uk/~sgtatham/putty/ 下载轻量级的 PuTTY,或只下载 Plink.exe 程序,打开运行(Run),找到 Plink.exe 程序,如:“C:Program FilesPuTTYplink.exe” root@你的IP地址 -pw 密码 -v -N -D 1080,第一次连接会有交互提示,通常选择 Y 就可以了

一般来讲浏览器或系统级的代理服务器设置,绝大多数都会兼容 SOCKS 代理服务器,找到 SOCKS 的选项,地址处输入 127.0.0.1 端口处输入 1080,通常就可以愉快访问互联网了。

不过你都看到这了,我会再推荐进阶的方法,可以去 https://sourceforge.net/projects/tinyproxy/ 下载一个轻量级的代理服务器软件。

可以通过 wget 或 cURL 工具在服务器上直接下载,或者通过 sftp 如 scp、pscp 或 SecureFX 等上传到自己的服务器上。

安装步骤呢,也是比较简单的,通常不三部曲就是五部曲,tar xvfz tinyproxy-1.6.3.tar.gz 把压缩文件解开,cd tinyproxy-1.6.3/ 进入目录,./configure 构造配置,make 编译,最后 make install 安装就可以了,在 root 身份下,执行 tinyproxy 应该就已经在后台运行了,可以通过 netstat -an | grep LISTEN 确认一下是否有 *.8888 或 0.0.0.0:8888 正在监听,如果是,那么你的 HTTPS 代理服务器架设好了。

进阶的 ssh 命令,就是加上 -L 参数,所谓的本地端口转发,即将本地电脑的 8888 端口,通过 SSH 安全隧道,转发到远程服务器的 8888 端口上:
Mac用户:ssh -t root@你的IP地址 -p 22 -g -v -f -C -L 8888:127.0.0.1:8888 -D 1080
Windows用户:plink root@你的IP地址 -pw 密码 -v -N -L 8888:127.0.0.1:8888 -D 1080

这个时候,你除了拥有一个属于自己的 SOCKS 代理服务器,同时还拥有一个属于自己的 HTTP 代理服务器,对付某些兼容性相对较差的软件,也可以轻而易举的解决了。使用方法和 SOCKS 一样简单,只是除了 IP 地址入依然是 127.0.0.1 外,端口则为 8888 了。

其实除了本机可以通过浏览器设置代理器之后自由可以访问互联网,相同局域网下的其他电脑或手机,也可以通过这个安全隧道,只要设置局域网内的 IP 地址和端口就可以。

继续进阶,使用 Google Chrome 的用户有效,可以去 Chrome Web Store 搜索「Proxy Switch」,安装一个代理服务器切换插件,设置 SOCKS、HTTPS 代理后,选择 auto switch 选项,访问 baidu 正常无需代理 ,如访问 google 异常,这个扩展插件就会在浏览器右上角的图标上显示数字,有几个资源加载失败了,可以轻松的加入规则。

回头继续探讨 PAC(Proxy auto-config)所谓的代理自动发现,FindProxyForURL 涉及编写脚本了对普通用户复杂,但是这个方法对电脑辅助手机穿墙会很方便,希望有影响力的人士(如:冯大辉、高春辉)能支持共同维护一份被墙清单,让大家一起受益真正的国际互联网,绝非中国局域网。