var hosts = {};
hosts['pactest.client.hola.org'] = pactest_cb;
function pactest_cb(url, host)
{
if (url.match(/.*\/client_cgi\/\?localpac=1(&stamp=873398280)?$/))
return 'PROXY client.hola.org';
return 'DIRECT';
}
hosts['bbc.co.uk'] = bbc_cb;
hosts['bbcfmhds.vo.llnwd.net'] = bbc_cb;
function bbc_cb(url, host)
{
var index = url.indexOf('?');
if (index==-1)
index = url.length;
var ext = url.substr(index-5, 5),
ext_index = ext.lastIndexOf('.');
if (ext_index>=0)
ext = ext.substr(ext_index+1);
else
ext = '';
if (ext!='' && ext.match(/^(gif|png|jpg|mp3|js|css|mp4|flv|svf|json)$/))
return DIRECT;
var direct = [/^sa.bbc.co.uk$/];
for (var i=0; i<direct.length; i++)
{
if (host.match(direct[i]))
return 'DIRECT';
}
return 'PROXY 127.0.0.1:6857; DIRECT';
}
hosts['facebook.com'] = facebook_cb;
hosts['facebook.net'] = facebook_cb;
hosts['fbcdn.com'] = facebook_cb;
hosts['fbcdn.net'] = facebook_cb;
hosts['fbstatic-a.akamaihd.net'] = facebook_cb;
hosts['fbcdn-dragon-a.akamaihd.net'] = facebook_cb;
function facebook_cb(url, host)
{
return 'PROXY 127.0.0.1:6857; DIRECT';
}
hosts['google.com'] = gmail_cb;
hosts['gstatic.com'] = gmail_cb;
hosts['googleusercontent.com'] = gmail_cb;
function gmail_cb(url, host)
{
return 'PROXY 127.0.0.1:6857; DIRECT';
}
hosts['google.com'] = google_cb;
hosts['gstatic.com'] = google_cb;
hosts['googleusercontent.com'] = google_cb;
function google_cb(url, host)
{
return 'PROXY 127.0.0.1:6857; DIRECT';
}
hosts['hulu.com'] = hulu_cb;
function hulu_cb(url, host)
{
var index = url.indexOf('?');
if (index==-1)
index = url.length;
var ext = url.substr(index-5, 5),
ext_index = ext.lastIndexOf('.');
if (ext_index>=0)
ext = ext.substr(ext_index+1);
else
ext = '';
if (ext!='' && ext.match(/^(gif|png|jpg|mp3|js|css|mp4|flv|svf|json)$/))
return DIRECT;
var direct = [/^.*urlcheck.hulu.com$/, /^.*r.hulu.com$/, /^.*p.hulu.com$/, /^.*assets.hulu.com$/, /^.*ll.a.hulu.com$/, /^.*ads.hulu.com$/];
for (var i=0; i<direct.length; i++)
{
if (host.match(direct[i]))
return 'DIRECT';
}
return 'PROXY 127.0.0.1:6857; DIRECT';
}
hosts['itv.com'] = itv_cb;
function itv_cb(url, host)
{
var index = url.indexOf('?');
if (index==-1)
index = url.length;
var ext = url.substr(index-5, 5),
ext_index = ext.lastIndexOf('.');
if (ext_index>=0)
ext = ext.substr(ext_index+1);
else
ext = '';
if (ext!='' && ext.match(/^(gif|png|jpg|mp3|js|css|mp4|flv|svf|json)$/))
return DIRECT;
return 'PROXY 127.0.0.1:6857; DIRECT';
}
hosts['netflix.com'] = netflix_cb;
function netflix_cb(url, host)
{
var index = url.indexOf('?');
if (index==-1)
index = url.length;
var ext = url.substr(index-5, 5),
ext_index = ext.lastIndexOf('.');
if (ext_index>=0)
ext = ext.substr(ext_index+1);
else
ext = '';
if (ext!='' && ext.match(/^(gif|png|jpg|mp3|js|css|mp4|flv|svf|json)$/))
return DIRECT;
var direct = [/^.*contactus.netflix.com$/, /^.*blog.netflix.com$/, /^.*nordicsblog.netflix.com$/];
for (var i=0; i<direct.length; i++)
{
if (host.match(direct[i]))
return 'DIRECT';
}
return 'PROXY 127.0.0.1:6857; DIRECT';
}
hosts['pandora.com'] = pandora_cb;
function pandora_cb(url, host)
{
var index = url.indexOf('?');
if (index==-1)
index = url.length;
var ext = url.substr(index-5, 5),
ext_index = ext.lastIndexOf('.');
if (ext_index>=0)
ext = ext.substr(ext_index+1);
else
ext = '';
if (ext!='' && ext.match(/^(gif|png|jpg|mp3|js|css|mp4|flv|svf|json)$/))
return DIRECT;
var direct = [/^.*stats.pandora.com$/, /^.*blog.pandora.com$/, /^audio.*.pandora.com$/, /^const.*.pandora.com$/];
for (var i=0; i<direct.length; i++)
{
if (host.match(direct[i]))
return 'DIRECT';
}
return 'PROXY 127.0.0.1:6857; DIRECT';
}
hosts['twitter.com'] = twitter_cb;
hosts['twimg.com'] = twitter_cb;
hosts['twimg0-a.akamaihd.net'] = twitter_cb;
function twitter_cb(url, host)
{
return 'PROXY 127.0.0.1:6857; DIRECT';
}
function FindProxyForURL(url, host)
{
var index = -1;
while (true)
{
var func = hosts[host.substr(index+1)];
if (func)
return func(url, host);
if ((index = host.indexOf('.', index+1))==-1)
break;
}
return 'DIRECT';
}
2012年12月28日星期五
2012年12月24日星期一
彻底屏蔽优酷广告
不久之前网络上有一个通过修改Hosts来屏蔽各大视频网站广告的方法,谁想到优酷嗅觉灵敏,很快推出了反屏蔽的策略——即便不看广告也会有30秒的黑屏等待。正所谓“道高一尺,魔高一丈”,广大电工又研究出了反“反屏蔽”的方法……
具体操作也很简单,跟着我Step by Step即可~
Windows XP:
Windows 7:
然后使用记事本新建一个文件,将文件名修改为“static.youku.com”(即扩展名为“.com”),这样Flash就无法正常读写SharedObjects,从而无法判断是否屏蔽广告了。
当然用户也有用户的“道理”,诸如广告质量低劣,广告音量大且不可静音,广告时间长且不可跳过(30秒广告15秒视频不是没有见过)……
这样说来似乎是不可调和的矛盾了,折中一下吧,广告拍得让广大网民喜闻乐见一些,再学学YouTube的广告投递方式,相信用户还是可以买账的。再说网站没了收入,用户不就没得看了吗?这样的后果相信谁也不会希望看到的。
具体操作也很简单,跟着我Step by Step即可~
第一步:屏蔽Hosts
在操作系统的Hosts文件(C:\Windows\System32\drivers\etc\hosts)中加入如下内容:
#Youku
127.0.0.1 atm.youku.com
127.0.0.1 fvid.atm.youku.com
127.0.0.1 html.atm.youku.com
127.0.0.1 valb.atm.youku.com
127.0.0.1 valc.atm.youku.com
127.0.0.1 valf.atm.youku.com
127.0.0.1 valo.atm.youku.com
127.0.0.1 valp.atm.youku.com
127.0.0.1 vid.atm.youku.com
127.0.0.1 walp.atm.youku.com
127.0.0.1 lstat.youku.com
127.0.0.1 speed.lstat.youku.com
127.0.0.1 static.lstat.youku.com
127.0.0.1 urchin.lstat.youku.com
127.0.0.1 stat.youku.com
127.0.0.1 atm.youku.com
127.0.0.1 fvid.atm.youku.com
127.0.0.1 html.atm.youku.com
127.0.0.1 valb.atm.youku.com
127.0.0.1 valc.atm.youku.com
127.0.0.1 valf.atm.youku.com
127.0.0.1 valo.atm.youku.com
127.0.0.1 valp.atm.youku.com
127.0.0.1 vid.atm.youku.com
127.0.0.1 walp.atm.youku.com
127.0.0.1 lstat.youku.com
127.0.0.1 speed.lstat.youku.com
127.0.0.1 static.lstat.youku.com
127.0.0.1 urchin.lstat.youku.com
127.0.0.1 stat.youku.com
第二步:屏蔽Flash SharedObjects
首先找到Flash的SharedObjects存储路径,删除“static.youku.com”这个目录:Windows XP:
C:\Documents and Settings\Administrator\Application Data\Macromedia\Flash Player\#SharedObjects\[随机数]\static.youku.com
C:\Users\Administrator\AppData\Roaming\Macromedia\Flash Player\#SharedObjects\[随机数]\static.youku.com
屏蔽广告是与非
用户屏蔽网站广告“自古有之”,从Firefox的Adblock Plus,到修改Hosts,再到360安全卫士类似软件的附加功能,可谓手段越来越恨,效果越来越好。于是乎网站就不干了,原本就是免费为用户提供内 容,靠着广告收入回收成本(盈利与否另说)。用户都做了广告屏蔽,这样一来仅有的广告收入也减少了。更不用说视频网站昂贵的带宽成本……当然用户也有用户的“道理”,诸如广告质量低劣,广告音量大且不可静音,广告时间长且不可跳过(30秒广告15秒视频不是没有见过)……
这样说来似乎是不可调和的矛盾了,折中一下吧,广告拍得让广大网民喜闻乐见一些,再学学YouTube的广告投递方式,相信用户还是可以买账的。再说网站没了收入,用户不就没得看了吗?这样的后果相信谁也不会希望看到的。
2012年12月21日星期五
如何使用obfsproxy搭配shadowsocks-nodejs安全高效的访问互联网
由于WordPress的特性,两个 – 符号可能会变成全角的 —— 符号,实际操作时请注意替换。
本教程将指导您如何使用shadowsocks-nodejs作为代理服务器,以及使用obfsproxy作为伪装躲避检查。
本教程的服务端基于CentOS 6.2进行,客户端为Windows 7,由于本人使用的CentOS并非初始(干净的)环境,可能会有误差,同时在其他操作系统上的操作可能会略有差异,请注意按照实际情况更改配置。
------以下是服务端的配置------
首先搭建shadowsocks-nodejs。
shadowsocks-nodejs是基于Node.js开发的高效网页代理,可以非常方便的在客户端建立一个SOCKS5代理,帮助用户通过VPS或物理计算机访问网络。
用您喜欢的方式(SSH或任何其他方式)登录您的VPS或服务器的终端控制台,进入一个目录,比如/tmp/,然后从 https://github.com/clowwindy/shadowsocks-nodejs.git 下载shadowsocks-nodejs。
cd /tmp
git clone https://github.com/clowwindy/shadowsocks-nodejs.git
提示:如果提示没有git命令,请运行 yum install git (CentOS)或 yum install git (Ubuntu)。
下载成功后,进入shadowsocks-nodejs目录:
cd shadowsocks-nodejs
用ls命令,可以看到许多文件,我们先修改配置以符合我们的要求,用编辑器打开config.json文件:
vi config.json
我们可以看到5行内容(忽略花括号),按下Insert按钮开始修改。第一行(server)可以不用修改,这是提供给客户端的。第二行 (server_port)是服务器的监听端口,通常推荐换一个端口以防被发现,请务必要记住,在本例中,设置为12345端口。第三行 (local_port)也是客户端使用的,暂时不用修改,第四行(password)是密码,通常推荐修改默认密码增加安全性,修改好后务必要记住。第 五行(timeout)是超时设置,通常不用修改。
更换好端口和密码后,请务必要记下这些信息,因为稍后配置会用到它。按下ESC,输入 :wq 存盘退出。
现在回到终端控制台上,我们可以将这些内容移动到一个合适的目录,比如,我把整个shadowsocks-nodejs放到了/var目录下:
mkdir /var/shadowsocks
mv /tmp/shadowsocks-nodejs/* /var/shadowsocks
我们需要记住这个路径(/var/shadowsocks),因为稍后会用到。
现在,需要下载node.js的运行环境,截至到本文发布时,node.js的版本是0.8.16,下载地址是: http://nodejs.org/dist/v0.8.16/node-v0.8.16-linux-x86.tar.gz ,如果该链接已经失效,或者您的Linux是AMD64的,请访问 http://nodejs.org/download/ 获得最新或对应的二进制包。
下载命令为:
cd /tmp/
wget http://nodejs.org/dist/v0.8.16/node-v0.8.16-darwin-x86.tar.gz
稍等片刻,下载完了,我们下回来一个压缩包,现在需要解压:
tar zfvx node-v0.8.16-darwin-x86.tar.gz
解压完毕后用ls命令查看,会有一个node-开头的目录,进入这个目录:
cd node-v0.8.16-darwin-x86
然后进入 bin 目录
cd bin
用 ls 命令看一下,是否能找到一个 node 的文件,如果能,那么将这个文件复制到 /usr/bin/ 目录下:
mv node /usr/bin/
复制完毕后,说明现在已经完成了配置 shadowsocks-nodejs 的服务端环境,还需要将其加入开机自动启动的 rc.local 里,先运行以下命令:
vi /etc/rc.local
回车后,会进入编辑器,按下Instre按钮,然后新起一行,添加(包括括号):
(node /var/shadowsocks/server.js >/dev/null 2>&1 &)
注意,我的server.js文件(shadowsocks-nodejs解压出来的)在之前移动到了 /var/shadowsocks/ 目录下,如果您修改了路径,那么请按照实际情况对路径进行修改。
然后按下ESC按钮,并输入 :wq 存盘退出。
现在,shadowsocks-nodejs的搭建已经完成了,只需要重启VPS或计算机即可立即启动,但是由于shadowsocks-nodejs存在一些特征,容易被不可抗力捕获并屏蔽,因此推荐再利用obfsproxy进行二次封装。
obfsproxy的主要目的是将各种网络通信封装为一种混杂通信--数据包经过加密,并且参杂了无用信息,使得不可抗力难以侦测到有效流量,从而降低被屏蔽的可能性。
obfsproxy需要较多的组件,首先先准备开发环境:
CentOS: yum install autoconf autotools-dev gcc git pkg-config libtool libevent-2.0-5 libevent-dev libevent-openssl-2.0-5 libssl-dev
Ubuntu: apt-get install autoconf autotools-dev gcc git pkg-config libtool libevent-2.0-5 libevent-dev libevent-openssl-2.0-5 libssl-dev
注意,CentOS会缺少许多包,或者版本不对,对于这种包只能一个个的编译。比如版本不对的 libevent ,通过Google这个名字可以发现官方网站是 http://libevent.org/ ,而官方网站也提供了下载链接: https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz ,因此需要下载回来,然后进行编译,下面的部分教程是将如何编译 libevent ,如果已经具备该包,或者您是对Linux比较了解的用户,请跳过。
------如何编译libevent------
首先,从 http://libevent.org/ 获得最新版本的下载地址,截至到本文发布时,版本是 2.0.21-stable ,我们使用wget命令下载:
wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
然后解压:
tar zxvf libevent-2.0.21-stable.tar.gz
解压结束后,进入 libevent-2.0.21-stable 目录
cd libevent-2.0.21-stable
注意,这个地方有点不一样,如果您的操作系统是CentOS,并且已经安装了1.x版本的libevent,那么可能在obfsproxy的编译过程中找不到,所以需要编译到其他目录,比如/home/tord/event2/目录。
./configure –prefix=/home/tord/event2
make
make install
编译结束后,路径会到 libevent 会安装到/home/tord/event2目录,然后设置变量:
export libevent_CFLAGS=-I/home/tord/event2/include
export libevent_LIBS=”-L/home/tord/event2/lib -levent”
export LD_LIBRARY_PATH=/home/tord/event2/lib/
现在,就可以开始编译obfsproxy了。
-------如何编译libevent结束------
开发环境下载完后,从官方源获取obfsproxy的源码:
cd /tmp/
git clone https://git.torproject.org/obfsproxy.git
然后运行ls命令看看是否有一个obfsproxy的目录,如果有,则继续:
cd obfsproxy
./autogen.sh
./configure
make
make install
提示,如果缺少软件包,那么必须使用yum install或apt-get install 命令安装,或者Google缺少的软件包的名字,重新编译安装后,再尝试编译。
在编译完成后, obfsproxy 会存放在 /usr/local/bin/ 目录中。
由于我么之前指定了libevent的路径,因此还需要将libevent的库文件拷贝到公共目录中:
cp /home/tord/event2/lib/libevent-2.0.so.5 /usr/lib/
最后,重新打开 rc.local 文件:
vi /etc/rc.local
然后按下Insert按钮,进入编辑模式,新起一行,然后增加(包括括号):
(/usr/local/bin/obfsproxy obfs2 –dest=127.0.0.1:12345 server 0.0.0.0:54321 >/dev/null 2>&1 &)
注意,上图中的 12345 是在shadowsocks-nodejs的config.json文件中配置的端口,而 54321 是 obfsproxy 负责接收和发送混杂数据的端口,推荐按照实际情况为obfsproxy设置一个新端口。
确认无误后,按下ESC键,并输入 :wq 存盘退出。
现在,只需要重启VPS或计算机即可让其生效。
提示:对于CentOS 6.2,可能还需要修改 /etc/sysconfig/iptables 文件允许obfsproxy的端口通过。
而对于没有端口防火墙的用户,推荐使用iptalbes屏蔽shadowsocks-nodejs的端口(本例中为TCP 12345),以防止被外界扫描到。
------以上就是服务器端的配置------
下面,开始客户端的配置(Windows)。
首先,从Tor官方网站 https://www.torproject.org/projects/obfsproxy.html.en 下载包含Obfsproxy的Tor包,当然,我们只需要用里面的Obfsproxy。
截至本文发布时,Windows的包的下载地址是 https://www.torproject.org/dist/torbrowser/tor-obfsproxy-browser-2.4.6-alpha-2_en-US.exe ,请按照实际情况下载。
下载回来是一个7-Zip自解压压缩包,解压后会生成四个目录和一个可执行文件,我们将App目录里的东西复制到一个合适的位置(比如 D:\FQ\ )。
访问 http://nodejs.org/download/ ,下载Windows的程序包,截至到本文发布时,x86的下载包是 http://nodejs.org/dist/v0.8.16/node.exe ,AMD64的下载包是: http://nodejs.org/dist/v0.8.16/x64/node.exe ,直接将下载回来的文件放入之前所指定的目录即可( D:\FQ\ )。
访问 https://github.com/clowwindy/shadowsocks-nodejs ,点击界面上的ZIP按钮,将压缩包下载回来解压,将shadowsocks-nodejs-master文件夹中的内容也移动到之前设定的目录( D:\FQ\ )。
用记事本打开config.json文件,将password行修改为之前所指定的密码,server_port和server_ip无需修改。
注意:如果1080端口冲突,请更换一个端口,并在稍后修改浏览器的代理服务器的地方设置为您所指定的端口。
提示:如果您有整理癖,请按照您的习惯放置,不过在稍后的批处理中,需要按照指定路径进进行访问。
进入该目录,右击空白区域,新建文本文件,并设定一个名字,然后双击打开,输入:
START node.exe local.js
START obfsproxy obfs2 –dest=111.111.111:54321 client 127.0.0.1:8388
EXIT
注意:上面的111.111.111.111是您的VPS或服务器的IP地址,54321是您的服务器上的obfsproxy端口,如果您修改了,请按照实际情况填写!
然后保存并退出,并将新建的文本文件的扩展名修改为.BAT。
提示:如果看不到扩展名,请打开我的电脑(或计算机),点击工具菜单(如果看不见,先按一下Alt按钮),点击文件夹选项,转到查看选项卡,并取消“隐藏已知文件类型的扩展名”,然后确定,就能看到刚才的文本文件末尾多出来了 .txt ,将其修改为 .bat 即可。
双击所建议的FQ.BAT,会自动打开两个新窗口,这说明启动成功。
最后,打开您的浏览器,配置代理为SOCKS5,IP 127.0.0.1 ,端口1080即可(或者您指定的端口)。
以上就是本教程的全部部分。
补充1:如果不在乎速度,而在乎安全,可以加上 –shared-secret=PASSWORD 参数,其中PASSWORD是设定的obfsproxy协商密码,比如:
服务器:
(/usr/local/bin/obfsproxy obfs2 –dest=127.0.0.1:12345 –shared-secret=PASSWORD server 0.0.0.0:54321 >/dev/null 2>&1 &)
客户端:
obfsproxy obfs2 –dest=111.111.111:54321 –shared-secret=PASSWORD client 127.0.0.1:8388
特别感谢:
@jimmy_xu_wrk
@radaiming
@fdb713
参考资料:
https://github.com/clowwindy/shadowsocks-nodejs/wiki
http://nodejs.org/api/
https://www.torproject.org/projects/obfsproxy-instructions.html.en
https://trac.torproject.org/projects/tor/ticket/5009#comment:17
http://www.wangafu.net/~nickm/libevent-2.0/doxygen/html/
http://www.cnblogs.com/bluesky23/archive/2012/11/30/2796251.html
2012年12月11日星期二
用DD-WRT搭建私有计费WiFi热点教程
转载自:http://blog.csdn.net/heiheihoho/article/details/6995227
本人住在高密度小区,使用电信4M宽带ADSL网络,平时使用的比较有限,附近有好几家出租房,我考虑架设无线网络(Wlan)向周围的住户有偿共享网络。
传统的方法,可以使用专业的无线与宽带计费网关设备和软件,比如MikroTik等。不过,对于个人架设WiFi热点来说,这些方案太过昂贵,安装设置也非常有难度。
经本人研究,发现了一个非常简便快捷的方案,就是使用DD-WRT与Wiwiz HotSpot Builder,只需要一个普通的家用无线路由器就可以解决。
本人使用的无线路由器是Linksys WRT54GS (v3)。开始之前,需要先将无线路由器刷第三方固件DD-WRT。Wiwiz对DD-WRT版本功能有一定要求,经本人实验,dd- wrt.v24_nokaid_generic.bin这个版本最为理想,下载地址是:http://www.dd-wrt.com/routerdb/de/download/Linksys/WRT54GS/v3.0/dd-wrt.v24_nokaid_generic.bin/1962
关于刷DD-WRT的具体过程,网上有很多文章,这里就略过了。
然后,用浏览器访问DD-WRT的Web管理界面(默认地址是http://192.168.1.1,默认用户名是root,密码是admin),设置好WAN连接(本人使用的是ADSL的PPPoE拨号方式)与无线设置,即建立一个开放的WLAN(无线局域网),并使任何人都可以自由连接到这个AP并通过它访问互联网。如下图:



接下来,去www.wiwiz.com注册一个用户并验证账户。在Wiwiz Web面板的操作界面创建一个热点,如下图:



……

要设置好认证方式、费率等,还有认证页面的基本外观,可以自定义图片、颜色等。注意一定要记下HotSpot ID。
然后再设置一个公告信息(热点用户在通过认证后将会看到这个信息)。如下图:

接下来,需要在无线路由器里安装配置Wiwiz的客户端程序(Wiwiz HotSpot Builder Utility)。
进入DD-WRT的Web管理界面做一些基本设置。选择“管理”标签页。
启用JFFS2支持,见下图。

然后按下“应用”按钮。
然后,开始安装和设置Wiwiz的客户端。用telnet登录到DD-WRT的命令行模式。
开始菜单 –> 运行 –> 输入“cmd”-> 按“确定”。然后输入telnet 192.168.1.1,按回车。
输入root,默认密码是admin(注意,输入密码时屏幕不显示)。
然后依次输入以下命令:
cd; wget http://dl.wiwiz.com/hsbuilder-util-latest-DD-WRT.tar.gz
cd /jffs; tar -zxf /tmp/root/hsbuilder-util-latest-DD-WRT.tar.gz
/jffs/usr/local/hsbuilder/hsbuilder_setup4dd-wrt.sh -dest /jffs setup
然后系统会提示你输入一些设置信息。一般,只有前两项需要你指定,即Hotspot ID和User Name。Hotspot ID是之前记下的Hotspot ID,而User Name就是你在Wiwiz的用户名。注意,这两个一定要填写正确!
其他的直接打回车就可以了。然后稍等一会,如果没有错误信息,安装就完成了。如下图所示:

测试一下,找台电脑或者手机,用Wifi连到这台无线路由器对应的热点,打开浏览器,随便输入一个http网址,如果能看到认证页面就可以了。
最后,展示一下我的热点页面。

到现在为止,我的热点稳定运行了四个月了,已经有多个固定用户,累计赚了三百多元。效果还是很不错的。


本人住在高密度小区,使用电信4M宽带ADSL网络,平时使用的比较有限,附近有好几家出租房,我考虑架设无线网络(Wlan)向周围的住户有偿共享网络。
传统的方法,可以使用专业的无线与宽带计费网关设备和软件,比如MikroTik等。不过,对于个人架设WiFi热点来说,这些方案太过昂贵,安装设置也非常有难度。
经本人研究,发现了一个非常简便快捷的方案,就是使用DD-WRT与Wiwiz HotSpot Builder,只需要一个普通的家用无线路由器就可以解决。
本人使用的无线路由器是Linksys WRT54GS (v3)。开始之前,需要先将无线路由器刷第三方固件DD-WRT。Wiwiz对DD-WRT版本功能有一定要求,经本人实验,dd- wrt.v24_nokaid_generic.bin这个版本最为理想,下载地址是:http://www.dd-wrt.com/routerdb/de/download/Linksys/WRT54GS/v3.0/dd-wrt.v24_nokaid_generic.bin/1962
关于刷DD-WRT的具体过程,网上有很多文章,这里就略过了。
然后,用浏览器访问DD-WRT的Web管理界面(默认地址是http://192.168.1.1,默认用户名是root,密码是admin),设置好WAN连接(本人使用的是ADSL的PPPoE拨号方式)与无线设置,即建立一个开放的WLAN(无线局域网),并使任何人都可以自由连接到这个AP并通过它访问互联网。如下图:
接下来,去www.wiwiz.com注册一个用户并验证账户。在Wiwiz Web面板的操作界面创建一个热点,如下图:
……
要设置好认证方式、费率等,还有认证页面的基本外观,可以自定义图片、颜色等。注意一定要记下HotSpot ID。
然后再设置一个公告信息(热点用户在通过认证后将会看到这个信息)。如下图:
接下来,需要在无线路由器里安装配置Wiwiz的客户端程序(Wiwiz HotSpot Builder Utility)。
进入DD-WRT的Web管理界面做一些基本设置。选择“管理”标签页。
启用JFFS2支持,见下图。
然后按下“应用”按钮。
然后,开始安装和设置Wiwiz的客户端。用telnet登录到DD-WRT的命令行模式。
开始菜单 –> 运行 –> 输入“cmd”-> 按“确定”。然后输入telnet 192.168.1.1,按回车。
输入root,默认密码是admin(注意,输入密码时屏幕不显示)。
然后依次输入以下命令:
cd; wget http://dl.wiwiz.com/hsbuilder-util-latest-DD-WRT.tar.gz
cd /jffs; tar -zxf /tmp/root/hsbuilder-util-latest-DD-WRT.tar.gz
/jffs/usr/local/hsbuilder/hsbuilder_setup4dd-wrt.sh -dest /jffs setup
然后系统会提示你输入一些设置信息。一般,只有前两项需要你指定,即Hotspot ID和User Name。Hotspot ID是之前记下的Hotspot ID,而User Name就是你在Wiwiz的用户名。注意,这两个一定要填写正确!
其他的直接打回车就可以了。然后稍等一会,如果没有错误信息,安装就完成了。如下图所示:
测试一下,找台电脑或者手机,用Wifi连到这台无线路由器对应的热点,打开浏览器,随便输入一个http网址,如果能看到认证页面就可以了。
最后,展示一下我的热点页面。
到现在为止,我的热点稳定运行了四个月了,已经有多个固定用户,累计赚了三百多元。效果还是很不错的。
2012年11月10日星期六
Mark's Blog: NetFlix US content
NetFlix US content
http://support.unblock-us.com/customer/portal/articles/291530
DNS1 - 208.122.23.22
DNS2 - 208.122.23.23
OLDDNS1 - 184.106.242.193
OLDDNS2 - 67.23.7.56
Thought it might be helpful to some people...
This doesn't work for me any longer but I heard this might:
http://playmo.tv/setup/playstation-3/
Primary DNS: 190.14.36.90
Secondary DNS: 109.123.111.24
or this:
http://currentdns.unotelly.com/
23.21.182.24
206.214.214.28
2012年11月4日星期日
孤独是你的必修课
转自: http://yue.fm/zmff9

但以这样的一句话作为开头,看高木直子的《一个人住第五年》的时候还在国内,那时觉得那样的生活根本不可能发生在我身上,连吃饭都要人陪着的我无法忍受一 个人吃饭的感觉。所以后来,有很长的一段时间里我都没能适应一个人吃饭,一个人旅行,现在想想其实也没什么,这个世界运转速度那么快,没有人会在意你是不 是一个人。以至于后来一个朋友问我是不是也得了社交恐惧症,我笑笑,其实不是,只是自己慢慢地变得懒了,懒得去经营一份感情,至于朋友,有那么几个就足够 了,有些人天天在一起,也不见得是朋友。
好像这样久了,倒是会忘记开始遇到的困难,渐渐地变成自己生活的旁观者,看着生活平静地流淌。都说人是慢慢成长的,其实不是,人是瞬间长大的,就像 是突然间沉淀一般,突然不会谈恋爱了或者说不想谈恋爱了,一个人生活单一却也不会觉得无聊,即便很多时候还是会迷茫却也不会觉得烦躁了。
去年的今天我在不一样的城市,背着不一样的书包,留着不一样的发型,走着不一样的路,想着不一样的事情,有着不一样的心思,爱着不一样的人。谁说改变需要十年呢。
2.
身边的牛人倒是不少,像是神抵一样的存在,我也只是羡慕想着反正自己也不会变成那样的人,直到有一天一个学长跟我聊起来,才知道原来他也有看不进去 书的时候也有写论文写到想撞墙的时候,我们都忘了他们是用怎么样的一个代价才换取来了这样的一个人生。他说,如果你想要去实现梦想,孤独是你的必修课。如 果不能沉下心来,就没有办法去实现它,因为那绝对不是一件容易的事情,孤独能让你更坚强,你必须找到自己的生活节奏。
有一个朋友喜欢每天喝一点酒,看一部电影然后准时睡觉;住在旁边的英国人神出鬼没有的时候早上才睡有的时候天刚黑就睡了;隔壁楼的一个男生每天天不亮就起来跑步,往往那个时候我才刚打算睡。
最近迷上一个人到处走,算不上旅行只是周围的城市走一遭,倒也不会花上太多时间准备,提起包就走了。我不会带上相机只是有兴致了拿出手机拍一拍,音 乐倒是我走到哪里都不能丢的东西,只有音乐,能让看似漫长的等待变成曼妙的旅程,似乎自己跟整个世界都没有关系,只想当一片没有名字的云,徜徉在不知道名 字的风景里。
正如上面说的,曾经无法想象一个人吃饭的感觉,同样的,我也不会去想象一个人去坐公交车是什么样的感觉。谁知道没过多久我就习惯了一个人坐车去学校,我离学校比较远所以每次上车的时候还没有多少人,坐最后的几排。有的时候看着窗外发呆,什么都想却又不知道自己在想什么。
我们都会找到自己的生活节奏,然后沉溺其中无法自拔。
3.
很长一段时间里我都没有去书店,觉得那种“每个星期读一本书”对于我来讲是太遥远的东西。直到有一天我陪朋友去书店,他是一个买书就不会停的人,我 也就跟着买了几本。回到家里看微博人人又觉得心里空拉拉的,索性就拿起书来看,也是在那一天我才发现,其实每个星期看一本书没那么难,那天我一下子把书看 完,才觉得这样子的生活是充实的。
要么读书,要么旅行,身体和灵魂,必须有一个在路上。
我告诉自己现实容不得你拖延,拖延只会让我变得更焦虑而已,所以刚开始的时候我规定自己每天提早上床半小时,看上几十页书,很快就变成习惯了。有的 时候我不得不感叹如果真的去做一件事情的话,那么这件事情没有那么难。当你真的想要做一件事情的时候,整个世界都会来协助你,就是这种感觉。
一个骑过川藏线的朋友说,只要出发,就能到达,你不出发,就哪里也去不了。如果你不能沉下心来,就什么也做不到。出发永远是最有意义的事,去做就是了。一本书买了不看只是几张纸,公开课下了不看也只是一堆数据,不去看就没有任何意义,反而徒增焦虑,行动力才是最关键的。
4.
你也许也是这样,当你渴望找个人交谈的时候,你们却没有谈什么.于是发现有些事情是不能告诉别人的,有些事情是不必告诉别人的,有些事情是根本没有办法告诉别人的,而有些事情即使告诉了别人,你也会马上后悔。那么最好的办法就是静下来,真正能平静自己的只有自己。
没有人能免得了孤独,与其逃避它不如面对它。孤独并不是一件那么糟糕的事情,与嘈杂相比,一个人生活倒显得自得地多,倒也可以变成一种享受。或许至 少需要那么一段时间,几年或几个月,一个人生活,不然怎么能找到自己的节奏知道自己想要什么。这是属于你自己的东西,是你的一部分,你听音乐时,坐地铁 时,一个人走在马路上时,它就会流淌出来,让我觉得这个世界似乎在以另外一种形式存在着,我能够清晰地听到自己。
我们都生活在一个不那么如意的世界,当乌云密布我们就摇曳,但阳光总有一天会到来,等阳光照到你的时候,记得开出自己的花就行了,那个你与生俱来的 梦想。有的时候梦想很远,有的时候梦想很近,但它总会实现的。我想一个人最好的样子就是平静一点,哪怕一个人生活,穿越一个又一个城市,走过一个又一条街 道,仰望一片又一片天空,见证一次又一次别离。
即便世界与我为敌,只要心还透明,就能折射希望。
生活不可能像你想象得那么好,但也不会像你想象得那么糟。我觉得人的脆弱和坚强都超乎自己的想象。有时,我可能脆弱得一句话就泪流满面,有时,也发现自己咬着牙走了很长的路。——莫泊桑
但以这样的一句话作为开头,看高木直子的《一个人住第五年》的时候还在国内,那时觉得那样的生活根本不可能发生在我身上,连吃饭都要人陪着的我无法忍受一 个人吃饭的感觉。所以后来,有很长的一段时间里我都没能适应一个人吃饭,一个人旅行,现在想想其实也没什么,这个世界运转速度那么快,没有人会在意你是不 是一个人。以至于后来一个朋友问我是不是也得了社交恐惧症,我笑笑,其实不是,只是自己慢慢地变得懒了,懒得去经营一份感情,至于朋友,有那么几个就足够 了,有些人天天在一起,也不见得是朋友。
好像这样久了,倒是会忘记开始遇到的困难,渐渐地变成自己生活的旁观者,看着生活平静地流淌。都说人是慢慢成长的,其实不是,人是瞬间长大的,就像 是突然间沉淀一般,突然不会谈恋爱了或者说不想谈恋爱了,一个人生活单一却也不会觉得无聊,即便很多时候还是会迷茫却也不会觉得烦躁了。
去年的今天我在不一样的城市,背着不一样的书包,留着不一样的发型,走着不一样的路,想着不一样的事情,有着不一样的心思,爱着不一样的人。谁说改变需要十年呢。
2.
身边的牛人倒是不少,像是神抵一样的存在,我也只是羡慕想着反正自己也不会变成那样的人,直到有一天一个学长跟我聊起来,才知道原来他也有看不进去 书的时候也有写论文写到想撞墙的时候,我们都忘了他们是用怎么样的一个代价才换取来了这样的一个人生。他说,如果你想要去实现梦想,孤独是你的必修课。如 果不能沉下心来,就没有办法去实现它,因为那绝对不是一件容易的事情,孤独能让你更坚强,你必须找到自己的生活节奏。
有一个朋友喜欢每天喝一点酒,看一部电影然后准时睡觉;住在旁边的英国人神出鬼没有的时候早上才睡有的时候天刚黑就睡了;隔壁楼的一个男生每天天不亮就起来跑步,往往那个时候我才刚打算睡。
最近迷上一个人到处走,算不上旅行只是周围的城市走一遭,倒也不会花上太多时间准备,提起包就走了。我不会带上相机只是有兴致了拿出手机拍一拍,音 乐倒是我走到哪里都不能丢的东西,只有音乐,能让看似漫长的等待变成曼妙的旅程,似乎自己跟整个世界都没有关系,只想当一片没有名字的云,徜徉在不知道名 字的风景里。
正如上面说的,曾经无法想象一个人吃饭的感觉,同样的,我也不会去想象一个人去坐公交车是什么样的感觉。谁知道没过多久我就习惯了一个人坐车去学校,我离学校比较远所以每次上车的时候还没有多少人,坐最后的几排。有的时候看着窗外发呆,什么都想却又不知道自己在想什么。
我们都会找到自己的生活节奏,然后沉溺其中无法自拔。
3.
很长一段时间里我都没有去书店,觉得那种“每个星期读一本书”对于我来讲是太遥远的东西。直到有一天我陪朋友去书店,他是一个买书就不会停的人,我 也就跟着买了几本。回到家里看微博人人又觉得心里空拉拉的,索性就拿起书来看,也是在那一天我才发现,其实每个星期看一本书没那么难,那天我一下子把书看 完,才觉得这样子的生活是充实的。
要么读书,要么旅行,身体和灵魂,必须有一个在路上。
我告诉自己现实容不得你拖延,拖延只会让我变得更焦虑而已,所以刚开始的时候我规定自己每天提早上床半小时,看上几十页书,很快就变成习惯了。有的 时候我不得不感叹如果真的去做一件事情的话,那么这件事情没有那么难。当你真的想要做一件事情的时候,整个世界都会来协助你,就是这种感觉。
一个骑过川藏线的朋友说,只要出发,就能到达,你不出发,就哪里也去不了。如果你不能沉下心来,就什么也做不到。出发永远是最有意义的事,去做就是了。一本书买了不看只是几张纸,公开课下了不看也只是一堆数据,不去看就没有任何意义,反而徒增焦虑,行动力才是最关键的。
4.
你也许也是这样,当你渴望找个人交谈的时候,你们却没有谈什么.于是发现有些事情是不能告诉别人的,有些事情是不必告诉别人的,有些事情是根本没有办法告诉别人的,而有些事情即使告诉了别人,你也会马上后悔。那么最好的办法就是静下来,真正能平静自己的只有自己。
没有人能免得了孤独,与其逃避它不如面对它。孤独并不是一件那么糟糕的事情,与嘈杂相比,一个人生活倒显得自得地多,倒也可以变成一种享受。或许至 少需要那么一段时间,几年或几个月,一个人生活,不然怎么能找到自己的节奏知道自己想要什么。这是属于你自己的东西,是你的一部分,你听音乐时,坐地铁 时,一个人走在马路上时,它就会流淌出来,让我觉得这个世界似乎在以另外一种形式存在着,我能够清晰地听到自己。
我们都生活在一个不那么如意的世界,当乌云密布我们就摇曳,但阳光总有一天会到来,等阳光照到你的时候,记得开出自己的花就行了,那个你与生俱来的 梦想。有的时候梦想很远,有的时候梦想很近,但它总会实现的。我想一个人最好的样子就是平静一点,哪怕一个人生活,穿越一个又一个城市,走过一个又一条街 道,仰望一片又一片天空,见证一次又一次别离。
即便世界与我为敌,只要心还透明,就能折射希望。
2012年10月26日星期五
GAEPROXY 恢复滑动解锁
在使用GAEPROXY时,需要导入证书,这样會強制用密碼解鎖手機,只要把證書直接拷貝到etc/security/cacerts目錄下面就可以了. 这样就可以既使用GAEPROXY,又可以使用滑动解锁. 如果你和我一样,导入证书后发现每次都需要解锁密码的话, 在导入证书那个页面 有一个"清除证书",点一下那个就可以清除掉证书,然后就可以恢复滑动解锁了.
订阅:
博文 (Atom)
WorldTimeServer Clock
New York |