使用公司代理访问外网的时候,很多网站经常被天国屏蔽掉,很是郁闷,就连Android源码这样的网站也被天国屏蔽了。公司内部做了手脚,即使设置浏览器的HTTP代理为美国总部的代理,公司也自动映射为中国区的代理,这样通过这个代理出去还是以中国主机身份出去。于是想办法看能不能伪装成以美国主机身份访问internet?想到公司在美国的办公室也有代理,于是用SSH的端口映射来解决这个问题(也就是把公司在美国的代理服务器IP+端口映射到本地一台主机的IP上,例如公司在美国的代理服务器的IP地址为A.B.C.D,端口8000,把它映射为本地端口8000上,这样使用本地主机端口8000作为代理,就相当于直接访问美国代理服务器8000端口出去,以它作为代理服务器,就能伪装为美国主机身份)。下面是2个方法:
一、用putty搭建一个SSH tunnel,在putty的连到美国服务器的session里面选择SSH方式,然后在connections的tunnels下面加一个映射,把美国代理服务器的IP:A.B.C.D,端口8000映射为本地localhost 8000,然后再本地IE或Firefox的代理设置设置代理为127.0.0.1:8000,同时用putty打开一个session连接到美国服务器上即可。
二、在Linux主机上用:ssh -L:8000:A.B.C.D:8000 chai@A.B.C.D,然后把Firefox的代理设置为127.0.0.1:8000既可。
2. 在Linux主机上下载Android 源码(从网上转来的方法)
目前Android的源代码服务器被黑,暂停使用,下面是可以从其他mirrors的地方在公司内部下载android 源码的方法。
以CentOS 6.0做为开发主机。
一、在内网设置代理(先用上面的方法设置好本地端口代理,这样出去就已美国IP出去),
在CentOS上安装connect-proxy软件,下载connect-proxy-1.93-2.0.el5.i386.rpm,
用户名与密码都是
具体下载目录在 /pub/2011/09/27/CentOS 6中几个下载Android源码的小技巧/connect-proxy-1.93-2.0.el5.i386.rpm/
然后
rpm -i connect-proxy-1.93-2.0.el5.i386.rpm
cd /etc/usr/bin
ln -s connect ./connect-proxy
然后再在home 目录bin/下建立下面几个脚本(这里的Home是/root/):
1.
#!/bin/sh
# /root/bin/socks-gw.sh
# This script connects to a HTTP proxy using connect_proxy
connect -H 127.0.0.1:8000 $@
2.
#!/bin/sh
# /root/bin/socks-ssh.sh
ssh -o ProxyCommand="/root/bin/socks-gw.sh %h %p" $@
3.
#!/bin/sh
# /root/bin/proxy.sh
# http proxy setting
export HTTP_PROXY=http://127.0.0.1:8000
export http_proxy=$HTTP_PROXY
# set git to use ssh over http proxy
export GIT_SSH="/root/bin/socks-ssh.sh"
export GIT_PROXY_COMMAND="/root/bin/socks-gw.sh"
二、执行[. /root/bin/proxy.sh],注意. 和/root/中间有个空格。
三、下载android源码,因为kernel.org被黑掉了,连带android.git.kernel.org也无法访问,下面可以通过mirrors地址下载 (先装好curl 相关阅读:Linux下用curlftpfs挂载FTP服务器 [CentOS] 与 Linux curl使用简单介绍 ),
下载repo并设置环境变量
$ curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo"> ~/bin/repo
$ chmod a+x ~/bin/repo
$ PATH=~/bin:$PATH
下载android源码
$ mkdir source2.3
$cd source2.3
$ repo init -u git://codeaurora.org/platform/manifest.git -b gingerbread
$ repo sync
既可。