曲線救國,解決Mac系統下,Android sdk下載失敗的問題


Mac下翻_牆的問題

話說GFW屏蔽谷歌已經有一陣子了,最近打算在Mac系統下折騰個Android應用,備好了IDE,只欠SDK,無奈下載時因為GFW的緣故,總是失敗,我心痛哉!

由於本人偏愛Mac系統,於是便開始折騰Mac下的翻_牆問題,試過Break Wall,魚擺擺,GoAgent,居然沒有一個好用的!在公司辦公的時候使用的都是Windows系統,需要翻_牆的時候,我都用自(he)由(xie)門這個東東,簡單好使,實乃翻_牆神器也,可惜沒有Mac的版本,這可咋整??????(博客園居然屏蔽\自\由\門這個關鍵字,⊙﹏⊙b汗)

家里2台電腦,一台Mac,一台Windows(我的游戲機),心想,要不Windows翻_牆,然后Mac接入Windows進行翻_牆不就行了。

於是,趕緊打開了Windows下的自(he)由(xie)門:

自(he)由(xie)門在本地開通了8580用作代理翻_牆端口,通過telnet 192.168.1.240 8580測試我windows的端口情況,發現不通,看了自(he)由(xie)門留了一手,監聽ip是127.0.0.1,也就是只能通過127.0.0.1:8580去使用端口。

看來Mac直接訪問Windows的自(he)由(xie)門代理是不行了。

開發Socket代理,解決Mac不能訪問Windows自(he)由(xie)門代理的問題

心想,既然你自(he)由(xie)門只能通過127.0.0.1訪問,那我何不開發個socket代理,對外開放一個端口,然后將端口的數據直接轉發到8580上,這樣應該就能解決Mac不能訪問Windows自(he)由(xie)門代理的問題了。

嗯,思路不錯,那就開搞一個吧,大晚上的時間有限,我就簡單的用Nodejs開發了一個socket代理程序,話說用Nodejs開發網絡應用這是超爽啊,socket代理代碼如下:

var net = require('net');

var server = net.createServer(function(c) { //'connection' listener
  console.log(c.remoteAddress);

  // 暫停socket的數據處理
  c.pause();
  var client = net.connect({host:'127.0.0.1', port: 8580},
      function() { //'connect' listener
    // 連上自(he)由(xie)門代理了,可以去處理socket數據了
    c.resume();
    console.log('connected to proxy');
  });
  // 將過來的數據發給自(he)由(xie)門,然后將自(he)由(xie)門回過來的數據,原封不動的轉發出去
  c.pipe(client);

});

server.listen(8124, function() { //'listening' listener
  console.log('server bound');
});

process.on('uncaughtException', function(err) {
  console.log('Caught exception: ' + err);
});

Socket代理的運行效果如下:

Mac下配置http代理,訪問Windows的自(he)由(xie)門,進行翻_牆

進入Mac,打開Android Sdk Manager,系統菜單中選擇,Preferences,如下如:

然后設置Http代理服務器和端口信息,如下如:

注意:上面的192.168.1.240就是我的Windows電腦的ip,8124端口是socket代理的端口哦,它負責把Mac過來的http請求直接丟給自(he)由(xie)門,這樣就可以翻_牆下載了。

最終解決了Mac下Android SDK下載失敗的問題

看看下載效果吧:

嗯,搞定android sdk了,關機,睡覺覺!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM