<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>花儿开了 &#187; Experiences</title>
	<atom:link href="http://blog.istef.info/category/computer/expriences/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.istef.info</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sun, 06 Jun 2010 05:52:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<atom:link rel='hub' href='http://blog.istef.info/?pushpress=hub'/>
		<item>
		<title>Windows 7 的上帝模式</title>
		<link>http://blog.istef.info/2010/01/04/god-mode-of-windows-7/</link>
		<comments>http://blog.istef.info/2010/01/04/god-mode-of-windows-7/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 07:51:35 +0000</pubDate>
		<dc:creator>iStef</dc:creator>
				<category><![CDATA[Experiences]]></category>
		<category><![CDATA[godmode]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[windows 7]]></category>

		<guid isPermaLink="false">http://blog.istef.info/?p=2072</guid>
		<description><![CDATA[经常玩游戏的朋友对于上帝模式 God Mode 这个词不会陌生，此种模式下，主角会变得所向披靡，视大小 Boss 于无物，就像扮演上帝一样。令我比较意外的是，Windows 7 中竟然也有这样一个上帝模式，而且还是以一种秘笈式的方式开启，相当有趣。 开启 Windows 7 上帝模式的方法很简单，类似于很多 Windows Hacks。 在任意位置新建一个文件夹 将文件夹名改为 GodMode.{ED7BA470-8E54-465E-825C-99712043E01C} 此时你会发现文件夹的图标由左图变成了右图的样子，双击打开，看看我们开启了什么隐藏的武器。 上帝模式文件夹里会出来很多设置选项，几乎涵盖了 Windows 控制面板可以涉及的各个方面。利用这里面的快捷方式，我们可以直达需要改动设置的选项卡，而无需像以往一样一级一级的进入，算是个比较快的方式。 原来 Windows 的上帝模式就是个设置面板，不过倒是也算比较贴切，毕竟这些设置可以关系到系统的死活，不过就使用体验来说，我还是更倾向使用原有的控制面板。 不过上帝模式有个比较有用的功能，就是每一项都可以建立快捷方式。由于上帝模式中每个设置都是直达具体设置的选项卡的，因此我们可以利用这一点，将经常需要改动的东西做成快捷方式，这样改起来就省却了找来找去的麻烦。 最后，根据来源上的提示，不要在 Vista 上扮演上帝，否则 Vista 会 Crash 滴，呵呵。via ithinkdiff btw，广告广告，本博所在的 VPS 招房客了，需要主机的中小博客可以看看这里，配置超强，资费合理，数量有限 ：）]]></description>
			<content:encoded><![CDATA[<p>经常玩游戏的朋友对于上帝模式 God Mode 这个词不会陌生，此种模式下，主角会变得所向披靡，视大小 Boss 于无物，就像扮演上帝一样。令我比较意外的是，Windows 7 中竟然也有这样一个上帝模式，而且还是以一种秘笈式的方式开启，相当有趣。</p>
<p><a href="http://blog.istef.info/wp-content/uploads/2010/01/Godmode-1.jpg"><img class="alignnone size-full wp-image-2073" title="Godmode-1" src="http://blog.istef.info/wp-content/uploads/2010/01/Godmode-1.jpg" alt="" width="514" height="198" /></a></p>
<p>开启 Windows 7 上帝模式的方法很简单，类似于很多 Windows Hacks。</p>
<p>在任意位置新建一个文件夹</p>
<p>将文件夹名改为 GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}</p>
<p>此时你会发现文件夹的图标由左图变成了右图的样子，双击打开，看看我们开启了什么隐藏的武器。</p>
<p><a href="http://blog.istef.info/wp-content/uploads/2010/01/Godmode-2.jpg"><img class="alignnone size-full wp-image-2074" title="Godmode-2" src="http://blog.istef.info/wp-content/uploads/2010/01/Godmode-2.jpg" alt="" width="507" height="404" /></a></p>
<p>上帝模式文件夹里会出来很多设置选项，几乎涵盖了 Windows 控制面板可以涉及的各个方面。利用这里面的快捷方式，我们可以直达需要改动设置的选项卡，而无需像以往一样一级一级的进入，算是个比较快的方式。</p>
<p>原来 Windows 的上帝模式就是个设置面板，不过倒是也算比较贴切，毕竟这些设置可以关系到系统的死活，不过就使用体验来说，我还是更倾向使用原有的控制面板。</p>
<p>不过上帝模式有个比较有用的功能，就是每一项都可以建立快捷方式。由于上帝模式中每个设置都是直达具体设置的选项卡的，因此我们可以利用这一点，将经常需要改动的东西做成快捷方式，这样改起来就省却了找来找去的麻烦。</p>
<p>最后，根据<a href="http://is.gd/5LxQE" target="_blank">来源</a>上的提示，不要在 Vista 上扮演上帝，否则 Vista 会 Crash 滴，呵呵。<a href="http://is.gd/5LxQE" target="_blank">via ithinkdiff</a></p>
<p>btw，<strong>广告广告，本博所在的 VPS 招房客了，需要主机的中小博客可以</strong><a href="http://calothorax.com/hosting"><strong>看看这里</strong></a><strong>，配置超强，资费合理，数量有限 ：）</strong>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.istef.info%2F2010%2F01%2F04%2Fgod-mode-of-windows-7%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.istef.info%2F2010%2F01%2F04%2Fgod-mode-of-windows-7%2F&amp;style=compact&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.istef.info/2010/01/04/god-mode-of-windows-7/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Google Chrome &amp; Chromium</title>
		<link>http://blog.istef.info/2009/12/10/google-chrome-chromium/</link>
		<comments>http://blog.istef.info/2009/12/10/google-chrome-chromium/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 07:14:25 +0000</pubDate>
		<dc:creator>iStef</dc:creator>
				<category><![CDATA[Experiences]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[extensions]]></category>
		<category><![CDATA[gogle chrome]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://blog.istef.info/?p=2050</guid>
		<description><![CDATA[憋了不知多久，Google Chrome 的 Mac 和 Linux Beta 测试版终于出来了。虽然在它没出之前，我们老早老早之前就都用上了，但 Beta 版正式推出，说明 Google Chrome 现在已经足够稳定了，怕没完没了 Crash 的朋友可以放心大胆用了。 当然更令我们兴奋的消息是 Chrome 终于支持扩展了，虽然这个也是老早老早之前就用上了，但这次 Google 干脆出了个 Extensions Gallery，我们有理由相信它今后会像 Firefox Addons 一样变得强大无比。 然后就是郁闷事儿了。虽然说 Google 内部那帮人很多用 Mac 的，但最终都 Beta 的 Chrome 里，只有 Windows 版本可以支持扩展，其它的都不行。这让我们这些 Mac 用户，还有 Linux 用户们痛苦不已。不过扩展这功能在 Mac 版的 Chrome 里也是老早老早就有了，甚至还有个 Extension Manager，没想到 Google 竟然在 Beta 推出时将其河蟹了，完全让人无法理解。 不过我们还是有办法解禁这项功能的，答案就是 Chromium，利用 Dev 版本的 Google [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.istef.info/wp-content/uploads/2009/12/Chrome-1.jpg"><img class="alignnone size-full wp-image-2051" title="Chrome-1" src="http://blog.istef.info/wp-content/uploads/2009/12/Chrome-1.jpg" alt="Chrome-1" width="458" height="237" /></a></p>
<p>憋了不知多久，Google Chrome 的 <a href="http://www.google.com/chrome?platform=mac&amp;hl=en" target="_blank">Mac</a> 和 <a href="http://www.google.com/chrome?platform=linux&amp;hl=en" target="_blank">Linux</a> Beta 测试版终于出来了。虽然在它没出之前，我们老早老早之前就都用上了，但 Beta 版正式推出，说明 Google Chrome 现在已经足够稳定了，怕没完没了 Crash 的朋友可以放心大胆用了。</p>
<p>当然更令我们兴奋的消息是 Chrome 终于支持扩展了，虽然这个也是老早老早之前就用上了，但这次 Google 干脆出了个 <a href="https://chrome.google.com/extensions" target="_blank">Extensions Gallery</a>，我们有理由相信它今后会像 Firefox Addons 一样变得强大无比。</p>
<p>然后就是郁闷事儿了。虽然说 Google 内部那帮人很多用 Mac 的，但最终都 Beta 的 Chrome 里，只有 Windows 版本可以支持扩展，其它的都不行。这让我们这些 Mac 用户，还有 Linux 用户们痛苦不已。不过扩展这功能在 Mac 版的 Chrome 里也是老早老早就有了，甚至还有个 Extension Manager，没想到 Google 竟然在 Beta 推出时将其河蟹了，完全让人无法理解。</p>
<p>不过我们还是有办法解禁这项功能的，答案就是 Chromium，利用 Dev 版本的 Google Chrome 就可以使用这些扩展了。不卖关子了，具体方法如下：</p>
<ol>
<li>下载个 Chromium，当然要支持扩展的版本。不过我想没人愿意花一个小时下代码，然后装个 2.X G 的 XCode 然后再花几小时从源码编译，我等懒人还是直接下载 Google 编译好的 Chromium 版本即可。您可以在<a href="http://build.chromium.org/buildbot/continuous/mac/LATEST/" target="_blank">这里</a>下载最新的版本，如果不能用可以自己找找之前的版本，当然看看 waterfall 的记录是个不错的办法。</li>
<li>然后用<a href="http://grack.com/blog/2009/12/08/re-enable-install-button-for-mac-chrome-extensions/" target="_blank">这篇文章的方法</a>，在收藏夹里添个 Bookmarklet。如果懒得看 E 文，就把那个 Enable Extension Install 的链接直接拖放到收藏工具栏即可。</li>
<li>访问 Chrome Extesions 的官方网站，找到中意的扩展，Google 此时会提示你你的浏览器版本不支持扩展，无视之，点击刚刚加上的 Bookmarklet，安装按钮立刻变为蓝色有效的状态，装上就好了。</li>
</ol>
<p><a href="http://blog.istef.info/wp-content/uploads/2009/12/Chrome-2.jpg"><img class="alignnone size-full wp-image-2053" title="Chrome-2" src="http://blog.istef.info/wp-content/uploads/2009/12/Chrome-2.jpg" alt="Chrome-2" width="299" height="215" /></a></p>
<p>一切就是那么简单，喜欢速度飞快上网的朋友建议试试。我截图中那个版本还是不错的，我用了两天了只 Crash 了一次还是在关闭的时候。另外 Lifehacker 还有个<a href="http://lifehacker.com/5421752/18-extensions-worth-downloading-from-google-chromes-gallery?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+lifehacker/full+(Lifehacker)" target="_blank">扩展推荐文章</a>，毫无头绪的朋友可以看看。
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.istef.info%2F2009%2F12%2F10%2Fgoogle-chrome-chromium%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.istef.info%2F2009%2F12%2F10%2Fgoogle-chrome-chromium%2F&amp;style=compact&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.istef.info/2009/12/10/google-chrome-chromium/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QuickTime X 的屏幕录像功能</title>
		<link>http://blog.istef.info/2009/09/14/quicktime-x-screencas/</link>
		<comments>http://blog.istef.info/2009/09/14/quicktime-x-screencas/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 08:39:23 +0000</pubDate>
		<dc:creator>iStef</dc:creator>
				<category><![CDATA[Experiences]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[quicktime]]></category>
		<category><![CDATA[snow leopard]]></category>

		<guid isPermaLink="false">http://blog.istef.info/?p=1908</guid>
		<description><![CDATA[苹果的 Snow Leopard 系统带来了一系列的更新，其中变化最大的恐怕非 QuickTime 莫属了。这个曾经一度被我无视的随机软件在武装了硬件解码 H.264 和即时上传到 YouTube / MobileMe 之后重回了很多人的视线。今天本想用它转一段视频到 iPhone 的，无意中发现了 QuickTime X 还可以进行屏幕录像。 随即我便测试了一下这个功能，给我的印象可以简单总结：简便、实用！ Quicktime X 的屏幕录制可选参数很少，只有清晰度和声音可以选择，相对于专业屏幕录制软件逊色很多，但我认为这并不妨碍它的实用性，毕竟很多时候我们只是需要简单的做个屏幕录像做个 Howto 之类的东西分享给朋友，Quicktime X 的功呢就足够了。 Quicktime X 录制好的视频可以通过它便捷的发布功能，以多种形式分享。我们可以进行简单的剪裁，然后上传到 YouTube 或 MobileMe 分享给朋友，也可以生成 Web 代码放置在自己的网站上。值得一提的是 Quicktime X 生成的 Web 代码还是很酷的，和 Apple 网站上视频的效果一样的。我随便录了一段视频如下，有兴趣的朋友不妨也试试。 以后没准我再做什么 Howto 之类的东西就会用屏幕录像这种形式了，呵呵。]]></description>
			<content:encoded><![CDATA[<p>苹果的 Snow Leopard 系统带来了一系列的更新，其中变化最大的恐怕非 QuickTime 莫属了。这个曾经一度被我无视的随机软件在武装了硬件解码 H.264 和即时上传到 YouTube / MobileMe 之后重回了很多人的视线。今天本想用它转一段视频到 iPhone 的，无意中发现了 QuickTime X 还可以进行屏幕录像。</p>
<p><img class="alignnone size-full wp-image-1909" title="QuickTime X screencast" src="http://blog.istef.info/wp-content/uploads/2009/09/09-09-14-1.jpg" alt="QuickTime X screencast" width="442" height="107" /></p>
<p>随即我便测试了一下这个功能，给我的印象可以简单总结：简便、实用！</p>
<p>Quicktime X 的屏幕录制可选参数很少，只有清晰度和声音可以选择，相对于专业屏幕录制软件逊色很多，但我认为这并不妨碍它的实用性，毕竟很多时候我们只是需要简单的做个屏幕录像做个 Howto 之类的东西分享给朋友，Quicktime X 的功呢就足够了。</p>
<p>Quicktime X 录制好的视频可以通过它便捷的发布功能，以多种形式分享。我们可以进行简单的剪裁，然后上传到 YouTube 或 MobileMe 分享给朋友，也可以生成 Web 代码放置在自己的网站上。值得一提的是 Quicktime X 生成的 Web 代码还是很酷的，和 Apple 网站上视频的效果一样的。我随便录了一段视频如下，有兴趣的朋友不妨也试试。</p>
<p><a href="http://blog.istef.info/demo/quicktimex-screencast/"><br />
	<img src="http://blog.istef.info/demo/quicktimex-screencast/test.jpg" width="480" height="320" /><br />
</a></p>
<p>以后没准我再做什么 Howto 之类的东西就会用屏幕录像这种形式了，呵呵。
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.istef.info%2F2009%2F09%2F14%2Fquicktime-x-screencas%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.istef.info%2F2009%2F09%2F14%2Fquicktime-x-screencas%2F&amp;style=compact&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.istef.info/2009/09/14/quicktime-x-screencas/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Google 实时搜索</title>
		<link>http://blog.istef.info/2009/09/14/google-realtime-search/</link>
		<comments>http://blog.istef.info/2009/09/14/google-realtime-search/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 00:12:11 +0000</pubDate>
		<dc:creator>iStef</dc:creator>
				<category><![CDATA[Experiences]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[realtime]]></category>
		<category><![CDATA[search]]></category>

		<guid isPermaLink="false">http://blog.istef.info/?p=1903</guid>
		<description><![CDATA[ReadWriteWeb 上一篇文章讲述了如果通过 URL Hack 的方法得到特定时间段的 Google 搜索结果，稍加修改这个参数，甚至可以得到 10 分钟以内甚至几秒钟以内的搜索结果。这样其实就变相得到了近似“实时”的搜索结果。鉴于 Twitter 之类的服务日益盛行，这一功能看来越来越有用。 虽然 RWW 上讲的方法并不困难，但对于普通用户来说，修改 URL 还是复杂了一点儿，特别是如果经常使用就更加烦了。现在，如果你想体验 Google Real Time Search 又懒得自己修改参数的话，可以通过下面这个 Bookmarklet 做到： Google Realtime! 你可以把这个 Bookmarklet 拖动到浏览器的收藏栏上，点击之，输入关键字即可得到最近十分钟收录的搜索结果。当然，你也可以按照 RWW 讲述的方法，修改 &#38;tbs=qdr:n10 这一段获得其它时间段的结果，例如改为 n30 返回 30 分钟内的结果，s10 则返回十秒钟内的结果。 Google 的玩法又多了一种，大家可以发挥一下创意，实时搜索可以做的事情还是相当有趣的。]]></description>
			<content:encoded><![CDATA[<p>ReadWriteWeb 上一篇文章讲述了<a href="http://www.readwriteweb.com/archives/make_google_search_real-time_with_this_url_hack.php" target="_blank">如果通过 URL Hack 的方法得到特定时间段的 Google 搜索结果</a>，稍加修改这个参数，甚至可以得到 10 分钟以内甚至几秒钟以内的搜索结果。这样其实就变相得到了近似“实时”的搜索结果。鉴于 Twitter 之类的服务日益盛行，这一功能看来越来越有用。</p>
<p>虽然 RWW 上讲的方法并不困难，但对于普通用户来说，修改 URL 还是复杂了一点儿，特别是如果经常使用就更加烦了。现在，如果你想体验 Google Real Time Search 又懒得自己修改参数的话，可以通过下面这个 Bookmarklet 做到：</p>
<p><a title="Google Realtime Search" href="javascript:(function()%7B%20p=prompt('Search%20term:','');%20if(p)%7B%20document.location.href='http://www.google.com/search?as_qdr=n10&amp;q='%20+%20escape(p)%7D%20%7D)();">Google Realtime!</a></p>
<p>你可以把这个 Bookmarklet 拖动到浏览器的收藏栏上，点击之，输入关键字即可得到最近十分钟收录的搜索结果。当然，你也可以按照 RWW 讲述的方法，修改 &amp;tbs=qdr:n10 这一段获得其它时间段的结果，例如改为 n30 返回 30 分钟内的结果，s10 则返回十秒钟内的结果。</p>
<p><img class="alignnone size-full wp-image-1905" title="google realtime search" src="http://blog.istef.info/wp-content/uploads/2009/09/09-9-13-1.jpg" alt="google realtime search" width="537" height="331" /></p>
<p>Google 的玩法又多了一种，大家可以发挥一下创意，实时搜索可以做的事情还是相当有趣的。
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.istef.info%2F2009%2F09%2F14%2Fgoogle-realtime-search%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.istef.info%2F2009%2F09%2F14%2Fgoogle-realtime-search%2F&amp;style=compact&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.istef.info/2009/09/14/google-realtime-search/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>单网卡 Ubuntu 服务器打造 PPTP Server</title>
		<link>http://blog.istef.info/2008/10/17/ubuntu-pptp-server/</link>
		<comments>http://blog.istef.info/2008/10/17/ubuntu-pptp-server/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 15:08:20 +0000</pubDate>
		<dc:creator>iStef</dc:creator>
				<category><![CDATA[Experiences]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[pptpd]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[vpn]]></category>

		<guid isPermaLink="false">http://blog.istef.info/?p=1864</guid>
		<description><![CDATA[自从实验室放了台 Linux 服务器后，可玩的东西就越来越多了。虽然这台服务器主要的工作是 Web Server，但鉴于我们那小站压力非常之小，服务器资源绝大多数还是浪费着，所以让它多干些活是个不错的选择。实验室的内部网络中有不少非常有用的资源，例如科研用的文献资料，个人的实验数据等等，这些内容一旦离开实验室就不那么容易访问到了。解决这个问题最好的办法就是 VPN。在 Ubuntu 上搭建 VPN 服务器的方法非常多，比较著名的有 PPTP, L2TP/IPSec 和 OpenVPN。这三种方式中后两者的安全性比较好，但配置较麻烦。其中 OpenVPN 在 Windows/Mac 平台上还需要额外的客户端。而 L2TP/IPSec 方式虽然比较好，但我配置后，虽然 Windows 和 Linux 用户没有问题，但 Mac/iPhone 却始终无法连上，所以暂时删掉了，日后搞清楚是什么问题再换到这种方式。 只剩下 PPTP 了。事实上 PPTP 是这三者中配置最容易的方式，而且由于 Windows/Mac 系统中都内建相应的客户端，使用起来非常方便。下面我就简单写写我的安装过程，希望对需要的朋友有用。当然如果您有什么高见，也欢迎您提出。 首先，我所有的操作都是在之前文章中介绍的 Ubuntu 8.04 Server 系统中操作的，如果您的系统和我的不一样，请参考之前的两篇文章。我的服务器环境是单网卡 eth0。 在 Ubuntu 中建立 pptp server 需要的软件包为 pptpd，用 apt-get 即可安装： sudo apt-get install pptpd 系统会自动解决依赖关系，安装好后，需要进行一番设置。首先编辑 /etc/pptpd.conf sudo [...]]]></description>
			<content:encoded><![CDATA[<p>自从实验室放了台 Linux 服务器后，可玩的东西就越来越多了。虽然这台服务器主要的工作是 Web Server，但鉴于我们那小站压力非常之小，服务器资源绝大多数还是浪费着，所以让它多干些活是个不错的选择。实验室的内部网络中有不少非常有用的资源，例如科研用的文献资料，个人的实验数据等等，这些内容一旦离开实验室就不那么容易访问到了。解决这个问题最好的办法就是 VPN。在 Ubuntu 上搭建 VPN 服务器的方法非常多，比较著名的有 PPTP, L2TP/IPSec 和 OpenVPN。这三种方式中后两者的安全性比较好，但配置较麻烦。其中 OpenVPN 在 Windows/Mac 平台上还需要额外的客户端。而 L2TP/IPSec 方式虽然比较好，但我配置后，虽然 Windows 和 Linux 用户没有问题，但 Mac/iPhone 却始终无法连上，所以暂时删掉了，日后搞清楚是什么问题再换到这种方式。</p>
<p>只剩下 PPTP 了。事实上 PPTP 是这三者中配置最容易的方式，而且由于 Windows/Mac 系统中都内建相应的客户端，使用起来非常方便。下面我就简单写写我的安装过程，希望对需要的朋友有用。当然如果您有什么高见，也欢迎您提出。</p>
<p>首先，我所有的操作都是在<a href="http://blog.istef.info/2008/10/02/build-a-linux-light-server/">之前文章中介绍的 Ubuntu 8.04 Server 系统</a>中操作的，如果您的系统和我的不一样，请参考之前的<a href="http://blog.istef.info/2008/10/02/setup-ssh-server-on-ubuntu-server/">两篇文章</a>。我的服务器环境是单网卡 eth0。</p>
<p>在 Ubuntu 中建立 pptp server 需要的软件包为 pptpd，用 apt-get 即可安装：</p>
<blockquote>
<pre>sudo apt-get <abbr title="Thanks zz!">install</abbr> pptpd</pre>
</blockquote>
<p>系统会自动解决依赖关系，安装好后，需要进行一番设置。首先编辑 /etc/pptpd.conf</p>
<blockquote>
<pre>sudo nano /etc/pptpd.conf</pre>
</blockquote>
<p>去掉文件最末端的 localip 和 remoteip 两个参数的注释，并进行相应修改。这里，localip 是 VPN 连通后服务器的 ip 地址，而 remoteip 则是客户端的可分配 ip 地址。下面是我的配置：</p>
<blockquote>
<pre>localip 10.100.0.1
remoteip 10.100.0.2-10</pre>
</blockquote>
<p>编辑好这个文件后，我们需要编辑 /etc/ppp/pptpd-options 文件，还是用 nano 编辑，命令这里就不写了。这里绝大多数参数只需维持原来的默认值即可，我们只需要改变其中的 ms-dns 选项，为 VPN 客户端指派 DNS 服务器地址：</p>
<blockquote>
<pre>ms-dns 202.113.16.10
ms-dns 208.67.222.222</pre>
</blockquote>
<p>修改 /etc/ppp/chap-secrets 文件，这里面存放着 VPN 的用户名和密码，根据你的实际情况填写即可。如文件中注释所示，第一列是用户名，第二列是服务器名（默认写 pptpd 即可，如果在 pptpd-options 文件中更改过的话，注意这里保持一致），第三列是密码，第四列是 IP 限制（不做限制写 * 即可）。这里<a href="http://blog.istef.info">我</a>就不贴我的配置了 <img src='http://blog.istef.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>全部搞定后，我们需要重启 pptpd 服务使新配置生效：</p>
<blockquote>
<pre>sudo /etc/init.d/pptpd restart</pre>
</blockquote>
<p>找一台 Windows 电脑，新建个 VPN 链接，地址填服务器的 IP（或域名），用户名密码填刚才设置好的，域那项空着（如果你在 pptpd-options 中设置了，这里就保持一致），点连接就可以了。正常情况下您应该能够建立与服务器的 VPN 链接了。</p>
<p>建立连接之后，您会发现除了可以访问服务器的资源，其余内外和互联网的内容均无法访问。如果需要访问这些内容的话，我们还需要进一步设置：</p>
<p>首先，开启 ipv4 forward。方法是，修改 /etc/sysctl.conf，找到类似下面的行并取消它们的注释：</p>
<blockquote>
<pre>net.ipv4.ip_forward=1</pre>
</blockquote>
<p>然后使新配置生效：</p>
<blockquote>
<pre>sudo sysctl -p</pre>
</blockquote>
<p>有些时候，经过这样设置，客户端机器就可以上网了（我在虚拟机上这样操作后就可以了）。但我在实验室的服务器上这样操作后仍然无法访问网络，这样我们就需要建立一个 NAT。这里我们使用强大的 iptables 来建立 NAT。首先，先安装 iptables：</p>
<blockquote>
<pre>sudo apt-get intall iptables</pre>
</blockquote>
<p>装好后，我们向 nat 表中加入一条规则：</p>
<blockquote>
<pre>sudo iptables -t nat -A POSTROUTING -s 10.100.0.0/24 -o eth0 -j MASQUERADE</pre>
</blockquote>
<p>这样操作后，客户端机器应该就可以上网了。</p>
<p>但是，只是这样，iptables 的规则会在下次重启时被清除，所以<a href="http://yangliu.name">我们</a>还需要把它保存下来，方法是使用 iptables-save 命令：</p>
<blockquote>
<pre>sudo iptables-save &gt; /etc/iptables-rules</pre>
</blockquote>
<p>然后修改 /etc/network/interfaces 文件，找到 eth0 那一节，在对 eth0 的设置最末尾加上下面这句：</p>
<blockquote>
<pre>pre-up iptables-restore &lt; /etc/iptables-rules</pre>
</blockquote>
<p>这样当网卡 eth0 被加载的时候就会自动载入我们预先用 iptables-save 保存下的配置。</p>
<p>到此，一个 VPN Server/Gateway 基本就算架设完毕。当然，也许你按照我的方法做了，还是无法成功，那么下面总结一些我碰到的问题和解决方案：</p>
<h3 style="padding-left: 30px;">无法建立 VPN 连接</h3>
<p style="padding-left: 30px;">安装好 pptpd 并设置后，客户端还是无法建立到服务器的连接。造成的原因可能有以下几种：</p>
<blockquote>
<ol>
<li>服务器端的防火墙设置：PPTP 服务需要使用 1723(tcp) 端口和 gre 协议，因此请确保您的防火墙设置允许这两者通行。</li>
<li>如果服务器在路由器后面，请确保路由器上做好相应的设置和端口转发。</li>
<li>如果服务器在路由器后面，那么请确保你的服务器支持 VPN Passthrough。</li>
<li>如果客户端在路由器后面，那么客户端所使用的路由器也必须支持 VPN Passthrough。其实市面上稍微好点的路由器都是支持 VPN Passthrough 的，当然也不排除那些最最最便宜的便宜货确实不支持。当然，如果你的路由器可以刷 DD-Wrt 的话就刷上吧，DD-Wrt 是支持的。</li>
</ol>
</blockquote>
<blockquote>
<h3>能建立链接，但“几乎”无法访问互联网</h3>
</blockquote>
<blockquote><p>这里我使用“<a href="http://hi2.me">几乎</a>”这个词，是因为并不是完全不能访问互联网。症状为，打开 Google 搜索没问题，但其它网站均无法打开；SSH 可用，但 scp 不行；ftp 能握手，但传不了文件。我就遇到了这种情况，仔细 Google 后发现原来是 MTU 的问题，用 ping 探测了一下果然是包过大了。知道问题就好办了，我们可以通过 iptables 来修正这一问题。具体原理就不讲了，需要的自己 Google。这里只说解决方案，在 filter 表中添加下面的规则：</p></blockquote>
<blockquote style="padding-left: 30px;">
<pre>sudo iptables -A FORWARD -s 10.100.0.0/24 -p tcp -m tcp --tcp-flags SYN,RST SYN
-j TCPMSS --set-mss 1200</pre>
</blockquote>
<blockquote><p>上面规则中的 1200 可以根据你的实际情况修改，为了保证最好的网络性能，这个值应该不断修改，直至能保证网络正常使用情况下的最大值。</p></blockquote>
<p>好了，至此，一台单网卡 pptp-server 就算完成了。</p>
<p>ps，最近发现我的文章被大大小小无数网站抄袭，其中不乏一些“大站”。这里我用“抄袭”这个词，是因为你们的做法已经远远超出了正常的“转载”。我每篇文章后都会强调，“<strong>转载写明出处，商业网站使用请先获得授权</strong>”，但不知道为什么对于这些小编们，发个邮件问我一下会这么难。这次我就不点名了，先警告一下。如果让我发现下次的话，那么别怪我，我会及时给您曝光的。
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.istef.info%2F2008%2F10%2F17%2Fubuntu-pptp-server%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.istef.info%2F2008%2F10%2F17%2Fubuntu-pptp-server%2F&amp;style=compact&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.istef.info/2008/10/17/ubuntu-pptp-server/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>跨浏览器的 inline-block 实现[CSS]</title>
		<link>http://blog.istef.info/2008/10/13/cross-browser-inline-block-css/</link>
		<comments>http://blog.istef.info/2008/10/13/cross-browser-inline-block-css/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 16:45:59 +0000</pubDate>
		<dc:creator>iStef</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Experiences]]></category>
		<category><![CDATA[cross browser]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[inline-block]]></category>

		<guid isPermaLink="false">http://blog.istef.info/?p=1861</guid>
		<description><![CDATA[最近在为自己做个新站，想到了些效果，实现时碰到了些小麻烦，比如这个 inline block。所幸大多数问题都解决了，所以写出来分享一下。 我们在制作网页时，有时会希望一个元素既能像 block 一样定义宽度和高度，又可以像普通的 inline 一样不断行。例如下面这张图片中红线标出的地方： 通常我们实现这样的效果会使用这样的代码： &#60;a href=&#8221;#&#8221;&#62;&#60;img src=&#8221;&#8230;.&#8221; alt=&#8221;&#8230;.&#8221; /&#62;&#60;/a&#62; 这样虽然可以达到目的，但相对来说代码还是不够精炼，也不够灵活。而理想的方式，我们仅通过下面的代码即可实现： &#60;a href=&#8221;#&#8221;&#62;Yangliu.name&#60;/a&#62; 这样一来，我们就需要对 a 标签指定 width height 和 background-image。但 a 标签默认的 display 属性是 inline，width、height 是无效的。而如果对 a 设置 display:block，虽然可以解决宽度高度的问题，但元素会自动断行，无法达到我们需要的效果。有没有什么方式可以实现类似 img 标签那样，既可以设定高度宽度，又不会自动断行呢？ 答案是肯定的。在 Opera 和 Webkit 中支持一个 CSS2 的属性 display: inline-block。利用这个属性，在 Opera 下即可完全实现我们所需的效果，但在其它浏览器下就不行了。 display 属性另外还有一个不太常用的值 display: inline-table。利用这个值也可以完全实现我们所需的效果。这个属性被除了 IE 以外的所有浏览器正确支持，但是&#8230;&#8230; 呃，又是 IE。虽然在面对 CSS [...]]]></description>
			<content:encoded><![CDATA[<p>最近在为自己做个新站，想到了些效果，实现时碰到了些小麻烦，比如这个 inline block。所幸大多数问题都解决了，所以写出来分享一下。</p>
<p>我们在制作网页时，有时会希望一个元素既能像 block 一样定义宽度和高度，又可以像普通的 inline 一样不断行。例如下面这张图片中红线标出的地方：</p>
<p><a href="http://blog.istef.info/wp-content/uploads/2008/10/final-result.jpg"><img class="alignnone size-full wp-image-1862" title="inline-block" src="http://blog.istef.info/wp-content/uploads/2008/10/final-result.jpg" alt="" width="397" height="81" /></a></p>
<p>通常我们实现这样的效果会使用这样的代码：</p>
<blockquote><p>&lt;a href=&#8221;#&#8221;&gt;&lt;img src=&#8221;&#8230;.&#8221; alt=&#8221;&#8230;.&#8221; /&gt;&lt;/a&gt;</p></blockquote>
<p>这样虽然可以达到目的，但相对来说代码还是不够精炼，也不够灵活。而理想的方式，我们仅通过下面的代码即可实现：</p>
<blockquote><p>&lt;a href=&#8221;#&#8221;&gt;Yangliu.name&lt;/a&gt;</p></blockquote>
<p>这样一来，我们就需要对 a 标签指定 width height 和 background-image。但 a 标签默认的 display 属性是 inline，width、height 是无效的。而如果对 a 设置 display:block，虽然可以解决宽度高度的问题，但元素会自动断行，无法达到我们需要的效果。有没有什么方式可以实现类似 img 标签那样，既可以设定高度宽度，又不会自动断行呢？</p>
<p>答案是肯定的。在 Opera 和 Webkit 中支持一个 CSS2 的属性 display: inline-block。利用这个属性，在 Opera 下即可完全实现我们所需的效果，但在其它浏览器下就不行了。</p>
<p>display 属性另外还有一个不太常用的值 display: inline-table。利用这个值也可以完全实现我们所需的效果。这个属性被除了 IE 以外的所有浏览器正确支持，但是&#8230;&#8230; 呃，又是 IE。虽然在面对 CSS 的时候所有 Web Developer 都会恨之入骨，但放弃 IE 就等于放弃 70% 的用户，所以我们还是得找出其它的解决方案。</p>
<p>没辙了，只好 Google，结果还真给我<a href="http://foohack.com/2007/11/cross-browser-support-for-inline-block-styling/" target="_blank">找到了</a>。在这篇文章中指出，如果你首先触发 IE 的 hasLayout，然后再设置它的 display: inline，这个元素将变为 inline-block! 这样一来，我们就可以利用 IE 这个不可理喻的特点，结合一些 CSS Hacks，给出兼容各种浏览器的 CSS 代码：</p>
<blockquote>
<pre>.<strong><em>element-class</em></strong> {
    display: -moz-inline-stack;  //Firefox only code
    display: inline-block;       //some standard browsers
    zoom: 1;                     //IE only
    *display: inline;            //Only IE know this code (CSS Hack)
}</pre>
</blockquote>
<p>通过这样的代码就可以实现在各种浏览器中表现一致的 inline-block 了。不过这种方式有个小缺憾，就是无法通过 W3C CSS 验证。当然，要想通过验证也很简单，可以对除了 IE 之外的浏览器发出 inline-table 属性的样式表，对于 IE 单独发出一份 IE Only 的 CSS。
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.istef.info%2F2008%2F10%2F13%2Fcross-browser-inline-block-css%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.istef.info%2F2008%2F10%2F13%2Fcross-browser-inline-block-css%2F&amp;style=compact&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.istef.info/2008/10/13/cross-browser-inline-block-css/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>让你的 Firefox 大变身成 Google Chrome</title>
		<link>http://blog.istef.info/2008/10/06/turn-firefox-to-google-chrome/</link>
		<comments>http://blog.istef.info/2008/10/06/turn-firefox-to-google-chrome/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 15:05:06 +0000</pubDate>
		<dc:creator>iStef</dc:creator>
				<category><![CDATA[Experiences]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[google chrome]]></category>

		<guid isPermaLink="false">http://blog.istef.info/?p=1855</guid>
		<description><![CDATA[话说换了 Firefox 3 之后，我就突然对它的默认主题非常欣赏，以至于折腾了好几次最终还是用回默认主题。在我看来，用 Personal Menu 隐藏掉菜单栏的 Firefox 3 默认主题基本上就是最符合我需要的浏览器样式了：简洁而够用的工具栏按钮，最大化的浏览面积。直到 Google Chrome 的出现，才让我对一个理想的 Browser UI 有了更新的认识。其实说白了就是能得到更大的浏览面积，我对这一点的追求始终乐此不疲。今天在 Lifehacker 上看到一篇将 Firefox 打造成 Chrome 样式的文章，立即实践了一下，个人对结果比较满意，所以简单介绍一下，希望对有同样需求的朋友有用。 好了，废话不说了，先看最终成果，还是很不错的吧。 下面看一下具体变身方法，其实很简单： 安装 ChromiGlass 扩展：这个扩展的功能是将 Firefox 的标签栏部分也加上 Vista 的透明效果。如果你长期最大化浏览器，或是对透明不感冒，或是对 Vista 不感冒，或是干脆没在用 Vista 的话，完全可以无视这个扩展。 安装 Personal Menu 扩展：这个是我个人必备的扩展，它可以允许你将 Firefox 的 Menubar 隐藏起来，然后通过一个图标来调出弹出式菜单。当然，我个人更喜欢 Personal Menu 的极限用法，就是连那个可以调出菜单的按钮都去掉，需要用菜单的时候，按一下 Alt 键就可以了。当然了 Mac 用户无此问题，可以无视此扩展。 安装 ChromiFox 主题：事实上这才是最关键的一步。装上这个主题之后，你的 Firefox 基本上就 [...]]]></description>
			<content:encoded><![CDATA[<p>话说换了 Firefox 3 之后，我就突然对它的默认主题非常欣赏，以至于折腾了好几次最终还是用回默认主题。在我看来，用 Personal Menu 隐藏掉菜单栏的 Firefox 3 默认主题基本上就是最符合我需要的浏览器样式了：简洁而够用的工具栏按钮，最大化的浏览面积。直到 Google Chrome 的出现，才让我对一个理想的 Browser UI 有了更新的认识。其实说白了就是能得到更大的浏览面积，我对这一点的追求始终乐此不疲。今天在 Lifehacker 上看到一篇<a href="http://lifehacker.com/5059213/turn-firefox-into-a-google-chrome-clone" target="_blank">将 Firefox 打造成 Chrome 样式的文章</a>，立即实践了一下，个人对结果比较满意，所以简单介绍一下，希望对有同样需求的朋友有用。</p>
<p>好了，废话不说了，先看最终成果，还是很不错的吧。</p>
<p><img class="alignnone size-full wp-image-1856" title="firefox Google Chrome" src="http://blog.istef.info/wp-content/uploads/2008/10/firefox-chrome.jpg" alt="" width="489" height="327" /></p>
<p>下面看一下具体变身方法，其实很简单：</p>
<ol>
<li>安装 <a href="https://addons.mozilla.org/en-US/firefox/addon/9115" target="_blank">ChromiGlass 扩展</a>：这个扩展的功能是将 Firefox 的标签栏部分也加上 Vista 的透明效果。如果你长期最大化浏览器，或是对透明不感冒，或是对 Vista 不感冒，或是干脆没在用 Vista 的话，完全可以无视这个扩展。</li>
<li>安装 <a href="https://addons.mozilla.org/en-US/firefox/addon/3895" target="_blank">Personal Menu 扩展</a>：这个是我个人必备的扩展，它可以允许你将 Firefox 的 Menubar 隐藏起来，然后通过一个图标来调出弹出式菜单。当然，我个人更喜欢 Personal Menu 的极限用法，就是连那个可以调出菜单的按钮都去掉，需要用菜单的时候，按一下 Alt 键就可以了。当然了 Mac 用户无此问题，可以无视此扩展。</li>
<li>安装 <a href="https://addons.mozilla.org/en-US/firefox/addon/8782" target="_blank">ChromiFox 主题</a>：事实上这才是最关键的一步。装上这个主题之后，你的 Firefox 基本上就 90% 形似 Google Chrome 了，很好看的说。</li>
</ol>
<p>好了，到这里整个“魔术”就完成了。其实启用 Google Chrome 风格，不仅仅是为了酷，为了拉风，对于我们日常使用来说还有以下好处：</p>
<ul>
<li>可以获得更大的工作区。Chrome 主题精简至极，但又不失去常用功能。在不影响正常使用的情况下，我们可以在原有的屏幕上看到更多的内容；</li>
<li>更合理的 UI。Chrome 主题将标签页放在了工具列的上方，我个人认为这才是符合逻辑的 UI 布局。毕竟诸如前进后退、地址搜索之类的才做都是针对当前页的，而不是针对浏览器全局的。</li>
<li>酷，拉风，吸引眼球，可以用来骗小MM让你手把手教她。</li>
</ul>
<p>当然，这个主题也不是百分百的完美，使用过程中还是发现一些小错误。当然，我更期望能有类似 Google Chrome 的状态栏（自动隐藏、鼠标躲避），标签页能放在标题栏上（这个恐怕通过插件实现很难）。不过眼看着 Google Chrome 也要支持插件和 GreaseMonkey 之类的东西了，到时候没准我就真的会抛弃 Firefox 了，呵呵。
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.istef.info%2F2008%2F10%2F06%2Fturn-firefox-to-google-chrome%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.istef.info%2F2008%2F10%2F06%2Fturn-firefox-to-google-chrome%2F&amp;style=compact&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.istef.info/2008/10/06/turn-firefox-to-google-chrome/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Ubuntu 服务器上 SSH Server 的安装和设置</title>
		<link>http://blog.istef.info/2008/10/02/setup-ssh-server-on-ubuntu-server/</link>
		<comments>http://blog.istef.info/2008/10/02/setup-ssh-server-on-ubuntu-server/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 14:43:51 +0000</pubDate>
		<dc:creator>iStef</dc:creator>
				<category><![CDATA[Experiences]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[openssh]]></category>
		<category><![CDATA[putty]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.istef.info/?p=1853</guid>
		<description><![CDATA[昨天的文章里，我记录了搭建一个小型 Ubuntu 服务器的过程，相信如果各位按照我写的做了，您的 Ubuntu Server 已经可以跑起来了。不过，现在这个系统只是个基本的系统，算不上服务器，因为什么都没法做。如果需要让它行使服务器的职能，还需要给它装一些软件。 因为我需要的服务器最终会被“抛弃”在实验室的某个角落，无论是后期设置还是维护的需要，都必须安装一个远程管理的工具。在 Linux 系统中，不二的选择就是 openssh 了。在 Ubuntu 中安装 openssh 实在是再简单不过的一件事情了，下面的内容也只是纯记录，给我这个菜鸟备个份。如果是高手直接绕过就好。 安装前的准备 Ubuntu 之所以好用，就是因为它继承了 debian 的 apt 系统，这一点相信您在昨天装系统的教程中已经感受到了。但是 apt 需要依赖网络，昨天我们装好的系统是暂时上不了网的，我们需要先设置一下。 首先，激活服务器的网卡，命令如下： sudo nano /etc/network/interfaces 在 interfaces 中添加以下内容： auto eth0 iface eth0 inet static address 202.113.235.181 netmask 255.255.255.0 gateway 202.113.235.1 这其中，斜体部分标注的 IP 地址是我服务器的设置，您需要根据您的具体情况修改。当然，如果您的服务器使用的是 DHCP 来分配 IP 地址，只需要写上 iface eth0 inet dhcp 就可以了，无需设置 [...]]]></description>
			<content:encoded><![CDATA[<p>昨天的文章里，我记录了<a href="http://blog.istef.info/2008/10/02/build-a-linux-light-server/">搭建一个小型 Ubuntu 服务器的过程</a>，相信如果各位按照我写的做了，您的 Ubuntu Server 已经可以跑起来了。不过，现在这个系统只是个基本的系统，算不上服务器，因为什么都没法做。如果需要让它行使服务器的职能，还需要给它装一些软件。</p>
<p>因为我需要的服务器最终会被“抛弃”在实验室的某个角落，无论是后期设置还是维护的需要，都必须安装一个远程管理的工具。在 Linux 系统中，不二的选择就是 openssh 了。在 Ubuntu 中安装 openssh 实在是再简单不过的一件事情了，下面的内容也只是纯记录，给我这个菜鸟备个份。如果是高手直接绕过就好。</p>
<h3>安装前的准备</h3>
<p>Ubuntu 之所以好用，就是因为它继承了 debian 的 apt 系统，这一点相信您在昨天装系统的教程中已经感受到了。但是 apt 需要依赖网络，昨天我们装好的系统是暂时上不了网的，我们需要先设置一下。</p>
<p>首先，激活服务器的网卡，命令如下：</p>
<blockquote><p>sudo nano /etc/network/interfaces</p></blockquote>
<p>在 interfaces 中添加以下内容：</p>
<blockquote>
<pre>auto eth0
iface eth0 inet static
address <em>202.113.235.181</em>
netmask <em>255.255.255.0</em>
gateway <em>202.113.235.1</em></pre>
</blockquote>
<p>这其中，斜体部分标注的 IP 地址是我服务器的设置，您需要根据您的具体情况修改。当然，如果您的服务器使用的是 DHCP 来分配 IP 地址，只需要写上 iface eth0 inet dhcp 就可以了，无需设置 address/netmask/gateway。</p>
<p>然后，修改 resolv.conf 配置 DNS 服务器：</p>
<blockquote><p>sudo nano /etc/resolv.conf</p></blockquote>
<p>添加您的 DNS 服务器地址：</p>
<blockquote>
<pre>nameserver <em>202.113.16.10</em>
nameserver <em>202.113.16.11</em></pre>
</blockquote>
<p>完成后，重新启动 networking 服务：</p>
<blockquote><p>sudo /etc/init.d/networking restart</p></blockquote>
<p>这样应该就可以连通网络了。如果您使用的是 ADSL，可能还需要装上 pppoe 之类的东西，考虑到服务器很少用这样的配置，这里就不讨论了，需要的话可以在网上查找。</p>
<h3>安装和设置 OpenSSH Server</h3>
<p>Ubuntu 下安装 OpenSSH Server 是无比轻松的一件事情，需要的命令只有一条：</p>
<blockquote><p>sudo apt-get install openssh-server</p></blockquote>
<p>随后，Ubuntu 会自动下载并安装 openssh server，并一并解决所有的依赖关系。当您完成这一操作后，您可以找另一台计算机，然后使用一个 SSH 客户端软件（强烈推荐 PuTTy），输入您服务器的 IP 地址。如果一切正常的话，等一会儿就可以连接上了。并且使用现有的用户名和密码应该就可以登录了。</p>
<p>事实上如果没什么特别需求，到这里 OpenSSH Server 就算安装好了。但是进一步设置一下，可以让 OpenSSH 登录时间更短，并且更加安全。这一切都是通过修改 openssh 的配置文件 sshd_config 实现的。</p>
<p>首先，您刚才实验远程登录的时候可能会发现，在输入完用户名后需要等很长一段时间才会提示输入密码。其实这是由于 sshd 需要反查客户端的 dns 信息导致的。我们可以通过禁用这个特性来大幅提高登录的速度。首先，打开 sshd_config 文件：</p>
<blockquote><p>sudo nano /etc/ssh/sshd_config</p></blockquote>
<p>找到 GSSAPI options 这一节，将下面两行注释掉：</p>
<blockquote>
<pre>#GSSAPIAuthentication yes
#GSSAPIDelegateCredentials no</pre>
</blockquote>
<p>然后重新启动 ssh 服务即可：</p>
<blockquote><p>sudo /etc/init.d/ssh restart</p></blockquote>
<p>再登录试试，应该非常快了吧 <img src='http://blog.istef.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>利用 PuTTy 通过证书认证登录服务器</h3>
<p>SSH 服务中，所有的内容都是加密传输的，安全性基本有保证。但是如果能使用证书认证的话，安全性将会更上一层楼，而且经过一定的设置，还能实现证书认证自动登录的效果。</p>
<p>首先修改 sshd_config 文件，开启证书认证选项：</p>
<blockquote>
<pre>RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys</pre>
</blockquote>
<p>修改完成后重新启动 ssh 服务。</p>
<p>下一步我们需要为 SSH 用户建立私钥和公钥。首先要登录到需要建立密钥的账户下，这里注意退出 root 用户，需要的话用 su 命令切换到其它用户下。然后运行：</p>
<blockquote><p>ssh-keygen</p></blockquote>
<p>这里，我们将生成的 key 存放在默认目录下即可。建立的过程中会提示输入 passphrase，这相当于给证书加个密码，也是提高安全性的措施，这样即使证书不小心被人拷走也不怕了。当然如果这个留空的话，后面即可实现 PuTTy 通过证书认证的自动登录。</p>
<p>ssh-keygen 命令会生成两个密钥，首先我们需要将公钥改名留在服务器上：</p>
<blockquote>
<pre>cd ~/.ssh
mv id_rsa.pub authorized_keys</pre>
</blockquote>
<p>然后将私钥 id_rsa 从服务器上复制出来，并删除掉服务器上的 id_rsa 文件。</p>
<p>服务器上的设置就做完了，下面的步骤需要在客户端电脑上来做。首先，我们需要将 id_rsa 文件转化为 PuTTy 支持的格式。这里我们需要利用 PuTTyGEN 这个工具：</p>
<p>点击 PuTTyGen 界面中的 Load 按钮，选择 id_rsa 文件，输入 passphrase（如果有的话），然后再点击 Save PrivateKey 按钮，这样 PuTTy 接受的私钥就做好了。</p>
<p>打开 PuTTy，在 Session 中输入服务器的 IP 地址，在 Connection-&gt;SSH-&gt;Auth 下点击 Browse 按钮，选择刚才生成好的私钥。然后回到 Connection 选项，在 Auto-login username 中输入证书所属的用户名。回到 Session 选项卡，输入个名字点 Save 保存下这个 Session。点击底部的 Open 应该就可以通过证书认证登录到服务器了。如果有 passphrase 的话，登录过程中会要求输入 passphrase，否则将会直接登录到服务器上，非常的方便。</p>
<p>好了，今天就写到这，以后逐步再写 AMP，Proftpd 和 Squid 的安装和设置。
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.istef.info%2F2008%2F10%2F02%2Fsetup-ssh-server-on-ubuntu-server%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.istef.info%2F2008%2F10%2F02%2Fsetup-ssh-server-on-ubuntu-server%2F&amp;style=compact&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.istef.info/2008/10/02/setup-ssh-server-on-ubuntu-server/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>打造轻巧的 Linux 服务器</title>
		<link>http://blog.istef.info/2008/10/02/build-a-linux-light-server/</link>
		<comments>http://blog.istef.info/2008/10/02/build-a-linux-light-server/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 16:41:36 +0000</pubDate>
		<dc:creator>iStef</dc:creator>
				<category><![CDATA[Experiences]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.istef.info/?p=1851</guid>
		<description><![CDATA[好久没写 Blog，忙啊什么的就不说了，懒是最大的原因。最近忙着给实验室做个网站，除了我熟悉的 Web Design &#38; Development 之外，这次我还搭建了一台 Linux 服务器。一方面用来放置我们的站点，另一方面实验室放一台服务器，也为实验室的成员们提供一些额外的服务，方便科研和学习。 虽然做 Web 我是轻车熟路了，但倒腾 Linux 服务器我绝对还是个新手。虽然平时为了开发也没少倒腾过，但基本上都是调一下 Apache 或 PHP 之类的事情。所以下面写的东西只是个记录，不敢班门弄斧，方法也都是 Google 来的，如果您有什么意见建议，欢迎您提出来。 本文只写一下搭建基本服务器的部分。发行版我选择的是 Ubuntu，虽然我知道 CentOS 或是 RHEL 可能性能会更好点，但毕竟 Ubuntu 比较熟悉也比较简单。Ubuntu 本身有 Server 版，而且可以几乎无需干预的安装好一台 LAMP Server，但 Linux 本身的乐趣就在于折腾，而且对于服务器我更希望知道到底都有什么东西在跑，所以我决定从搭建一个干净的基本系统开始。经过一番 Google，我找到了一个近乎“完美”的教程：Minimal Ubuntu 8.04 Server Install，下面的安装过程也基本就是按着这个教程来的，稍微改进满足了一下实际需要。 言归正传，开始进入安装。首先，用 Ubuntu 8.04 Desktop Live CD 引导服务器，开一个 Terminal 就可以开工了。 第一步，启动分区工具对硬盘分区。这里我使用的也是 cfdisk （不用 GPart 的原因是因为这台服务器压根就没鼠标 -_-b），对 [...]]]></description>
			<content:encoded><![CDATA[<p>好久没写 Blog，忙啊什么的就不说了，懒是最大的原因。最近忙着给实验室做个网站，除了我熟悉的 Web Design &amp; Development 之外，这次我还搭建了一台 Linux 服务器。一方面用来放置我们的站点，另一方面实验室放一台服务器，也为实验室的成员们提供一些额外的服务，方便科研和学习。</p>
<p>虽然做 Web 我是轻车熟路了，但倒腾 Linux 服务器我绝对还是个新手。虽然平时为了开发也没少倒腾过，但基本上都是调一下 Apache 或 PHP 之类的事情。所以下面写的东西只是个记录，不敢班门弄斧，方法也都是 Google 来的，如果您有什么意见建议，欢迎您提出来。</p>
<p>本文只写一下搭建基本服务器的部分。发行版我选择的是 Ubuntu，虽然我知道 CentOS 或是 RHEL 可能性能会更好点，但毕竟 Ubuntu 比较熟悉也比较简单。Ubuntu 本身有 Server 版，而且可以几乎无需干预的安装好一台 LAMP Server，但 Linux 本身的乐趣就在于折腾，而且对于服务器我更希望知道到底都有什么东西在跑，所以我决定从搭建一个干净的基本系统开始。经过一番 Google，我找到了一个近乎“完美”的教程：<a href="http://www.howtoforge.com/minimal-ubuntu-8.04-server-install" target="_blank">Minimal Ubuntu 8.04 Server Install</a>，下面的安装过程也基本就是按着这个教程来的，稍微改进满足了一下实际需要。</p>
<p>言归正传，开始进入安装。首先，用 Ubuntu 8.04 Desktop Live CD 引导服务器，开一个 Terminal 就可以开工了。</p>
<p>第一步，启动分区工具对硬盘分区。这里我使用的也是 cfdisk （不用 GPart 的原因是因为这台服务器压根就没鼠标 -_-b），对 500G 的硬盘进行了分区。命令如下：</p>
<blockquote><p>sudo su<br />
cfdisk /dev/sda</p></blockquote>
<p>首先分出 60MB 主分区用作 /boot，然后分 50GB 逻辑分区作为根分区，4GB 逻辑分区作为交换分区，剩下的分一个分区作为 /home 使用。分好后不要忘了写入分区表。</p>
<p>完成分区之后开始对各个分区进行格式化，为了方便，我只使用了 ext3 这一种格式：</p>
<blockquote><p>mkfs.ext3 /dev/sda1<br />
mkfs.ext3 /dev/sda5<br />
mkfs.ext3 /dev/sda6<br />
mkswap /dev/sda7</p></blockquote>
<p>完成分区后可以装基本系统了，这里需要使用 debootstrap，具体命令是：</p>
<blockquote><p>mkdir /min<br />
mount /dev/sda5 /min<br />
mkdir /min/boot<br />
mount /dev/sda1 /min/boot<br />
mkdir /min/home<br />
mount /dev/sda6 /min/home<br />
apt-get install debootstrap</p></blockquote>
<p>在执行 debootstrap 之前，建议先进行一下源设置。因为这一步需要下载大量软件，因此选用一个最快的源还是很有必要的。这里我使用的是 cn99 的源：</p>
<blockquote><p>nano /usr/share/debootstrap/scripts/hardy</p></blockquote>
<p>找到类似下面的段落（default_mirror），改为您需要的源：</p>
<blockquote><p>case $ARCH in amd64|i386|sparc)<br />
default_mirror http://ubuntu.cn99.com/ubuntu</p></blockquote>
<p>然后开始安装最小系统</p>
<blockquote><p>debootstrap hardy /min</p></blockquote>
<p>完成后，我们需要对这个系统进行一番设置使其可用。首先我们可以先将一些设置信息直接复制到目标系统中：</p>
<blockquote><p>cp /etc/hosts /min/etc/<br />
cp /etc/network/interfaces /min/etc/network/<br />
cp /etc/bash_completion /min/etc/<br />
cp /etc/bash.bashrc /min/etc/</p></blockquote>
<p>此外，我们还需要为光驱进行一些设置：</p>
<blockquote><p>mkdir -p /min/media/cdrom0<br />
ln -s cdrom0 /min/media/cdrom</p></blockquote>
<p>建立 fstab：</p>
<blockquote><p>nano /etc/fstab</p></blockquote>
<p>fstab 文件的内容大致如下：</p>
<blockquote>
<pre>proc            /proc           proc    defaults                   0       0
/dev/sda5	/               ext3    relatime                   0       1
/dev/sda1	/boot           ext3    relatime                   0       1
/dev/sda6	/home           ext3    relatime                   0       1
/dev/sda7	none            swap    sw                         0       0
/dev/cdrom      /media/cdrom0   udf,iso9660 user,noauto,exec,utf8  0       0</pre>
</blockquote>
<p>做完这一步，我的系统基本上就装好了，现在我们就可以 chroot 进去，进行进一步的配置：</p>
<blockquote><p>mount &#8211;bind /dev /min/dev<br />
mount -t proc proc /min/proc<br />
mount -t sysfs sysfs /min/sys<br />
chroot /min</p></blockquote>
<p>设定时区：</p>
<blockquote><p>cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime</p></blockquote>
<p>安装一个文本编辑器，我个人比较喜欢 nano，当然你也可以装 vim：</p>
<blockquote><p>apt-get install nano</p></blockquote>
<p>建立源列表，还是填入最快的源：</p>
<blockquote><p>nano /etc/apt/sources.list</p></blockquote>
<p>内容如下，使用的是 cn99 的源（我在教育网能到 1M/s 的速度）</p>
<blockquote>
<pre>deb http://ubuntu.cn99.com/ubuntu hardy main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu hardy-updates main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu hardy-security main restricted universe multiverse</pre>
</blockquote>
<p>更新源并升级现有软件：</p>
<blockquote><p>apt-get update<br />
apt-get dist-upgrade</p></blockquote>
<p>设置 root 用户密码，并新建一个用户，并使它有 sudo 权限：</p>
<blockquote><p>passwd<br />
adduser liuyang<br />
addgroup admin<br />
adduser liuyang admin<br />
echo &#8220;%admin ALL=(ALL) ALL&#8221;&gt;&gt;/etc/sudoers</p></blockquote>
<p>安装 grub，使目标系统可以引导：</p>
<blockquote><p>apt-get install linux-image-server grub<br />
mkdir /boot/grub<br />
update-grub<br />
update-initramfs -u</p></blockquote>
<p>目标系统已经设置完毕，现在推出 chroot，完成最后的操作 &#8211; 将 grub 装到 /dev/sda 的 MBR 上：</p>
<blockquote><p>exit<br />
grub-install &#8211;root-directory=/min &#8211;no-floppy &#8211;recheck /dev/sda</p></blockquote>
<p>重新启动系统，退出 Live CD，如果一切正常的话，你应该可以用一个“干净的” Ubuntu 引导起你的服务器了。
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.istef.info%2F2008%2F10%2F02%2Fbuild-a-linux-light-server%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.istef.info%2F2008%2F10%2F02%2Fbuild-a-linux-light-server%2F&amp;style=compact&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.istef.info/2008/10/02/build-a-linux-light-server/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>原生 iPhone 1.1.2 简明破解教程</title>
		<link>http://blog.istef.info/2008/01/23/otb-112-jailbreak/</link>
		<comments>http://blog.istef.info/2008/01/23/otb-112-jailbreak/#comments</comments>
		<pubDate>Tue, 22 Jan 2008 16:04:59 +0000</pubDate>
		<dc:creator>iStef</dc:creator>
				<category><![CDATA[Experiences]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[1.1.2]]></category>
		<category><![CDATA[jailbreak]]></category>

		<guid isPermaLink="false">http://blog.istef.info/2008/01/23/otb-112-jailbreak/</guid>
		<description><![CDATA[写这篇文章纯属记录一下备用，其实我基本就是按照 tgbus 上的流程做的，但还是想放在自己的博客上，以后查阅方便，也提供给需要的朋友。 收到阿里妈妈寄来的 iPhone 快两周了，虽然得到 iPhone 的过程有点曲折，但还是感谢阿里妈妈这么好的奖品。花了一周时间折腾的能打电话也基本明白了，碰巧今天一个朋友也买了个 iPhone 折腾死机了，我正好可以充一次专家帮他解决一下。 先看看两部 iPhone 的合影。都是 8G 原生 1.1.2，朋友买来后 JS 给直接降级到 1.0.2 + 卡贴使用，不太稳定，后来插到电脑上 iTunes 也不同步了，只好重新刷机了。好在 iPhone 几乎刷不死，不像 PSP 那样 下面是具体“简明”过程： 电脑上装上 iTunes，最新的 7.6 版没问题，用数据线连接 iPhone 和电脑，启动 iTunes； 原生（OTB） 1.1.2 版 iPhone，塞好 AT&#38;T 的卡或带卡贴的 SIM 卡，无论何种状态都行（没电除外），关机，按住方块键，然后同时按住顶部的开关键。等到屏幕上出现白苹果开机画面，不要松开方块键，松开顶部开关键，iTunes 会提示发现处于恢复模式的 iPhone； 下载 1.1.1 版固件，解压出来，按住 Shift 点击 iTunes 中的恢复按钮，选中刚解压得到的固件文件，确定。此时开始降级固件到 1.1.1，完成后 iTunes 会弹出一个 [...]]]></description>
			<content:encoded><![CDATA[<p>写这篇文章纯属记录一下备用，其实我基本就是按照 <a href="http://iphone.tgbus.com/tutorial/hacktutorial/200712/20071212105552.shtml" target="_blank">tgbus 上的流程</a>做的，但还是想放在自己的博客上，以后查阅方便，也提供给需要的朋友。</p>
<p>收到<a href="http://alimama.com" target="_blank">阿里妈妈</a>寄来的 iPhone 快两周了，虽然得到 iPhone 的过程有点曲折，但还是感谢阿里妈妈这么好的奖品。花了一周时间折腾的能打电话也基本明白了，碰巧今天一个朋友也买了个 iPhone 折腾死机了，我正好可以充一次专家帮他解决一下。</p>
<p>先看看两部 iPhone 的合影。都是 8G 原生 1.1.2，朋友买来后 JS 给直接降级到 1.0.2 + 卡贴使用，不太稳定，后来插到电脑上 iTunes 也不同步了，只好重新刷机了。好在 iPhone 几乎刷不死，不像 PSP 那样 <img src='http://blog.istef.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  下面是具体“简明”过程：</p>
<p><img height="283" alt="2iphones" src="http://blog.istef.info/wp-content/uploads/2008/01/2iphones.jpg" width="429" border="0"> </p>
<ol>
<li>电脑上装上 iTunes，最新的 7.6 版没问题，用数据线连接 iPhone 和电脑，启动 iTunes；
<li>原生（OTB） 1.1.2 版 iPhone，塞好 AT&amp;T 的卡或带卡贴的 SIM 卡，无论何种状态都行（没电除外），关机，按住方块键，然后同时按住顶部的开关键。等到屏幕上出现白苹果开机画面，不要松开方块键，松开顶部开关键，iTunes 会提示发现处于恢复模式的 iPhone；
<li><a href="http://down.tgbus.com/soft/15849.shtml" target="_blank">下载 1.1.1 版固件</a>，解压出来，按住 Shift 点击 iTunes 中的恢复按钮，选中刚解压得到的固件文件，确定。此时开始降级固件到 1.1.1，完成后 iTunes 会弹出一个 101X 的错误，无视之；
<li>去 <a href="http://iphone.tgbus.com" target="_blank">tgbus</a> 下个 iBus，启动，点击离开恢复模式，iPhone 屏幕变红，稍后会自动重启；
<li>重新开启 iPhone 后，滑动开屏，在紧急呼叫界面中，输入 *#307#，点 Call，手机响，点击 Answer （如果没有 Answer 键，可以输入 0 点 Call 即可看到），然后点 Hold，再点 Decline，进入正常拨号界面；
<li>点击底部 Contact，添加联系人，名字任意，URL 写入 prefs://1F，点 Done，然后点击联系人的 URL，进入设置界面；
<li>在设置中，先进入 General 将 Autolock 设定为 Never，然后在 Network 中设置好无线网络连接；
<li>按方块键回到紧急拨号，按 0，点 Call，Answer，Hold，Decline，Contact。编辑刚刚创建的联系人，网址改为 i.tgbus.com （这个很快而且网址短:P）点击 URL，用 Safari 打开；
<li>拖动 Jailbreak 页面到底，点击破解，稍等 Safari 会自动退出。在紧急拨号盘中，输入 0，Call，Answer，Hold，Decline，你会看到下载进度。泡杯咖啡，等待 100%；
<li>iPhone 会自动重启数次，完成 1.1.1 的 JailBreak。打开主界面后，进入 installer，安装 Tweak 1.1.1 中的 OktoPrep，确保装好；
<li>打开 iTunes，iTunes 会很贱的提示你有 1.1.3 版固件。<font color="#ff0000"><strong>这里请切记千万别升级到 1.1.3，否则你将得到一块精美的砖头！</strong></font>先到这里下载一份 <a href="http://down.tgbus.com/soft/16721.shtml" target="_blank">1.1.2 的固件</a>，然后按住 Shift 键点击“更新”，选择你刚刚下好的 1.1.2 版固件，iPhone 开始升级到 1.1.2；
<li>下载 <a href="http://down.tgbus.com/soft/17239.shtml" target="_blank">1.1.2 版用的 JailBreak 工具</a>，运行之，完成后 iPhone 会数次重启，最后完全越狱！
<li>塞入带卡贴的 SIM 卡或 877 卡，一台全功能的 iPhone 就完成了！</li>
</ol>
<p>最近听说 1.1.3 也越狱了，不知道还能不能用 TubroSIM 的方法打电话。1.1.3 还是有不少很酷的功能的，希望年前能用上吧，至少那个群发短信对于过年来说可是非常有用的。</p>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.istef.info%2F2008%2F01%2F23%2Fotb-112-jailbreak%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.istef.info%2F2008%2F01%2F23%2Fotb-112-jailbreak%2F&amp;style=compact&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.istef.info/2008/01/23/otb-112-jailbreak/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using memcached
Page Caching using memcached
Database Caching 1/43 queries in 0.019 seconds using memcached
Object Caching 1408/1518 objects using memcached

Served from: blog.istef.info @ 2012-02-14 05:14:05 -->
