苹果移动设备蹿墙可选择的技术很少(不越狱的话)。看到一个零配置的新思路:建一个网站 phuckgfw.com;在DNS上把所有*.phuckgfw.com都解析过来;从HTTP头的HOST里获取实际要访问的服务器。譬如要访问 www.blocked.com,在浏览器里输入www.blocked.com.phuckgfw.com就可以了。比cgi代理效果和体验都好。
还算比较有意思的东西,其实和我以前想的连接ISP的wifi然后通过DNS Tunnel免费上网的办法有点类似——我想的这个DNS Tunnel和网上流传的不同,即使ISP配置了未认证的客户端只能访问指定的DNS服务器的UDP 53端口也没用,直接无视。前些时候无聊的时候我把协议都设计好了,只是后来因为别的事情耽搁了,没有写代码。
回来说正事儿。我把自己的域名icylife.net配置了一个泛解析,然后写一个perl运行在TCP 9090端口,访问http://www.youtube.com.icylife.net:1024就是在访问youtube。这个perl脚本才30多行代码,昨晚趁宝宝睡觉时候写的,不过不支持POST,然后替换返回页面内容中的链接地址时做得比较恶心,肯定是有bug的。如果要真正实用,建议使用nginx+perl来实现。
我应该有1年多没写过代码了,重温了一把coding的感觉。
| 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 | #!/usr/bin/perlusewarnings;usestrict;useLWP::UserAgent;useDomain::PublicSuffix;useAnyEvent::HTTPD;my$httpd= AnyEvent::HTTPD->new (port => 1024);$httpd->reg_cb (        ''=> sub{                my($httpd, $req) = @_;                my$path= $req->url->as_string;                my$host= $req->{hdr}->{host};                $host=~ s/\.icylife.*//g;                print$url,"\n";                my$ua= LWP::UserAgent->new;                my$response= $ua->get( $url);                if($response->is_success)                {                        my$raw_content= $response->content;                        my$suffix= Domain::PublicSuffix->new( );                        my$root= $suffix->get_root_domain( $host);                        $raw_content=~ s/$root/$root\.icylife\.net:1024/g;                        $req->respond( { content => [ $response->header('content-type'), $raw_content] } );                }                else                {                        $req->respond( { content => ['text/html', "<html><body><h1>fuck !</h1></body></html>"] } );                }       },);$httpd->run;from http://web.archive.org/web/20131031124154/http://www.icylife.net/blog/?p=847 | 
 
