APJP代理翻墙教程:OpenShift平台使用指导

2012年2月13日 | 分类: 翻墙相关 | 标签: , , , , ,

APJP一个PHP/JAVA代理实现,用来翻墙安全、免费、稳定效果不错,在继PHP/GAE支持后又支持了JELASTICCloudFoundryHerokuDotCloudOpenShift几个云平台。本文是OpenShift平台使用指导比较详尽,wiki作者说配图较多,文字就略省,其实即使不想部署APJP,看看文章学习VirtualBox虚拟机 和Fedora Linux系统也还是不错的哦。

  • 如果感觉此篇过于冗长, 自己的技术较高, 请参阅极简英文指导, 方法与此文不同. Windows + Cygwin
  • 如果部署时有错误,自己Google后,仍无法解决,请在Issues提问.
  • Issues中有提问的模板. 但再强调一下,如果是了解APJP的原理方面,提建议或反馈Bug,尽量用English,如果仅是部署遇到无法解决的问题,请详细描述你的问题,越想详细,越快解决的你的问题的,中文即可.
  • 至于OpenShift的优缺点,需要点时间,才能补上,同时期待各位反馈

OpenShift平台使用指导

以Windows 7为例,Linux / Mac上参考此文自己探索,实质上是以Fedora_16为例

VirtualBox中创建Fedora_16

1.下载安装VirtualBox和下载Fedora_16

VirtualBox官网下载地址:VirtualBox 4.1.8 for Windows hosts -> x86/amd64 点击即下载

Windows上安装VirtualBox,默认设置就可,即双击安装文件,一路Next

Fedora_16官方下载地址:Fedora-16-i386-DVD.iso 点击即下载

2.VirtualBox新建虚拟机

VirtualBox的主页面,点击“新建”,这时 VirtualBox 会运行 向导工具,帮助建立虚拟机,单击下一步

如果你有2G及以上的内存,推荐的768MB,就可,也是Fedora官方要求的最低配额。实际少点也可,但性能上会有许多折扣,不影响部署APJP

硬盘格式随意,图中只是个人喜欢的配置

3.安装Fedora_16

VirtualBox的主页面,选中“Fedora_16”,单击菜单栏的“开始”,启动首次运行向导

余下内容参见,实体机安裝 Fedora 16 (Verne),和VirtualBox中装区别不大。另可参见,VirtualBox中 安装 Fedora16,无视此文中”Configure Network” 设置网络部分,使用NAT就可。

  • 注意”软件选择”: 选”软件开发 (Software Development)”,其他的默认设置即可。
  • “Creater Use” 注意”Add to Administrators group”

4.安装增强功能

  • 注意上图的红色字”FAILED”, 如果安装正确是没有的,要全部青绿色的”OK”,如下图。

重启Fedora_16,创建安装完成

5.Windows7 (Host System) 与 Fedora_16 共享文件,演示 需成功安装增强功能

sudo mount -t vboxsf E_DRIVE ~/Downloads # 注意随机应变

OpenShift简介

http://en.wikipedia.org/wiki/Red_Hat#OpenShift

创建帐号

https://openshift.redhat.com/app/user/new/express 注册帐号。过程简单,在此省略。缩短篇幅。用Gmail只需2分钟,其他邮箱未知

安装客户端工具

以Fodera_16为例,其他平台自行参考https://openshift.redhat.com/app/express#quickstart

1.文件openshift.repo 点击即官网下载,存放路径: ~/Downloads/ (即/home/user/Downloads/)

2.将openshift.repo 文件,移至 /etc/yum.repos.d/ 文件夹内

打开”Ternimal”,执行以下指令

$ sudo mv ~/Downloads/openshift.repo /etc/yum.repos.d/

3.安装客户端工具 (有可能因为mirror的问题,失败!重复执行此命令直至最后出现”Complete!” 第一次安装,执行四次成功!演示这次,一次成功!均无VPN情况下)

$ sudo yum install rhc

文件

生成Key

转到APJP_KEY目录,Fedora_16 上运行APJP_KEY.sh,会显示一个APJP的密钥,类似APJP_KEY=FkPMd40j6vzfsEbf

编辑ROOT.war中的APJP.properties

下载APJP_REMOTE_DOTCLOUD最新版本,解开压缩文件,转到APJP_REMOTE_DOTCLOUD目录
目录內有ROOT.war文件,解开

在当前目录释放文件,并进入ROOT文件夹得到index.html, META-INF和WEB-INF两个目录

转到WEB-INF目录,编辑APJP.properties的KEY栏位,KEY可往项目下载栏下载产生KEY的程序

完成後存档,可把原来的ROOT.war和Readme.txt删除,将index.html, META-INF和WEB-INF两个目录
压缩为ROOT.zip ,然後改名为ROOT.war 。只有现在的ROOT.war有用

上传App

Fedora_16 中打开”Terminal”执行以下指令

1.创建域名

$ rhc-create-domain -n <YOUR-DOMAIN> -l <YOUR-USERNAME> -p <YOUR-PASSWORD> # 部署新应用跳过此步

  • “Invalid user credentials” “无效的用户凭据”, 第一次帐号密码输入错误 :) 只好执行第二次, 细心的朋友能看到两次的执行的代码的不同吧?
  1. 除了输入错帐号, 第一次另外还生成了SSH密钥的, 第二次就直接创建域名的
  2. “-p 密码” 如果不一起执行, 就会出现询问的密码的,此时输入密码不显示. 一起执行时, 密码是明文显示的, 参见下图中红色遮盖
  3. 第一次执行,生成SSH密钥时,会询问是否创建SSH密钥的密码, 直接”Enter”为无密码,强烈建议创建密码

2.创建App

$ rhc-create-app -a <YOUR-APPLICATION> -t jbossas-7.0 -p <YOUR-PASSWORD>
  • 下图的执行指令,包含部分后面的指令的

  • 输入SSH密钥的密码,就是第一步创建的

3.将ROOT.war移至<YOUR-APPLICATION>/deployments/ 目录中

  • 此目录是上一步创建App时生成的,名字就是你的应用名字

4.cd 切换到 <YOUR-APPLICATION>目录中

cd ~/<YOUR-APPLICATION>

5.剩余指令

git rm -r src pom.xml
git commit -m "delete"
git push
git init
git add .
git commit -m "deploy"
git push

  • 成功!(两次部署成功,均未在浏览器中打开,应该能在操作过程中找到刚创建的应用地址吧? 就是http(s)://<YOUR-APPLICATION>-<YOUR-DOMAIN>.rhcloud.com

上传App时的代码, 个人信息部分,均以”*”代替. 谢绝直接转载链接指向的代码文章

编辑APJP_LOCAL/APJP.properties

使用

双击APJP_LOCAL/APJP.sh,会看到APJP在自行测试连接服务器的讯息,如果正常会有14个“OK”

这表示APJP已经运行并连上服务器,但需要在浏览器进行简单设定,数据会经由APJP服务器流通

  • 在Firefox中代理选项中,设置HTTP PROXY 为127.0.0.1 端口为10000,SSL PROXY也是127.0.0.1 端口10000
  • IE Internet设置->连接->局域网设置(L)其旁边的一段话【LAN设置不应用到拨号连接。对于拨号设置,单击上面的“设置”按钮】, 如需设置和局域网设置(L)一样。->勾选“为LAN使用代理服务器”地址:127.0.0.1 端口:10000

补充

APJP为web tunnel的实现,对于HTTPS连接会出现证书警告

例:

故在APJP_LOCAL-0.8.4版本,增加IAIK_JCE.jar并会随机生成APJP.pem导入浏览器内可解决证书警告问题。

以下为Windows 7版 Google Chrome的导入方法:

  • 首先运行APJP_LOCAL/APJP.bat,设置好浏览器代理,打开https://www.google.com/ncr (或者其他任何 https:// URL),出现证书警告。同时APJP_LOCAL目录中生成APJP.pem 和APJP.jks,接着如下操作:

a.选项(O)->高级设定->HTTPS/SSL->证书管理(Chrome调用的是系统的证书,即IE上不需要再导入证书)

b.点击“证书管理”->选择“受信任的证书颁发机构”->点击“导入(I)”

c.打开并指向APJP_LOCAL/APJP.pem

e.其他浏览器例如:Firefox设置导入证书大致相同

  • 注意 : 每次更新APJP,都要删掉上次APJP的证书文件,再导入APJP.pem。因为证书是运行程序后自己生成的,具有唯一性。

来源:http://code.google.com/p/apjp/wiki/InstallGuideOnOpenShift

APJP项目地址:http://code.google.com/p/apjp/

本文原始地址http://igfw.net/archives/7526

  1. Johnny Sun
    2012年12月2日13:19

    最好办的方法是直接注册一个openshift使用ssh曲线。。客户端可以用myentunnel,这个小软件对linux下和mac下的wine兼容极好,这样就可以很好地翻了

  2. z235689785
    2012年3月9日19:54

    我对近来这些层出不穷的云主机都有个疑问,为什么一定要靠诸如Git之类的代码工具来部署服务器上的文件呢?就不能用类似ftp的方法来直接拷文件吗?搞得有些主机(例如本文介绍的openshift)还必须找linux的机器(或安装cygwin这样的模拟环境)来部署服务器。

  3. Ben
    2012年3月7日11:35

    我现在开始研究如何在windows下面直接部署APJP的代码,稍后放出心得

    • iGFW
      2012年3月7日15:20

      感谢支持,等着出现

    • 034141
      2012年12月24日08:02

      心得还没放出吗

      • iGFW
        2012年12月24日18:22

        好的,再给我发下吧,搜索不到啊,感谢支持

  4. 新人ben
    2012年2月20日11:58

    The authenticity of host ‘openshift.redhat.com.rhcloud.com (xxx.xxx
    .xxx.xxx)’ can’t be established.

  5. 新人ben
    2012年2月20日11:54

    当输入rhc-create-app -a -t jbossas-7.0 -p 完成显示
    Now your new domain name is being propagated worldwide (this might take a minute)…
    Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
    fatal: The remote end hung up unexpectedly
    Error in git clone
    无论vpn下还是都提示!

    There was a problem communicating with the server. Response message: SSL_connect SYSCALL returned=5 errno=0 state=SSLv3 read server session ticket A
    If you were disconnected it is possible the operation finished without being able to report success.
    You can use ‘rhc domain show’ and ‘rhc app status’ to learn about the status of your user and application(s).

  6. 新人
    2012年2月15日16:30

    将openshift.repo 文件,移至 /etc/yum.repos.d/ 文件夹内 新人无法复制到/yum.repos.d/ 文件夹内.没有控制权

    • iGFW
      2012年2月15日18:04

      使用管理员权限即可,至于Fedora下怎么操作你Google下

    • gkmuse
      2012年2月16日16:04

      1.请确定你在安装Fedora_16的时候,有按照图中的操作,尤其是下图的红色箭头。
      http://i.imgur.com/AAP0H.jpg

      2.如果是。执行“sudo mv ~/Downloads/openshift.repo /etc/yum.repos.d/” sudo可以获取15分钟的root权限的。

      3.如果安装时,忘记将当前用户加入管理员组,即上图。sudo 是无法执行的。但可以su 获取永久root权限。后面的操作需要加sudo的,皆不加sudo执行。执行完需要原本需要加sudo,再执行一下exit,退出root。剩下的操作应该没有权限的问题的了。

  7. @twfcc
    2012年2月14日20:14

    只是部署使用Linux,也可使用Cygwin部署的,在Windows的APJP客户端直接使用,不需Linux虚拟机

  8. Ben
    2012年2月14日19:36

    汗啊,这可能算是APJP最“曲线救国”的一种方式啦。还要一直开着一个Linux虚拟机 -_-!!!

  9. 匿名
    2012年2月14日14:32

    過程簡單明了

  10. 2012年2月14日10:59

    很喜欢文章,支持一下。

  11. 匿名
    2012年2月14日06:32

    博主,表示只用vpn翻墙…要自己动手操作的纯帮顶了→_→

  12. AS
    2012年2月14日04:15

    New ver.:Tor-obfsproxy-browser-bundle
    https://www.torproject.org/dist/obfsproxy/
    “…. tor-obfsproxy-browser-bundle-2.3.12-en-US.exe 13-Feb-2012 10:23 21M
    [TXT] tor-obfsproxy-browser-bundle-2.3.12-en-US.exe.asc 13-Feb-2012 10:23 495……”

    https://www.torproject.org/projects/obfsproxy.html.en
    “obfsproxy
    obfsproxy is a tool that attempts to circumvent censorship, by transforming the Tor traffic between the client and the bridge. This way, censors, who usually monitor traffic between the client and the bridge, will see innocent-looking transformed traffic instead of the actual Tor traffic. ……
    obfsproxy supports multiple protocols, called pluggable transports, which specify how the traffic is transformed. For example, there might be a HTTP transport which transforms Tor traffic to look like regular HTTP traffic.

    Even though obfsproxy is a separate application, completely independent from tor, it speaks to tor using an internal protocol to minimize necessary end-user configuration. ”

    2012年2月13

  13. 2012年2月14日01:05

    又是长篇大作。。头疼。。纯帮顶了。。