利用Amazon的EC2 + SSH自建安全代理翻墙教程


EC2 + SSH 翻墙 1/3— Amazon AWS 帐户注册
Amazon的EC2 服务相当于远程虚拟主机。新注册用户一年内有一定的免费使用额度,本文正是基于此来穷折腾的。
注册地址:http://aws.amazon.com/
如图所示:

按照提示一步步操作的即可。
注意事项:
  1. 注册中需要提供信用卡信息。Amazon会从卡上扣一美元,再即时退回,以验证信用卡。所以你会收到消费提示,但实际账单上并不会有支出。
  2. 注册中要提供可直接联系到你的电话或手机信息,国家代码+86最好一并写上。Amazon会即刻电话通知你验证码,需要填写到申请表格中。
原文http://www.qishansun.info/?p=8
========
EC2 + SSH 翻墙 2/3— EC2 instance 建立
回到aws首页:http://aws.amazon.com/
进入AWS控制台,如下图:


用注册好的帐户登录,切换到EC2 tab页:


EC2 instance是有地区之分的。对天朝用户来说,选择Asia Pacific(Tokyo)连接速度应该会快一些,仅是猜测。
点击“Launch Instance”, 来初始化一个该区域的EC2实例。


然后进入到 Request Instances Wizard界面。注意Windows server 不在免费计划里,所以这里选择了大行其道的Ubuntu系统,点选到Community AMIs页面,在Viewing中选择Free Tier eligible就会滤出所有包括在免费计划里的instance,每一行后面的黄色五角星即标记此意。这里选择的AMI ID是ami-32d36633,ubuntu 10.4 server。点击“select”,

然后到了这个页面,注意,Instance Type一定要选Micro这个,因为只有这个免费。Number of Instance选1个就够了,Availability Zone默认即可。点击下面的Continue。


Detial页面上,使用默认即可。需提一下的是Shutdown Behavior这项,有两个备选, stop和terminate。区别在于Amazon会自动回收已经terminate的instance。如果你的Instance由于运行错误等其他 原因shutdown—-相当于关机—-这时,如果这里选的是terminate,那么,Amazon会删除掉该instance,也就是从你的 Console就看不到该instance了,虽然不是即刻发生的。如果这里选stop,那么instance只是停止运行而已,会继续保留在你的 Console里,你还可以重新启动运行它。


下一页, 设置Key value信息,默认已有一个Name项,可输入Name的value值,作为该Instance的名字。也可以直接跳过,之后还可以再修改。
下一页,是设置Key pair 信息。首次使用,需要创建新的Key Pair。输入Key名,可任意选择,然后点击“Create & Download your key pair”。这时你会下载到一个 Key名.pem 文件。该文件是你以后登录该Instance的认证凭据,而且仅此一份,如果你要从多台电脑登录,请复制到各电脑上。


下一个页面,是选防火墙设置,保持默认选项即可。
最后一页,选择Launch,则该Instance就最终正式运行起来了。
这时,从Dashboard上,选到相应地区,就可以看到已经在运行的Instance。

几点提示:
  1. 从Dashboard上选中Instance,可进一步看到该Instance的具体信息。其中Public DNS就是该instance的网络标识,可以通过 ssh yourUserName@yourPublicDNS 的方式连接到该Instance。
  2. Pulbic DNS 太长很难记。一个好办法是使用Elastic IP,它就相当于一个静态IP。
  3. 在Dashboard 的 Elastic IP 页面上,可以创建一个Elastic IP, 然后马上“Associate Address”到上面创建的Instance上。注意马上。从此,该Instance就有了一个从公网可以直接连接的IP地址。
  4. Amazon 提供的 Elastic IP 可以免费申请,也可以免费使用仅当该IP没有被空置的时候。也就是说,IP申请到后,如果马上被附加到一个Instance上,那么一切都是免费的。相 反,如果申请到的IP一直空放在那儿没用,那么每一个IP, Amazon每小时收你$0.01,直到这个IP被释放掉,或者被附加到Instance上面去。
  5. 上面所有用到的Amazon的资源,对于新注册用户一年内都是免费的。另外,如果想继续免费使用,还需遵守每个月的免费额度,具体可参考 http://aws.amazon.com/free . 这些额度,对普通流量的用户来说是足够的。当然你也可以即时查询Account Activity (AWS Management Console -> Account -> Account Activity)来监控你的使用量。
原文http://www.qishansun.info/?p=9
========
EC2 + SSH 翻墙 3/3— SSH 翻墙设置
Amazon EC2上的Instance已经运行起来,就相当于你已经有了一台在墙外的电脑。接下来要做的,就是让你的本地电脑与这个远程的Instance通信,来帮你连通墙外的世界。主要通过两步来实现,SSH配置,浏览器配置。
对于SSH配置,要区分Windows用户和Linux用户。

Wondows用户SSH配置
下载 putty.exe 和 puttygen.exe两个文件。
将之前建立Instance时下载下来的pem文件用 puttygen.exe 转成ppk文件。具体如下:打开 puttygen.exe,选择load, 导入之前的pem文件 (可能需要把文件过滤选成ALL才能看到)。正常情况下,会提示导入成功。然后点击“Save private key”,输入文件名,即可保存为ppk文件。
打开putty.exe,
  • 在Session页面,Host Name处输入 ubuntu@yourPublicNDS-or-yourElasticIP,Port用22, Protocl 选择SSH。
  • 到Connection -> SSH -> Auth 页面, 在“Private key file for authentication”处读取之前的 ppk 文件的路径。
  • 到Connection -> SSH -> Tunnels 页面,Source port处输入3128,选择Dynamic类型,点击Add。
  • 回到Session页面,Saved Sessions处输入一个任意标识名,点击Save,将所有配置保存下来。下次再用时,直接Load这个标识名即可。最后,点击Open,即可看到从远程EC2 Instance返回的登录成功信息。
Linux用户SSH配置
将相应的pem保存到 .ssh 文件夹。在该文件内建立config文件,输入以下配置内容:
Host aws
HostName xxx.xxx.xxx.xxx
User ubuntu
IdentityFile ~/.ssh/your-key.pem
CompressionLevel 6
DynamicForward localhost:3128
Host 为设定一个名字给该连接,可任意选,此处用aws;
HostName 这里输入附加到该Instance的Elastic IP, 或者 public DNS 的连接,这些都可从Dashboard instance 信息里面看到;
User 因为之前EC2上建立的是ubuntu AMI,其默认的登录用户名为 ubuntu;
IdentityFile 需输入你的 pem 文件的路径;
DynamicForward 默认用localhost:3128,在后面的浏览器设置中要用到。
到此ssh配置完成。从temnial输入:
ssh aws
即可看到从远程EC2 Instance返回的登录成功信息。
通用的浏览器配置
前面是 Windows 用户和 Linux用户各自的SSH配置。接下来是通用的浏览器配置。
这里以Firefox为例。Preference -> Advanced -> Network -> Settings, 选择手动代理设置,SOCKS Host 中输入 localhost, 端口号3128 , SOCKS vs。OK 确认。浏览器配置完毕。

这里针对 Firefox 再附加一点内容:
发现用同样的代理配置,其他浏览器正常工作,偏偏就 Firefox 不能登录 Facebook 和 Twitter,而除这两个外,其他墙外网站却都可以正常浏览。
Google了一圈,现总结如下:
  • Firefox地址栏输入 about:config
  • 有安全提示,点击继续;
  • 找到“network.proxy.socks_remote_dns”,双击改为True(默认False);
  • 可能需要重启Firefox。
已验证可行。
看看墙外世界
输入一个撞墙网址试试看行还是不行。不管你行不行,反正我是行了。


几点提示:
  1. 如果你想用password+userName 而不是pem的方式登录EC2 instance, 那么你需要修改 /etc/ssh/sshd_config 文件,将其中的 PasswordAuthentication 由默认的 no 改为 yes。使用passwd 设置该用户名下的密码。然后重启ssh server。
  2. 你可以在系统中添加多位用户,使他们能用password方式登录,从而共享你的EC2 instance。
原文http://www.qishansun.info/?p=12
========
有了Amazon的EC2你不但可以ssh翻墙,还可以自建VPN、推特API、wordpress博客等很多玩意可以折腾,不过这一切的前提是有张信用卡,呵呵。