標籤:
Android手機改hosts需要root許可權,實在不想root,自己搭個 DNS Server ,把指定的域解析到特定IP。
MaraDNS Server的搭建:
http://maradns.samiam.org/download.html 下載 maradns-2-0-11-win32.zip 並解壓準備兩台電腦(一台電腦能搞定嗎?如何設定IP?),一台作為權威 DNS Server (authoritative DNS server)解析指定的域,一台作為遞迴 DNS Server(recursive DNS server)解析普通域。 一、權威 DNS Server的配置:http://maradns.samiam.org/tutorial/authoritative.html1. 運行 mkSecretTxt.exe,產生secret.txt(隨機字串);2. 修改mararc檔案如下: #綁定本機IP地址,例如 10.0.7.52
ipv4_bind_addresses = "127.0.0.1,
10.0.7.52"
timestamp_type = 2
random_seed_file = "secret.txt"
hide_disclaimer = "YES"
#佈建網域名字典
csv2 = {}
#設定 test.cn 域的IP儲存在 db.test.cn.txt 檔案中,注意字典的key以“.”結尾csv2["test.cn."] = "db.test.cn.txt" 3.建立並修改 db.test.cn.txt 檔案如下:foo.% 10.100.15.31 ~ 則foo.test.cn域解析到 10.100.15.31 4. 運行 run_maradns.bat此時可以直接將手機的 DNS 設定為 10.0.7.52,但只有test.cn可以正常解析,其他域無法解析。 二、遞迴 DNS Server 的配置:http://maradns.samiam.org/tutorial/recursive.html1. 切換到第二台機器,解壓 maradns-2-0-11-win32.zip 後進入 Deadwood-3-2-07-win32 目錄,運行 mkSecretTxt.exe,產生secret.txt(隨機字串);2. 管理員權限運行 install.bat ,安裝 Deadwood.exe 為系統服務;3. 修改 dwood3rc.txt 配置如下: #root_servers字典root_servers = {}#其他域查詢 10.0.0.1 內網已搭建好的DNS,或使用ISP的DNSroot_servers["."]="10.0.0.1"
#test.cn域查詢 10.0.7.52
root_servers["test.cn."]="
10.0.7.52" # The IP this program has
#綁定本機 IP 位址
bind_address="127.0.0.1,
10.0.0.111"
# The IPs allowed to connect and use the cache# 可以訪問此伺服器的 IP 範圍, IP/netmask 格式,這裡的16表示掩碼的二進位前16位都是1,即 11111111 11111111 00000000 00000000
recursive_acl = "127.0.0.1/16, 10.0.0.1/16" # on an internal network, uncomment the following line:filter_rfc1918 = 04. 重啟 Deadwood 服務 手機串連 Wi-Fi ,設定 DNS 為
10.0.0.111 (遞迴 DNS Server 的 IP)即可。如果仍有問題,請檢查 Windows 的防火牆設定。 MaraDNS早期版本(1.4及之前)支援遞迴 DNS Server,2.0版本之後刪除了此功能而改用 Deadwood.原因:http://maradns.samiam.org/tutorial/update.html MaraDNS 2.0 is MaraDNS 1.4 with all recursive support removed from the maradns daemon and done with the separate daemon Deadwood. Because of this:MaraDNS can no longer serve both authoritative and recursive records on the same IP.While Deadwood uses a compatible rc file format, there are enough differences between a mararc file (MaraDNS‘ configuration file) and a dwood3rc file (Deadwood‘s configuration file) that a conversion has to be done by hand.所以 2.0 版本中 mararc 檔案中不會有 upstream_servers, recursive_acl 的設定,網上搜尋到的配置可能是舊版本。 另外,可以使用zip包中的 askmara.exe 測試 DNS Server。http://maradns.samiam.org/tutorial/man.askmara.html
Windows下MaraDNS伺服器搭建