Pages

Thursday, 26 May 2016

利用cow来智能翻墙

自己搭过梯子或者找过梯子的同学应该都知道shadowsocks. shadowsocks确实很好用, 但是有一点比较麻烦.. 那就是pac.. 简单的来说就是我们想在那些原本就能访问的网站直连, 遇到被墙的网站才走shadowsocks. 你问我为什么要这样? 因为快啊.

一个神奇的东西出现了.
是他 , 是他 , 就是他cow, cow -> 读作奶牛, 写作Climb Over the Wall.

Okay, 这玩意儿能做什么, 这东西在爬墙之前会先看一下有没有门可以进去.. 是不是很聪明.

关于这东西的安装和配置, 大家可以直接看项目的README. 这里就简单的说一下.
  • OS X, Linux (x86, ARM): 执行以下命令(也可用于更新)
    curl -L git.io/cow | bash
  • Windows:点击下载
对于OS X, Linux用户, 如果执行那段命令后你无脑按Enter的话, cow会安装在你当前所在的路径, 我是把他放在/usr/local/bin里面的. 当然这个随便.. 只要包含在path里面就都Okay.

配置的话windows用户自行解决..

linux, osx 用户
编辑 ~/.cow/rc

# shadowsocks:
#   proxy = ss://encrypt_method:password@1.2.3.4:8388
找到这句话, 然后该怎么改,怎么改.
(如果是要让在同局域网的手机连接或者直接放在自己的服务器上运行的话, 还需要把listen的地址给改掉.. 我相信会这么做

的人应该也不需要我太详细的说明改成啥..)
然后运行cow就可以了. 如果要在后台运行cow $
这上面做的一切其实是把你的主机变成pac代理服务器. pac的url为http://127.0.0.1:7777(如果是服务器的话, host换成服务器的host)
再然后..
Windows
Internet选项 -> 连接 选项卡 -> 局域网设置(如果是电脑拨号上网, 这里点'设置') -> 使用自动配置脚本 -> 填入PAC地址 -> 

确定。

Mac OS X
系统设置 -> 网络 -> 高级 -> 代理 -> 自动代理配置 -> URL中填入PAC地址 -> 好。


iOS (iPhone/iPad)
打开设置, 选择Wi-Fi
选择当前使用的热点,

拖到最下面的代理设置,选择"自动",填写PAC地址。

Android
安卓5.0以下系统不支持此设置。

That's all。
--------------

Cow是什么?

COW 是一个简化穿墙的 HTTP 代理服务器。它能自动检测被墙网站,仅对这些网站使用二级代理。

Cow有哪些功能?

COW 的设计目标是自动化,理想情况下用户无需关心哪些网站无法访问,可直连网站也不会因为使用二级代理而降低访问速度。
  • 作为 HTTP 代理,可提供给移动设备使用;若部署在国内服务器上,可作为 APN 代理
  • 支持 HTTP, SOCKS5, shadowsocks 和 cow 自身作为二级代理
    • 可使用多个二级代理,支持简单的负载均衡
  • 自动检测网站是否被墙,仅对被墙网站使用二级代理
  • 自动生成包含直连网站的 PAC,访问这些网站时可绕过 COW
    • 内置常见可直连网站,如国内社交、视频、银行、电商等网站(可手工添加)

怎样下载Cow

怎样使用Cow

需要我们编辑的便是 rc.txt 这个文件,使用文本文档或其他编辑器打开后我们需要编辑其中这几个地方.
这是本地监听端口,一般可以不用更改,如果和本地端口冲突了,更改其中的7777就可以了,如果你要在服务器使用Cow,把127.0.0.1改为0.0.0.0。
这里看你用什么代理方式,推荐使用Shadowsocks,把#proxy = ss://****:****@****:****前面的#去掉,把你搜集/部署的SS代理信息按proxy = ss://加密方式:密码@IP:端口填入。保存后关闭rc.txt
这时运行cow-hide.exe(运行后会隐藏窗口)或cow-taskbar.exe(运行后会出现在右下角任务栏)就行了。
接下来打开IE,打开Internet属性切换到连接选项卡点局域网设置
  1. 勾选使用自动配置脚本并填入:http://127.0.0.1:7777/pac
  2. 或者勾选为LAN使用代理服务器......地址栏填127.0.0.1端口处填7777
(如果你改过端口,则相应把7777改为你设置的端口)
这样,你就可以享用快速的科学上网了.
-------------

 COW,拥有自动探测网站是否被屏蔽的功能,COW 的介绍是:
COW 的设计目标是自动化,理想情况下用户无需关心哪些网站无法访问,可直连网站也不会因为使用二级代理而降低访问速度。
COW 是一个 HTTP(S) 代理,能最大程度兼容各种软件(可以设置为程序代理)和设备(设置为系统全局代理)。实际使用上,除了第一次连接需判断网站时会花费一点事件来检测网站是否被墙,其他时候 COW 的连接速度都非常理想,不比 SS 慢多少,COW 也有一些 SS 没有的特性,例如设置多个二级代理,多个二级代理的设定与 Surge 的 Proxy Group 类似,COW 可以在多个二级代理中选择延迟最小的代理进行连接。但目前我所用的设定是固定连接到一台装有 COW 的服务器,当服务器不可用时,再连接到备用的 SS 节点。
使用 COW 的另一个优点在于,不用设置复杂的规则,COW 自己判定网站是否被墙,决定是否使用代理,免去了更新和维护规则的工作。
目前我仍然使用 COW 作为电脑端的代理,速度和稳定性非常满意,还未发现特别明显的缺点.