穿墙心得经验点滴

作为一个国内的互联网用户,我长期使用海外的 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 涉及编写脚本了对普通用户复杂,但是这个方法对电脑辅助手机穿墙会很方便,希望有影响力的人士(如:冯大辉、高春辉)能支持共同维护一份被墙清单,让大家一起受益真正的国际互联网,绝非中国局域网。

Leave a Reply