Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 配置Android支持GAE Proxy

配置Android支持GAE Proxy

編輯:關於Android編程

這兩天想這在Android上翻牆,誰不想科學上網啊!於是倒弄一個叫做GAE Proxy的代理軟件。

         該軟件提供一鍵代理,但前提是機器必須root和支持iptables,如果不支持iptables,只能用GAE 自帶的浏覽器翻出去,機器本身的軟件(比如浏覽器,Youtube客戶端)都不能翻牆。我們的機器已經root了,也支持iptables命令,但機器本身軟件就是翻不了。

         找找問題,試了我的神機HUAWEI 8650,可以,是正常的。又試了棒子的9250,也沒問題。人家的都可以,為啥我們的產品不行呢。

         用lsmod看了一下,神機和9250裡面一個模塊都沒有,也就是說全部都編譯進內核了,而我們的機器,大部分非核心都編譯成模塊的,在啟動的時候在加載。難道模塊真的會有問題?? iptables確實也是編譯為模塊的。

         看了GAE官網上,想要自由地翻,iptables應至少支持DNAT或REDIRECT中的一種。好吧,咱也加載。加載完後,還是不行。

          這個時候郁悶了,把iptables相關的 全部編譯進內核,竟然神奇的可以了。說明肯定是模塊不全。

         logcat看一下這個GAE Proxy在啟動的時候都干了什麼事情,這個代理跟squid差不多,都是借助iptables轉發。

D/GAEProxy( 1274): /data/data/org.gaeproxy/iptables -t nat -A OUTPUT -p tcp -d 10.0.0.0/8 -j RETURN
D/GAEProxy( 1274): /data/data/org.gaeproxy/iptables -t nat -A OUTPUT -p tcp -d 172.16.0.0/12 -j RETURN
D/GAEProxy( 1274): /data/data/org.gaeproxy/iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to 8123
D/GAEProxy( 1274): /data/data/org.gaeproxy/iptables -t nat -A OUTPUT -p tcp --dport 443 -j REDIRECT --to 8124

           然後再用 iptables -L -t nat看一下,是最後出了問題,在做端口重定向的時候失敗了。提示

運行iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to 8123

iptables: No chain/target/match by that name

           看了iptables指南中寫道:

這說明你要用的鏈或 target、或 match 不存在,原因有很多,但最普遍的
是你拼錯了名字。當你想使用一個不可用的模塊時也會產生這種錯誤。模塊之所
以不可用,可能是因為你沒有裝載正確的模塊,或者內核裡不包含那個模塊,或
者是 iptables 自動裝載模塊時失敗了。通常,你不止應該考慮上面提到的所有
解決辦法,還要考慮規則中 target 的拼寫錯誤,或者其他的原因。
          拼寫錯誤不可能,那就是沒有裝載正確模塊。可以,這NAT,REDIRECT 我都加載了啊,用lsmod看都是有的。

          真的找不出還缺什麼模塊,失敗了又不提示缺哪個模塊,手機上都是編譯進內核的,也無法比較。

          這個時候突然想到我的PC也是剛配了翻牆,而且都正常,lsmod看一下,比較不同。終於發現了,缺少xt_tcpudp模塊!

modprobe xt_tcpudp

然後再試,果然通了。


           總結:想無拘束地翻牆,需要三個模塊(這些模塊可能依賴其他模塊)

modprobe iptable_nat

modprobe ipt_REDIRECT

modprobe xt_tcpudp


這樣就可以了。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved