Archive for category software
dns影响itunes下载速度
前几天看了这篇文章下载iTunes电影不要用Google或Open DNS,受了点启发。
我在itunes上下载都是连接vpn之后进行的,主要是速度实在太慢了。一个几十兆的东西可能需要几个小时,而且中间经常会断掉。我就猜想,是不是apple的服务器在国外所以速度很慢,然后我用vpn之后速度很快,这就证明了我的猜想。我也就怡然自得于这个发现,从来没有想过:国内这么多的用户,难道他们都是用vpn的吗?显然绝大多数的普通用户是不可能使用vpn的,那么他们难道都在忍受这样的下载速度,并且经常断掉?
今天我在itunes上下载软件,突然想到上面那篇文章中说的,于是验证一番。果然如是,下面是我使用电信默认dns与使用google dns下用itunes下载的对比。

使用google dns

使用默认dns
嗯哼,解决了itunes下载速度慢的问题。以后可以不用vpn了。
ituango第二期
ituango的中文名是爱团购。我真不怎么喜欢这个中文名,这话我想说很久了。
第二期的api已经上周就已经架设好了,就等客户端这边完工了,预计在年前会release版本的。
顺便说一下,iphone上的第一版居然还在审核中,这真是让人疯狂的。symbian上的版本我几乎没动过,想要quit,想想太丢人了。半途而废会让我难受的,如果有任何人会期待symbian版的话,说声抱歉,我尽量做。
第二期的UI基调基本不变,不过在第一期的基础上扩展了不少功能,这也得多谢几位给我们提意见的朋友。
我们主要增加了:
1、详情查看。可以在详情中看到图片了,而且可以方便的分享给你的朋友们。并且支持短网址。
2、分类查看。可以查看不同类别的团购,当然还是可以一次看全部的。
3、收藏。当时没有时间细看的可以收藏起来,等到有时间的时候在自己查看。
4、评论。本来我是不想加上的,被说服的。随着ituango用户量增加,肯定会有人去过这个商家,这样可以给其他用户提供一些参考,貌似有点道理。
5、商户地址、地图。可以看到商户的地址并且可以直接调用地图查看(如果存在地址的话)。
国内在线同步服务
今天同学找我说他把某个文件夹给覆盖掉了,也就是说文件夹中的文件全部被覆盖了。问我可有办法恢复过来,我向他推荐了两款文件误删除恢复软件。就我对计算机的了解,所谓的文件覆盖是分成两步:一是删除原文件;二是重新建立一个相同文件名的文件。理论上只要没有被覆盖掉还是有可能恢复出来的。很可惜我同学没有能把文件恢复出来。我不确定是否文件误删恢复软件没有办法做这种恢复。
最近遇到很多与数据备份有关的事情:老胡把人家的硬盘分区表清除并且重装了系统;在windows上改动分区表导致linux分区丢失,这个涉及到linux、windows分区表,这数据恢复的真是让我心惊胆战,最后居然让我把数据全部恢复了也是值得记述的一件事情;linux root分区总是出问题。越来越感觉数据安全真的很重要。
每个人的计算机随时都有可能遇到数据损坏以及丢失的烦恼,我建议使用一些数据在线同步服务。对于在线同步服务如何工作以及有什么用处可以参考:关于dbank这个数据同步服务一文。
以下是几个国内的在线同步服务。
金山快盘 http://k.wps.cn/
DBank数据银行 http://www.dbank.com
酷盘 http://www.kanbox.com
盛大EverBox http://www.everbox.com
目前盛大everbox还未开放注册,需要邀请码。其他三者都可以正常使用,不过个人比较推荐金山快盘与dbank。
当然我最推荐的还是dropbox,可以看此文:关于dropbox。
TP-link TL-SL3428 端口镜像
今天帮人配了一台tp-link sl3824交换机的端口镜像功能。
服了它了,在web界面上找了一圈居然没有端口镜像的选项。可是在网上找到的规格参数中的确是存在端口镜像功能的。
我在网上找到的两本英文版用户手册(cli,web)中也能找到port mirror配置项。我猜测这款交换机的中英文版的web界面提供的配置项不同。可是后来发现不但web配置不同,居然连cli上的命令也不尽相同。
既然这款交换机的参数说明支持端口镜像,并且英文用户指南上也有,我认为它肯定可以在cli上配置的。果然,用console登上去之后,用”?”看它的help被我研究出如何配置了。
呵呵,作为一个没有玩过交换机配置的人,我很有成就感。
下面是一个例子,配置端口2-5与端口7的进出数据全部镜像到端口1上。
en
config
interface ethernet 1
port mirror
port mirrored 2-5,7 both
如果想要关闭端口的镜像功能也很简单:
no port mirror
使用privoxy+ssh按需代理
前文ssh端口代理介绍如何ssh建立socks代理。
如果只是使用socks代理的话你所有的互联网访问都会通过socks代理,假设你的服务器在国外,那么你对国内网站的访问就会变得很慢。因为要通过国外服务器中转,其实可能访问国内网站也不见的会快,毕竟需要通过服务器中转数据了。所以最好的解决方案是只有需要代理的网站才通过代理访问。
Firefox上有一款插件,foxy proxy可以做到让特定的网站通过代理访问。
最早的时候我只用firefox,foxy proxy也就够用了。后来chrome在我桌面上开始和firefox并驾齐驱之后,foxy proxy这款只能在firefox上使用的“按需代理软件”就变得不怎么够用了。我也没想在chrome上再找一款这样的插件了。因为这样的话就需要在两个浏览器上单独设置两遍,这个是让人难以接受。然后我就找到了privoxy这款代理软件了。
privoxy不是简单的代理而已,它还可以通过你的配置来过滤http数据,比如去掉广告之类、重定向。而在本文中我要用到的就是用它控制重定向特定url通过指定的代理服务器,也就是“按需代理”。
如何安装就不赘述了,privoxy不管在linux和windows上都有相应的安装包。privoxy在这两种系统上的配置文件都是通用的。所以以下的配置在L和W系统上都可以使用,当然配置文件的位置不同。
在ubuntu上安装完privoxy之后可以打开 /etc/privoxy/config这个配置文件。
listen-address:这是privoxy监听的ip和端口,我一般会把ip改成0.0.0.0这是为了让其他计算机也可以使用本机做代理。
actionsfile:这里指定了好几个不同的配置文件,我之使用user.action这个配置文件。
打开/etc/privoxy/user.action这个文件。这个文件里面已经预先为我们设置了很多过滤条件。由于只是用它做“按需代理”的伙计,所以原来的配置都不去改动它。直接到最后一行加上如下配置:
{+forward-override{forward-socks4a 127.0.0.1:9120 .}}
.google.com
上面这个配置就是说所有对google.com这个域名的访问全部通过 127.0.0.1:9120这个socks代理访问。
127.0.0.1:9210 根据自己的实际情况修改。
对于你需要通过代理访问的网站你只需要在.google.com之后增加即可。
ssh端口代理
刚想写一篇blog关于如何用privoxy与ssh反向代理实做一个个人按需翻墙代理服务器。然后发现“非我”(blog)上没有关于ssh反向代理的文章。想起来这还是在很早以前在blogbus发表的,后来被和谐了。偷个懒修改一下重发出来作为今天的blog。
安全访问隧道。
例子1:ssh -f -N -L 12345:localhost:80 root@192.168.100.140
说明:ssh -f -N -L <本地端口>:<本地IP>:<服务器端口> <服务器地址>
-f 指明该ssh跑后台
-N 指明该ssh连接不需要执行命令
-L 是用来绑定本地端口到服务器的端口。
这条命令执行后,就是把本地的12345端口绑定到了192.168.100.140这台服务器的80端口。
也就所有访问本地12345端口的网络数据都会转发到192.168.100.140的80端口,假设140服务器的80端口有网站在跑,那么当我访问127.0.0.1:12345的时候就会打开192.168.100.140的网站。
由于ssh隧道是加密的,那么所有从你本机到140服务器80端口的数据都不怕会被别人截获数据进行分析了。
例子2:ssh -f -N -R 12345:localhost:80 root@192.168.100.140
说明:ssh -f -N -R <服务器端口>:<本地IP>:<本地端口> <服务器地址>
-R 是用来绑定服务器端口到本地端口
这次正好相反,我如果使用浏览器访问192.168.100.140:12345的话就会访问到我本机的80端口,如果本地有web服务的话就可以打开网站了。
使用这个加密访问在其次,更多的是一般通过服务器是很难访问到我内网的计算机的,而如此一绑定,我就可以通过服务器来访问我内网的计算机了。
前段时间我用这种方法使用android上的一款远程通知软件, android notifier。让他可以通过internet通知本机的桌面程序。
SOCKS代理。
例子:ssh -f -N -D 12345 root@192.168.100.140
说明:ssh -f -N -D <本地端口> <服务器地址>
-D 建立一个本地的动态应用层协议的端口转发。
这个的作用是也就是所有到本机12345端口的网络包都通过140服务器转发,服务器就变作了你的SOCKS代理服务器。
通俗的说也就是你在浏览器里面把127.0.0.1:12345做为SOCKS代理之后就可以通过服务器来上网了。如果你的服务器在国外的话,你就能够上一些原本不能上的网站了。如果你们公司只允许访问特定网站的话,这一手也绝对管用。
默认的ssh SOCKS代理是不支持socks4a(dns解析也通过服务器)的,想要使用socks4a可以参见 openssh-client 支持socks4a代理。
团购信息聚合-ituango
呃,这是个软文。
第一次在点评网参加过团购之后,我对于团购的兴趣就起来了。之后发现有tuan.hao12.com3的团购信息聚合,更让我连续几天会浏览该网站。由于我本身不喜欢泡在网页上,当时就想是不是有一个手机客户端的团购信息聚合软件呢。当然在android market上有找到,只不过我觉得没有满足我的要求。做一个合意软件的想法从此而来,该想法酝酿许久之后终于在某次imtkoo内部讨论中决定做出来。
目前ituango的第一版进度基本完了预期。今天已经确定第二版的功能,我们也会尽快开发。
以下是ituango支持的平台情况:
魅族M8:market审核中,可以下载安装。
android:可以market安装,可以下载安装。
iphone/ipad: market审核中,尚未提供越狱下载。
windows phone 7:登陆market中,未开放下载。
symbian s60v5: 未开放下载。
以下是从主页上抄了下面的介绍,有兴趣的话可以打开ituango主页瞧瞧。我个人更喜欢提供反馈意见。
爱团购介绍
“爱团购”是由iMTKoo开发的一款集合国内团购信息的手机客户端应用软件,它能让您随时随
地通过手机查看团购信息。 本软件将终身免费开放,欢迎用户下载使用。
0.9.9版本特点
1.支持查看各大城市团购信息;
2.专业的UI设计为用户呈现最佳体验;
3.全文字展示更快更省流量。
设计过度
最近和几个同事在开展一个项目。
目前的第一期预期要完成的功能很简单,从网站上拉下数据来呈献给用户。我还是在老本行,折腾服务器程序。目前我们开了几次会议,本身应该很简单的东西,讨论一下客户端与服务器的接口数据与形式。只是每次我们都会讨论过头了,想到未来可以给用户呈现什么东西,未来可能发展到什么程度;那么我们现在就有必要为了这些功能留出一些什么样子的接口来。
今天晚上我们又开会讨论,我说到服务器的时候居然开始考虑到如果用户量太大,后台必须要改变架构。然后开展出来居然讨论到服务器架构要怎么修改以及服务器的承载量如何了。我马上意识到有些过度了。老实说东西还没有出来,别说大量用户了,用户本身都是没影子的事情呢。
过度设计这是一个普遍问题,近半年以来在公司开的会比我以前几年所有开的会都多。只要讨论到程序设计基本上都会有过头的,东西还没有出来已经想到未来了(非是说以前没有,只是我以前从来没有思考过这些问题。);最后为了未来的可扩展性与用户容量之类做了很多前期过度的设计。这样的过度设计导致的直接问题就是工作量大增:一是出版本太慢了;二是搞得大家筋疲力尽;三是迟迟不见成效搞得大家都乏了。
据我所知的目前的不少大型网络服务站点在前期都是不会考虑到太多,直到用户量上来了才马上更改设计。我近来很崇尚这种走一步看一步的设计方式,当然我也在摸索实践中。事情就是这样,只有做了才能知道对错,然后就可以修改。
instapaper&kindle
自从入手kindle之后,我就开始寻找订阅rss的方式。幸运的让我找到了一个国人提供的服务:doger.mobi,而我也通过一些网络服务实现了通过dogear.mobi订阅google reader,在kindle阅读google reader一文中我介绍了这个方法。
现实生活中会发现在网上有很多文章自己不是能够很快就看完、或者一时没有时间看完。针对这个问题有instapaper这个解决方案。在你的书签栏上加一个书签,然后遇到这样的文章就点击一下书签,它就会记录到服务器上,以后你可以随时在iphone、ipad、kindle、pc上继续阅读。
kindle使用愈久我越来越不想再计算机屏幕上阅读长篇文章了,于是我遇到喜欢的文章都会把它保存到instapaper上,然后通过instapaper生成mobi文件存到kindle上继续阅读。instapaper本身是支持自动发送到kindle的,不知为何我没有成功,手动点击发送是可行的。(它要求发送到收费的kindle通道,不过通过设置收费限制为0,amazon将会自动转发到免费通道)
试过多次从instapaper下载到pc,然后连上数据线,最后传到kindle的流程之后我就厌烦了。于是写了一个简单的脚本,自动下载文件发送到amazon免费通道。昨晚做了这事,今天早上起床后打开kindle发现文件已经在了。
下面是脚本,其中的sendmail.py是另外一个发送邮件的python脚本。
参数格式是:<收件人> <主题> <内容> <附件>
#!/bin/bash
CURL=/usr/bin/curl
SENDMAIL=/path/to/sendmail.py
RM=/bin/rm
INSTAPAPER_COOKIE=/tmp/instapaper.cookie
INSTAPAPER_USER=<你的instapaer用户名>
INSTAPAPER_PASS=<你的instapaer密码>
KINDLE_MAIL=<你的kindle免费转换邮箱>
INSTAPAPER_FILE=/tmp/instapaper-`date +%Y-%m-%d`.mobi
${CURL} -d "username=${INSTAPAPER_USER}&password=${INSTAPAPER_PASS}" "http://www.instapaper.com/user/login" -c ${INSTAPAPER_COOKIE} -L -s
${CURL} "http://www.instapaper.com/mobi" -b ${INSTAPAPER_COOKIE} -o ${INSTAPAPER_FILE}
${SENDMAIL} ${KINDLE_MAIL} "instapaper `date +%Y-%m-%d`" "${INSTAPAPER_FILE}" "${INSTAPAPER_FILE}"
${RM} ${INSTAPAPER_FILE}
搞定rss输出的问题
之前怀疑renren网blog导入不能是由于国内DNS服务器上的ip地址没有更新造成的。(renren只是提示失败)
于是今天我想要再次导入,发现还是不能。于是我尝试在浏览器里打开feed地址,发现居然是404页面,然后检查了wordpress的配置,没发现什么特别的。nginx的访问记录上说是未找到页面。我考虑了一下就服务器的配置和新服务器的配置有什么不同之处,想来是旧服务器上有关于wordpress supercache的配置。所以,加上配置后重启nginx搞定。
———————————————
对于我怀疑是DNS的问题,我说说DNS是怎么回事然后再行解释吧。(网上有一篇关于浏览网页究竟是怎么一个过程的文章,有兴趣可以去看看)
比如我们访问人人网:
1、在浏览器里面输入renren.com这个域名
2、浏览器就向你设定的DNS服务器发起DNS请求
3、DNS服务器告诉浏览器这个域名对应的IP地址是多少
4、浏览器访问这个IP地址
5、这个IP地址所在的服务器返回数据
6、你的浏览器呈现页面给你
很多普通用户不明白怎么设置,也不需要了解,一般对用户来说都是自动设置好了。很多时候如果发现能连上qq而不能访问网页也是和DNS服务器故障或者设置错误有关。
实际上DNS服务器做了一些事情的,DNS服务器首先在自己的缓存中检查有否这个域名对应的IP地址,如果存在就直接回复浏览器。否则有两个选择,一是告诉浏览器去查询另外一个DNS;而是DNS服务器询问他的上层DNS服务器,这样层层向上询问,知道有DNS服务器知道为止。众所周知的原因,最顶级的DNS服务器都在国外。
我自己的linux上的dns服务器都是直接设为google的8.8.8.8,我发现这个dns查询速度比较快,这也从一定意义上造成访问网页会比较快(参照上面的例子)。可能google的服务器比较牛力,同步的比较频繁吧,基本上我域名设置里面改变了ip之后我这边很快有反应了。反观公司笔记上上用的是默认dns(也就是国内运营商的dns服务器),过了很久我查询还是旧的ip。于是基于这个现实,我猜测是不是由于dns信息没有更新导致了renren上面blog导入失败。





Recent Comments