用iptables实现G1手机cmwap代理上http网站[转]
2019獨角獸企業重金招聘Python工程師標準>>>
折騰了幾天,總算有點階段性成果:
證實可以用iptables實現通過cmwap的代理上HTTP協議的網站。
首先,android系統的實現是有缺陷的。在接入apn中指定的proxy并不會被系統所用。好似只有瀏覽器會對這個設置有所反應。可以進行普通HTTP的代理瀏覽。而其它應用壓根不理這個設置,我行我素的通過android系統進行域名請求,然后跟沒有代理一樣的進行連接請求。這應該是一個系統缺陷。
為了糾正這個偏差,主要有兩個問題:
1、cmwap接入不支持dns解析。其實如果android壓根不理dns的事情,直接把所有的請求都轉發到apn指定的proxy,就沒事了。但現在,我能想到的方法就只有自己修改/etc/hosts 文件來加入解析。
2、把所有向外的針對80端口的http請求全部轉向到 10.0.0.172:80 用iptables可以實現這個需求。
具體步驟:
1、將system重新掛載為可寫的模式,否則,就無法修改hosts文件
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
2、編輯/etc/hosts文件,當然,如果對vi編輯器不熟,或者懶得看terminal里面那么小的字,也可以用 adb push過去,目前我的hosts文件加了如下的解析:
127.0.0.1??? ??? ??? localhost
64.73.32.135??? ??? ??? north-america.pool.ntp.org
64.233.169.188??? ??? mtalk.google.com
66.249.89.99??? ??? www.google.com
66.249.89.101??? ??? android.clients.google.com
63.216.60.76??? ??? static.rememberthemilk.com
207.242.93.89??? ??? andrd.accu-weather.com??? htc.accuweather.com
74.125.153.95??? ??? ajax.googleapis.com
72.9.41.2??? ??? lyrics.tunewiki.com
這個hosts文件可以實現:google地圖的正常顯示、accuweather天氣軟件的更新、market的使用、tunewiki的歌詞和封面獲取。
3、用iptables實現轉向:
iptables -t nat -A OUTPUT -o rmnet0 -p tcp –dport 80 -j DNAT –to-destination 10.0.0.172:80
這一步每次重啟之后都要重新做一次。沒法子,湊合吧
=================================================
下面的工作:
1、搜集G1各個應用程序聯網所需的域名解析
2、寫個程序來控制轉向的開啟與關閉
3、實現一個簡單的dns server程序,在有wifi連接的時候完成積累的dns解析,cmwap的時候在本地解析域名
4、想法子通過cmwap建立隧道傳遞所有TCP。這一步目前有個問題,如果我通過iptables將ip包的目的地址轉為本地,如何能獲得它原來的目的地址呢?。困擾~~~
原文:http://www.biaji.net/wp/biaji/2009/04/%e7%94%a8iptables%e5%ae%9e%e7%8e%b0g1%e6%89%8b%e6%9c%bacmwap%e4%bb%a3%e7%90%86%e4%b8%8ahttp%e7%bd%91%e7%ab%99/
轉載于:https://my.oschina.net/kevin008/blog/2201
總結
以上是生活随笔為你收集整理的用iptables实现G1手机cmwap代理上http网站[转]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 神舟本本放心率
- 下一篇: 智能硬件的时代,嵌入式是否已经日薄西山