非营利组织或大学生免费申请Bitbucket无限账号

最近需要做一个学校的项目,用Mercurial做代码管理,在Bitbucket上申请了一个免费5用户账号,然后看到他们提供给非营利组织(NPO)和大学生免费申请无限账号(原价$80每月)的机会。

Atlassian Bitbucket网站:https://bitbucket.org

首先说一下何为无限账号:Bitbucket提供每个用户无限公开和私有库,唯一限制的是对私有库有读写权限的帐户总数。默认的免费账号,可以总共有5个帐户对你的私有库进行读写;无限账号则有无限的名额,但是每月需要付80美元的费用。

1. 首先,你需要是大学生(University student)或非营利组织(Non-profit organization member)成员的身份,而且你需要进行非开源的工程(开源工程可以使用公开库)。

2. 大学生帐户的话,需要使用学校邮箱(大陆是.edu.cn结尾,米国是.edu结尾)注册一个帐户(作为主地址,而不能作为备用地址添加到其他帐户里);非营利组织则需要准备组织的各种资料。

3. 填写对应的表格:大学生申请表 / 非营利申请表

4. 对于大学生表格的填写要求:正文部分要全部用英文填写(包括地址,翻译一下,大学生这点技能没问题吧)。学校网站要写你们学校首页,最好能把英文首页地址和其他重要信息填在附注(Additional notes)部分。至少我就这样填写,申请过了。

    对于非营利表格的填写要求,请仔细阅读申请表页面的注释。

5. 提交表格,等待人工审核。他们没说具体审核时间多少,应该一天之内都能审核完吧。审核通过后,你的账号里就会显示为无限账号(Unlimited users)的套餐了。(点击网页上的Account链接,右下方即可看见。)

注意:很幸运能有一家公司提供这么好的方案,为我等穷学生提供一个免费的Hg代码服务器。希望不是大学生和NPO身份的人、有工作有项目收入的人就不要申请了,任何服务只要国人多了都会下场悲惨,请手下留情,留给真正需要的人吧。

更简单更通用的搭建v4-v6隧道的方法

这篇文章介绍gogoNET提供的使用客户端搭建v4-v6隧道方法,比上一篇《在IPv4环境下搭建IPv6隧道的方法》中的HE.NET隧道更简单且更通用。

这个隧道(Freenet6)的网站是:http://gogonet.gogo6.com

1. 第一步是注册一个账号,但是其实不注册也可以啦,其实这是一个社交账号,强迫你注册了才能看到下载页面= =。

2. 如果注册了账号,请直接点击 http://gogonet.gogo6.com/profile/gogoCLIENT 这个网页下载客户端,注意区分32或64位;如果没有注册,请用我提供的地址下载(包含32、64位,是发文时的最新版):点击下载

3. 完整安装客户端,一路点下一步即可,安装完之后启动软件。

4. 直接点击界面上的Connect按钮,待下方提示连接成功即可。可以使用命令 ping ipv6.google.com 测试。

之所以说这个隧道通用,是因为在客户端的高级页面上,可以看到这个隧道原生支持NAT后的用户(使用UDP打洞吧),而且支持反过来的v6-v4隧道,即用IPv6网络传送IPv4数据,比HE.NET强大很多啊。


附录1(看完上面的你就可以上IPv6去了,下面的内容仅供具有探索精神的人阅读):

这样连接的话,连接到的是公用匿名服务器,不需要账号登陆。如果想拥有固定IP、固定三级域名(可以CNAME过去的有木有)等服务,请使用Freenet6的认证服务器。

Freenet6账号(与上面的gogoNET账号不同)注册地址为:http://gogonet.gogo6.com/page/freenet6-account (这是介绍页面,有个“here”链接到注册页面),注册完毕后,请在Connect之前换成认证服务器(服务器地址),然后在下方输入用户名和密码后再连接。

下图是我登陆后连接成功的图片(为了防止被称作“没图你说个JB”):

连接的是montreal服务器,User Domain第一段是注册的用户名。根据官方说明,最好指定一台静态服务器,才能保证获得的地址是静态的,不然就算登陆了最后地址也可能会变。

附录2:英文Wikipedia上有全球各种IPv6隧道的列表,很多都是使用gogoClient客户端的,只需改个服务器或注册个账号,其中包括澳大利亚、中东和台湾等许多服务商的隧道服务器。当然也有其他像HE.NET一样的普通隧道,如果谁能注册上十来个隧道,然后写个路由表,你就成IPv6的神了……- –

ZX IPv6数据库格式分析

本篇是ZX Inc的IPv6数据库中的数据存储格式分析,在多次修改和热心读者帮助下已经写出了整个结构。

ZX IPv6数据库下载地址:http://ip.zxinc.tk/

如果您想要使用本篇介绍的内容,请先参考页面上方或下方的许可协议!

以下是我以ZX 20110430版本数据库为例的分析结果:

0x0000 – 0x0003:ASCII “IPDB”(0x49 50 44 42),用来识别数据库类型。

0x0006:Byte 2(0x02),这是偏移地址长度。这个长度用于下方[1]处。

0x0007:Byte 8(0x08),这是IP地址长度。这个长度用于下方[2]处。

0x0008 – 0x000F:Int64 15725(0x6D 3D 00 00 00 00 00 00),这是数据库中的记录总条数。

0x0010 – 0x0017:HEX(0xF6 89 00 00 00 00 00 00),这是数据库地址段的开始位置。下面跳到这个地址(0x89F6)。

0x89F6 – 0x89FD [2]:IPv6(0x00 00 00 00 00 00 00 00),这是一个IPv6 /64段的记录起始地址,终止地址是下一条记录起始地址减1。

0x89FE – 0x89FF [1]:HEX(0xBB 88),这是本条记录对应的地理信息在数据库中的位置。下面跳到这个地址(0x88BB)。

0x88BB – 0x88BD:HEX(0x02 53 62),0x01和0x02开始的标志意味着跳转,后两个字节就是跳转地址。下面跳到这个地址(0x6253)。

0x6253 – 0x6263:UTF-8 String “IANA保留地址”(0x49 41 … 00),这是一个UTF8的字符串,以0x00结尾,也就是上述IP段对应的地理信息。每条IP记录对应两个地理信息的字符串(例如“山东省济南市 山东大学”),因此下面跳回到刚才的地址来获取第二段。

0x88BE:UTF-8 String(空,0x00)。如果开头不是0x01或0x02即为直接字符串,0x00结束说明为空串。之后跳回下一条IP记录(0x8A00)继续读取即可。一共读取15725次,其实只有15724条有效记录,最后一条记录(0xFF FF FF FF FF FF FF FF)对应的是数据库的版本信息,但是可以用来计算倒数第二条的结束地址(但是建议直接用这个地址作为倒数第二条记录的结束地址)。

以上就是整个数据库的数据部分格式,下方comment(不是大神就是原作者)的帮助下已经补充全了整个数据部分的内容,感谢这位未署名的游客的协助。我的这个分析是从提取数据的算法角度来写的,comment中的是整个数据库的格式总览,表达的意义是相同的。

如果您想要使用本篇介绍的内容,请先参考页面上方或下方的许可协议!

为你的网站配置免费CDN服务——CloudFlare

现在的网络真是什么都有,以前费用高昂的CDN服务现在居然有免费的了。CDN服务就类似一种缓存,访客用最好的线路访问CDN服务器,而CDN服务器负责抓取和缓存源服务器的内容。

CloudFlare的免费CDN服务要求你有自己的域名和网站(废话),并且要更改你的DNS服务器。

到官网注册账号:http://www.cloudflare.com

1. 注册并登陆之后,会要求你输入你的域名。输入完成后点击“Add This Website”按钮进入下一步。

2. 此时他们会开始抓取你的DNS记录。由于大部分DNS服务商都不支持AXFR,他只会猜到一些常用的记录(不过挺准哦)。等待40秒之后点“Continue to Step 2”进入下一步。(貌似只有切到那个网页的时候时间才会跑- -,上面一大块空白难道是广告?)

3. 进入第二步之后你需要检查一下他找到的记录,如果有缺少的话就手动加上。当然如果你的服务商支持Export Zone来导出BIND格式的域配置文件(例如Dnspod的Export Zone,HE的Raw Zone),可以点“Upload it now”直接上传。完成之后点“I'm done… continue”进入下一步。

4. 进入第三步,他会问你想把哪些域名配置成通过CDN访问。每个A和CNAME记录右边都有个云彩,彩色为启用(即通过CDN访问),灰色为禁用(即直接访问),点击云彩可以切换。而AAAA(IPv6)、MX等记录则没法配置,只能直接访问。配置好之后点击“My settings… continue”进入下一步。

5. 进入最后一步,他会给你分配两台DNS服务器,这时候你需要登陆到你的域名后台,把前两个DNS修改为提供的(XXX.ns.cloudflare.com),其余的都删除。完成之后点击“I've updated… continue”即可完成。查看常用域名注册商的修改DNS步骤

都配置好之后,进入Websites可以看到网站配置情况。因为DNS有自己的缓存,所以需要等待2-24小时新的配置才会生效。生效之后,可以使用ping yourdomain.com测试,如果IP地址跟你使用的主机不同,就说明新的CDN服务器生效了。

我的首页、博客、App分站,以及网址缩短(s分站)均已配置CDN服务。下面是部分ping和tracert测试结果:

Ping statistics for 199.27.135.77:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 271ms, Maximum = 277ms, Average = 274ms
 
 13   224 ms   210 ms   202 ms  xe-4-0-5.ar2.sjc1.us.nlayer.net [69.22.153.193]
 14   247 ms   196 ms   191 ms  as13335.ge-0-0-37.ar2.sjc1.us.nlayer.net [69.22.153.74]
 15   276 ms   274 ms   270 ms  cf-199-27-135-77.cloudflare.com [199.27.135.77]

更新:国内也有服务商提供各种形式的免费CDN服务,节点在国内因而速度更快。
WebLuker(除CDN外还有域名解析、服务器监控等服务,但是必须是国内备案的域名):http://www.webluker.com
CDNUnion(把自己的服务器加入联盟,即可享受别人的节点加速):http://www.cdnunion.com
WebCDN(只是作为免费CDN列在这里。不在国内,也不太靠谱,谨慎使用):http://www.webcdn.com

在Linux上搭建支持IPv6的简单HTTP代理

这篇文章讲的是如何在Linux上安装和配置TinyProxy——一个支持IPv6的轻量级HTTP代理服务器。

TinyProxy网站:https://banu.com/tinyproxy/

1. 首先参考TinyProxy网站上的Download部分,确定你用的Linux发行版上如何安装TinyProxy程序,当然也可以手动下载源代码编译。由于我用的是Ubuntu,以下命令均以Ubuntu为例,其他版本的操作大同小异。
# apt-get install tinyproxy
Do you want to continue [Y/n]? y

2. 修改TinyProxy配置文件,可以使用man tinyproxy.conf命令查看配置文件的详细介绍,也可以直接vi /etc/tinyproxy.conf根据文件中的提示来修改参数。下面是主要修改的部分:
Port 8888 #代理的端口
Listen ::0 #“::0”(不要只写::)表示所有IPv6地址,“0.0.0.0”表示所有IPv4地址
MaxClients 100 #最大同时连接数
MinSpareServers 1 #最少空闲进程数
MaxSpareServers 2 #最多空闲进程数(其实个人感觉跟最少/最多进程数差不多,内存小的建议改小)
StartServers 1 #开始时的进程数,服务器内存小的就修改成1好了
Allow ::/0 #这条“::/0”表示允许所有IPv6,“0.0.0.0/0”代表所有IPv4,什么都不写默认为全部允许

3. 退出vi,启动TinyProxy服务即可。
# service tinyproxy start

4. 使用浏览器(Internet选项中设置IPv6代理时要加中括号)测试代理连接情况。