科学上网之Cubieboard跑Goagent

科学上网的软件用过很多,Goagent是目前我用过最稳定的,最重要的是完全免费。每天打开电脑第一件事情就是双击蓝黄相间的小图标,然后就再也不用担心网页被重置了。也曾尝试过在Tomato Router上运行Goagent让接入网络的所有设备都能科学上网,但接入设备增多或网络流量太大的时候就变的不稳定,太影响科学上网的心情了。偶然看到DNSMasQ,你可以把它当成轻量级的DNS服务器。引用Wiki的描述:

Dnsmasq是一个开源的轻量级DNS转发和DHCP、TFTP服务器,使用C语言编写。Dnsmasq针对家庭局域网等小型局域网设计,资源占用低,易于配置。支持的平台包括Debian、Fedora、 Smoothwall、IP-Cop、floppyfw、Firebox、LEAF、Freesco, fli4l、CoyoteLinux 及 Android等,并且在dd-wrt、 openwrt路由器系统中也有使用。

介绍了DNSMasQ这么多还不知道它与Goagent的关系吧。我们都听说过DNS污染,有的杀毒软件描述为DNS投毒攻击,就是干扰我们从DNS服务器获取正确的IP地址。DNSMasQ能够截获DNS请求,并自带静态解析和DSN转发功能。因此我们可以用DNSMasQ给自己的DNS投毒,这么说可能有点儿不恰当,但是目的就是利用DNSMasQ帮我们摆脱来自ISP的DNS投毒攻击,最终达到正确解析IP的目的。DNSMasQ支持WPAD,是PAC的扩展应用,因此我们只要在局域网搭建一台Goagent服务器(当然选择节能设备了)再配置DNSMasQ自动发现代理就可以实现局域网内支持WPAD协议的设备科学上网了。

首先,在Cubieboard上安装Linux操作系统,这步骤不详细介绍了,每个人手头的设备不同,当然Raspberry PI搭载Raspbian也可以,实际上我就是用Cubieboard搭载Raspbian Linux系统来跑Goagent。配置gae的过程可以看Goagent 说明,这里主要介绍在Raspbian系统中安装配置Goagent 

1.先将Goagent客户端上传到Raspbian root的目录:/root
2.安装Goagent依赖库

$ sudo apt-get install python-openssl
$ sudo apt-get install libnss3-tools
$ sudo apt-get install python-crypto

3.安装证书
查看证书命令

$ certutil -d sql:$HOME/.pki/nssdb -L

如果提示:certutil: function failed: security library: bad database. 说明要重建证书

mkdir -p ~/.pki/nssdb
chmod 700 ~/.pki/nssdb
certutil -d sql:$HOME/.pki/nssdb -N
certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n GoAgent -i ~/root/goagent目录/CA.crt

安装成功后再次运行查看证书的命令列表中会出现“Goagent”证书
4.配置、启动Goagent
修改proxy.ini Goagent端口监听IP,全局科学上网嘛要监听所有

[listen] 
ip = 0.0.0.0

在proxy.ini里[ipv4/hosts]段落下去掉 “;https?://www\.youtube\.com/watch = google_hk” 一行的 “;” 解决YouTube “上传者已禁止在您的国家/地区播放此视频”
5.启动Goagent

$ sudo python ~/root/goagent目录/proxy.py

6.设置开机自动运行Goagent,将Goagent作为服务来启动
$vim /etc/init.d/goagent

#! /bin/sh
# /etc/init.d/goagent

# Carry out specific functions when asked to by the system
case "$1" in
  start)
    echo "Starting goagent script"
    export LD_LIBRARY_PATH=/root/goagent/local
    python /root/goagent/local/proxy.py &
    ;;
  stop)
    echo "Stopping goagent script"
    killall python
    ;;
  *)
    echo "Usage: /etc/init.d/goagent {start|stop}"
    exit 1
    ;;
esac

exit 0

$sudo chmod 755 goagent
$sudo update-rc.d goagent defaults
到这里Goagent服务器就成功运行在Cubieboard上了,尝试telnet 8086和8087端口,检查状态。

然后,登录到Tomato路由器中设置DNSMasQ,在高级设置的DHCP / DNS 服务器选项中,看图设置即可

dhcp-option=252,http://192.168.1.39:8086/proxy.pac

DNSmasq

最后,还有一项重要设置,弃用ISP的DNS,自己手工指定
dns

客户端,确保客户端是 DHCP 获取 IP 地址的
Windows:Internet Explorer 属性 -> 连接 -> 自动检测设置(此设置可能已经默认开启,也就是说 Windows 系统零配置)
Mac OS X:设置 -> 网络 -> 选定网络(比如以太网或者 Wi-Fi)-> 高级 -> 代理 -> 自动发现代理 -> 勾上

从此就可以方便快捷的科学上网了!

cubieboard

《科学上网之Cubieboard跑Goagent》有3个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注