Asuran is a configurable web proxy with DNS redirection. Asuran is a race in Stargate Atlantis.
Asuran 是一个使用了 DNS 来实现的 HTTP 透明代理服务,可以配置代理的 URL 及操作。当然用做标准 HTTP 代理也是可以的。
Asuran 使用 golang 实现,使用 miekg godns 实现 DNS 服务。
- Profile for each client
- DNS Server, set a domain to be passed, blocked or redirected to Asuran
- URL Proxy, set a url to be dropped, delayed, cached, or overwritten
- HTTP Proxy, using as standard HTTP proxy, and managing proxy actions
- History, look url's response content
install go 1.2 (can download from go download page), add go's bin directory to PATH
Set environment GOPATH, witch specifies your go projects dir. Then mkdir %GOPATH%\src or $GOPATH/src. (see go code style)
You should have git. Then, For *NIX:
$ go get github.com/miekg/dns
$ go get github.com/benbearchen/asuran
For Windows msys-git(if your gotools can't find git):
$ cd $GOPATH/src
$ git clone https://github.com/miekg/dns.git github.com/miekg/dns
$ git clone https://github.com/benbearchen/asuran.git github.com/benbearchen/asuran
Build asuran.go in asuran's directory. Get a executable file asuran[.exe]. Run asuran need the ./template directory. For *NIX:
$ cd $GOPATH/src/github.com/benbearchen/asuran
$ go build asuran.go
$ ./asuran
For Windows:
\> cd %GOAPTH%\src\github.com\benbearchen\asuran
\> go build asuran.go
\> asuran
Run asuran in other palce? Just copy executable asuran[.exe] and dir ./template.
Asuran needs udp port 53(for DNS server), tcp port 80(for asuran HTTP server), and other HTTP ports. Maybe you should open UDP port 53 and TCP port 80 in firewall.
Run asuran, then you'll get a host of asuran. Visit it for more informations.
- golang, Effective Go
- golang dns by Miek Gieben
- 《Go Web 编程》 by AstaXie (亦是 beego 作者)