<?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>Shadow &#38; Honnix &#187; Linux</title>
	<atom:link href="http://honnix.com/blog/archives/category/technology/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://honnix.com/blog</link>
	<description>Baby baby baby!</description>
	<lastBuildDate>Sat, 07 Aug 2010 09:37:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>如何对付那些发了疯的蜘蛛们</title>
		<link>http://honnix.com/blog/archives/580</link>
		<comments>http://honnix.com/blog/archives/580#comments</comments>
		<pubDate>Sun, 06 Jun 2010 01:15:52 +0000</pubDate>
		<dc:creator>honnix</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[CPU占用率]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[二奶机]]></category>
		<category><![CDATA[搜狗]]></category>
		<category><![CDATA[爬虫]]></category>
		<category><![CDATA[腾讯]]></category>
		<category><![CDATA[蜘蛛]]></category>
		<category><![CDATA[防火墙]]></category>

		<guid isPermaLink="false">http://honnix.com/blog/?p=580</guid>
		<description><![CDATA[最近两天，二奶机经常过热关机，毕竟是老机器了，经不起过高的温度。什么原因呢？top一下发现apache占用CPU高达30％。这就诡异了，我的网站啥时候也没有这么高的访问量啊。查了下access_log，居然有无数的IP来访。whois加上Google，原来是一堆的蜘蛛，大部分来自腾讯和搜狗。简直是疯狗，同时放出几十个蜘蛛来爬，这哪受得了！ 我的路由器没有防火墙功能，所以只好在二奶机上弄了。还好上次编内核的时候把iptables编进去了，否则我估计这种天气，内核都编不下去就要关机了。折腾了一番，终于搞定。Gentoo对iptables的支持还不错，emerge了之后/etc/init.d里面就有了启动脚本，简单地看了一下也就会用了。现在我的iptables里面是这种状况，列出来给需要的人参考一下（基本上我把IP在中国的都给踢出去了，谁知道它们在找什么）： # iptables -L Chain INPUT (policy ACCEPT) target     prot opt source               destination all  &#8211;  anywhere             anywhere DROP       all  &#8211;  124.115.4.0/24       anywhere DROP       all  &#8211;  124.115.0.0/24       anywhere [...]]]></description>
			<content:encoded><![CDATA[<p>最近两天，二奶机经常过热关机，毕竟是老机器了，经不起过高的温度。什么原因呢？top一下发现apache占用CPU高达30％。这就诡异了，我的网站啥时候也没有这么高的访问量啊。查了下access_log，居然有无数的IP来访。whois加上Google，原来是一堆的蜘蛛，大部分来自腾讯和搜狗。简直是疯狗，同时放出几十个蜘蛛来爬，这哪受得了！</p>
<p>我的路由器没有防火墙功能，所以只好在二奶机上弄了。还好上次编内核的时候把iptables编进去了，否则我估计这种天气，内核都编不下去就要关机了。折腾了一番，终于搞定。Gentoo对iptables的支持还不错，emerge了之后/etc/init.d里面就有了启动脚本，简单地看了一下也就会用了。现在我的iptables里面是这种状况，列出来给需要的人参考一下（基本上我把IP在中国的都给踢出去了，谁知道它们在找什么）：</p>
<blockquote>
<div id="_mcePaste"># iptables -L</div>
<div id="_mcePaste">Chain INPUT (policy ACCEPT)</div>
<div id="_mcePaste">target     prot opt source               destination</div>
<div id="_mcePaste">all  &#8211;  anywhere             anywhere</div>
<div id="_mcePaste">DROP       all  &#8211;  124.115.4.0/24       anywhere</div>
<div id="_mcePaste">DROP       all  &#8211;  124.115.0.0/24       anywhere</div>
<div id="_mcePaste">DROP       all  &#8211;  122.194.170.0/24     anywhere</div>
<div id="_mcePaste">DROP       all  &#8211;  114.80.93.56         anywhere</div>
<div id="_mcePaste">DROP       all  &#8211;  122.81.25.8          anywhere</div>
<div id="_mcePaste">DROP       all  &#8211;  123.125.66.0/24      anywhere</div>
<div id="_mcePaste">DROP       all  &#8211;  218.5.3.149          anywhere</div>
<div id="_mcePaste">DROP       all  &#8211;  220.181.94.222       anywhere</div>
<div id="_mcePaste">Chain FORWARD (policy ACCEPT)</div>
<div id="_mcePaste">target     prot opt source               destination</div>
<div id="_mcePaste">Chain OUTPUT (policy ACCEPT)</div>
<div id="_mcePaste">target     prot opt source               destination</div>
</blockquote>
<div>最后简单说一下iptables的用法，网上到处都是，不多啰嗦了。</div>
<blockquote>
<div>iptables -A INPUT -s &lt;ip&gt; -j DROP</div>
</blockquote>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://honnix.com/blog/archives/580/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>很久没更新了，说说翻墙的事儿吧</title>
		<link>http://honnix.com/blog/archives/575</link>
		<comments>http://honnix.com/blog/archives/575#comments</comments>
		<pubDate>Tue, 01 Jun 2010 14:44:11 +0000</pubDate>
		<dc:creator>honnix</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[anti-idle]]></category>
		<category><![CDATA[expect]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[翻墙]]></category>

		<guid isPermaLink="false">http://honnix.com/blog/?p=575</guid>
		<description><![CDATA[买了个ssh，淘宝上到处都是，就不说具体哪家了。价格还可以，一个月3块，先来了一个月尝尝。 速度还行，就是有一点比较讨厌，没法保持连接，一段时间idle之后就被断开了，尝试设了一些参数，还是不行，还是写个脚本来干。 ?Download wall.expect#!/usr/bin/expect -f &#160; set timeout 30 spawn ssh wall match_max 100000 expect -re &#34;.*password:.*&#34; send -- &#34;xxxxxx\r&#34; send -- &#34;\r\r\r\r&#34; expect timeout &#160; for &#123;&#125; 1 &#123;&#125; &#123; send &#34;ls\r&#34; expect timeout &#125; &#160; exit 0 其实很简单，就是登录之后每隔30秒就ls一下。估计这样就行了。]]></description>
			<content:encoded><![CDATA[<p>买了个ssh，淘宝上到处都是，就不说具体哪家了。价格还可以，一个月3块，先来了一个月尝尝。<br />
速度还行，就是有一点比较讨厌，没法保持连接，一段时间idle之后就被断开了，尝试设了一些参数，还是不行，还是写个脚本来干。</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://honnix.com/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=575&amp;download=wall.expect">wall.expect</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5752"><td class="code" id="p575code2"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/usr/bin/expect -f</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">set</span> timeout <span style="color: #000000;">30</span>
spawn <span style="color: #c20cb9; font-weight: bold;">ssh</span> <span style="color: #c20cb9; font-weight: bold;">wall</span>
match_max <span style="color: #000000;">100000</span>
expect <span style="color: #660033;">-re</span> <span style="color: #ff0000;">&quot;.*password:.*&quot;</span>
send <span style="color: #660033;">--</span> <span style="color: #ff0000;">&quot;xxxxxx<span style="color: #000099; font-weight: bold;">\r</span>&quot;</span>
send <span style="color: #660033;">--</span> <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\r</span>&quot;</span>
expect timeout
&nbsp;
<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><span style="color: #7a0874; font-weight: bold;">&#125;</span> <span style="color: #000000;">1</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><span style="color: #7a0874; font-weight: bold;">&#125;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
    send <span style="color: #ff0000;">&quot;ls<span style="color: #000099; font-weight: bold;">\r</span>&quot;</span>
    expect timeout
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span></pre></td></tr></table></div>

<p>其实很简单，就是登录之后每隔30秒就ls一下。估计这样就行了。</p>
]]></content:encoded>
			<wfw:commentRss>http://honnix.com/blog/archives/575/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>USB邮件提醒器</title>
		<link>http://honnix.com/blog/archives/559</link>
		<comments>http://honnix.com/blog/archives/559#comments</comments>
		<pubDate>Fri, 16 Apr 2010 15:23:54 +0000</pubDate>
		<dc:creator>honnix</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[libusb]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[pyusb]]></category>
		<category><![CDATA[USB notifier]]></category>
		<category><![CDATA[USB邮件提醒器]]></category>

		<guid isPermaLink="false">http://honnix.com/blog/?p=559</guid>
		<description><![CDATA[买了个山寨版的这个玩意儿，软件不爽，随即hack之。libusb+pyusb，搞定。不过Mac下面还不行，kernel的module直接claim设备，不知道怎么unclaim。 然后封装了一个简单的库： ?Download lamp.py1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 [...]]]></description>
			<content:encoded><![CDATA[<p>买了个山寨版的这个玩意儿，软件不爽，随即hack之。libusb+pyusb，搞定。不过Mac下面还不行，kernel的module直接claim设备，不知道怎么unclaim。</p>
<p>然后封装了一个简单的库：</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://honnix.com/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=559&amp;download=lamp.py">lamp.py</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5594"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
</pre></td><td class="code" id="p559code4"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/python</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">Queue</span> <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">Queue</span>
<span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">threading</span> <span style="color: #ff7700;font-weight:bold;">import</span> Thread
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> usb.<span style="color: black;">core</span>
<span style="color: #ff7700;font-weight:bold;">import</span> usb.<span style="color: black;">util</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> Singleton<span style="color: black;">&#40;</span><span style="color: #008000;">type</span><span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span>cls, name, bases, <span style="color: #008000;">dict</span><span style="color: black;">&#41;</span>:
        <span style="color: #008000;">super</span><span style="color: black;">&#40;</span>Singleton, cls<span style="color: black;">&#41;</span>.<span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span>name, bases, <span style="color: #008000;">dict</span><span style="color: black;">&#41;</span>
        cls.<span style="color: black;">instance</span> = <span style="color: #008000;">None</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__call__</span><span style="color: black;">&#40;</span>cls, <span style="color: #66cc66;">*</span>args, <span style="color: #66cc66;">**</span>kw<span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">if</span> cls.<span style="color: black;">instance</span> <span style="color: #ff7700;font-weight:bold;">is</span> <span style="color: #008000;">None</span>:
            cls.<span style="color: black;">instance</span> = <span style="color: #008000;">super</span><span style="color: black;">&#40;</span>Singleton, cls<span style="color: black;">&#41;</span>.<span style="color: #0000cd;">__call__</span><span style="color: black;">&#40;</span><span style="color: #66cc66;">*</span>args, <span style="color: #66cc66;">**</span>kw<span style="color: black;">&#41;</span>
&nbsp;
        <span style="color: #ff7700;font-weight:bold;">return</span> cls.<span style="color: black;">instance</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> Lamp<span style="color: black;">&#40;</span><span style="color: #008000;">object</span><span style="color: black;">&#41;</span>:
    GREEN = 0x01
    RED = 0x02
    BLUE = 0x03
    PURPLE = 0x04
    X = 0x05
    Y = 0x06
    WHITE = 0x07
    __QUIT = -<span style="color: #ff4500;">1</span>
&nbsp;
    <span style="color: #0000cd;">__metaclass__</span> = Singleton
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #008000;">self</span>.<span style="color: black;">t</span> = <span style="color: #008000;">None</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">q</span> = <span style="color: #008000;">None</span>
&nbsp;
        <span style="color: #008000;">self</span>.<span style="color: black;">dev</span> = usb.<span style="color: black;">core</span>.<span style="color: black;">find</span><span style="color: black;">&#40;</span>idVendor = 0x1294, idProduct = 0x1320<span style="color: black;">&#41;</span>
&nbsp;
        <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">os</span>
&nbsp;
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #dc143c;">os</span>.<span style="color: black;">uname</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span> == <span style="color: #483d8b;">'Linux'</span>:
            <span style="color: #008000;">self</span>.<span style="color: black;">dev</span>.<span style="color: black;">detach_kernel_driver</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#41;</span>
&nbsp;
        <span style="color: #008000;">self</span>.<span style="color: black;">dev</span>.<span style="color: black;">set_configuration</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> __worker<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        item = <span style="color: #008000;">self</span>.<span style="color: black;">q</span>.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">while</span> item <span style="color: #66cc66;">!</span>= Lamp.__QUIT:
            <span style="color: #ff7700;font-weight:bold;">if</span> item <span style="color: #66cc66;">&amp;</span>gt<span style="color: #66cc66;">;</span>= Lamp.<span style="color: black;">GREEN</span> <span style="color: #ff7700;font-weight:bold;">and</span> item <span style="color: #66cc66;">&amp;</span>lt<span style="color: #66cc66;">;</span>= Lamp.<span style="color: black;">WHITE</span>:
                <span style="color: #ff7700;font-weight:bold;">print</span> item
                data = <span style="color: black;">&#40;</span>item, 0x04, 0x04, 0x04, 0x04<span style="color: black;">&#41;</span>
                <span style="color: #008000;">self</span>.<span style="color: black;">dev</span>.<span style="color: black;">write</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">2</span>, data, <span style="color: #ff4500;">0</span><span style="color: black;">&#41;</span>
&nbsp;
            <span style="color: #008000;">self</span>.<span style="color: black;">q</span>.<span style="color: black;">task_done</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
            item = <span style="color: #008000;">self</span>.<span style="color: black;">q</span>.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> plug<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">self</span>.<span style="color: black;">q</span> <span style="color: #ff7700;font-weight:bold;">is</span> <span style="color: #008000;">None</span>:
            <span style="color: #008000;">self</span>.<span style="color: black;">q</span> = <span style="color: #dc143c;">Queue</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
            <span style="color: #008000;">self</span>.<span style="color: black;">t</span> = Thread<span style="color: black;">&#40;</span>target=<span style="color: #008000;">self</span>.__worker<span style="color: black;">&#41;</span>
            <span style="color: #008000;">self</span>.<span style="color: black;">t</span>.<span style="color: black;">start</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> unplug<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">self</span>.<span style="color: black;">q</span> <span style="color: #ff7700;font-weight:bold;">is</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #008000;">None</span>:
            <span style="color: #008000;">self</span>.<span style="color: black;">q</span>.<span style="color: black;">put</span><span style="color: black;">&#40;</span>Lamp.__QUIT<span style="color: black;">&#41;</span>
            <span style="color: #008000;">self</span>.<span style="color: black;">t</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
            <span style="color: #008000;">self</span>.<span style="color: black;">q</span> = <span style="color: #008000;">None</span>
            <span style="color: #008000;">self</span>.<span style="color: black;">t</span> = <span style="color: #008000;">None</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> on<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, color<span style="color: black;">&#41;</span>:
        <span style="color: #008000;">self</span>.<span style="color: black;">q</span>.<span style="color: black;">put</span><span style="color: black;">&#40;</span>color<span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> off<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #008000;">self</span>.<span style="color: black;">q</span>.<span style="color: black;">put</span><span style="color: black;">&#40;</span>0x00<span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">'__main__'</span>:
    lamp1 = Lamp<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    lamp2 = Lamp<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    lamp3 = Lamp<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
    lamp1.<span style="color: black;">plug</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    lamp2.<span style="color: black;">plug</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    lamp3.<span style="color: black;">plug</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
    lamp1.<span style="color: black;">on</span><span style="color: black;">&#40;</span>Lamp.<span style="color: black;">GREEN</span><span style="color: black;">&#41;</span>
    lamp1.<span style="color: black;">on</span><span style="color: black;">&#40;</span>Lamp.<span style="color: black;">RED</span><span style="color: black;">&#41;</span>
    lamp1.<span style="color: black;">on</span><span style="color: black;">&#40;</span>Lamp.<span style="color: black;">WHITE</span><span style="color: black;">&#41;</span>
    lamp1.<span style="color: black;">on</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">100</span><span style="color: black;">&#41;</span>
&nbsp;
    lamp1.<span style="color: black;">unplug</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    lamp2.<span style="color: black;">unplug</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    lamp3.<span style="color: black;">unplug</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></td></tr></table></div>

<p>忘记还有其它什么颜色了，暂时用X、Y代替吧。</p>
]]></content:encoded>
			<wfw:commentRss>http://honnix.com/blog/archives/559/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ChromeOS印象</title>
		<link>http://honnix.com/blog/archives/494</link>
		<comments>http://honnix.com/blog/archives/494#comments</comments>
		<pubDate>Sun, 22 Nov 2009 10:18:57 +0000</pubDate>
		<dc:creator>honnix</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[ChromeOS]]></category>
		<category><![CDATA[启动]]></category>
		<category><![CDATA[安装]]></category>
		<category><![CDATA[用户]]></category>
		<category><![CDATA[网络]]></category>

		<guid isPermaLink="false">http://honnix.com/blog/?p=494</guid>
		<description><![CDATA[启动快，的确是快，虚拟机里面也就是4、5秒的样子。 很多地方可以下到，我就不多说了。VirtualBox里面配的时候要选择这个网卡：Intel Pro/1000 MT Desktop (82540EM)。如果还是登不上去，就用这个用户和密码：chronos/password。具体看这里。 基本上就是一个浏览器，跟Google说的一样，所有的东西都在网上，当然，也可以看到硬盘上安装的东西：Ctrl+Alt+t，就可以开一个虚拟终端了。]]></description>
			<content:encoded><![CDATA[<p>启动快，的确是快，虚拟机里面也就是4、5秒的样子。</p>
<p>很多地方可以下到，我就不多说了。VirtualBox里面配的时候要选择这个网卡：Intel Pro/1000 MT Desktop (82540EM)。如果还是登不上去，就用这个用户和密码：chronos/password。具体看<a title="ChromeOS" href="http://geeklad.com/download-the-google-chrome-os-virtual-machine" target="_blank">这里</a>。</p>
<p>基本上就是一个浏览器，跟Google说的一样，所有的东西都在网上，当然，也可以看到硬盘上安装的东西：Ctrl+Alt+t，就可以开一个虚拟终端了。</p>
]]></content:encoded>
			<wfw:commentRss>http://honnix.com/blog/archives/494/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>配置Tor使用Bridge</title>
		<link>http://honnix.com/blog/archives/460</link>
		<comments>http://honnix.com/blog/archives/460#comments</comments>
		<pubDate>Sun, 11 Oct 2009 13:49:22 +0000</pubDate>
		<dc:creator>honnix</dc:creator>
				<category><![CDATA[GFW]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[bridge]]></category>
		<category><![CDATA[Tor]]></category>

		<guid isPermaLink="false">http://honnix.com/blog/?p=460</guid>
		<description><![CDATA[我比较白痴，首先澄清一个概念，使用Bridge和作为Bridge是两个概念。 使用Bridge是指作为client，使用已有的Bridge连接到网络。 作为Bridge是指把自己变成一个Bridge server。 貌似不能既使用Bridge又作为Bridge。:( 使用Bridge很简单，发送邮件给bridges@torproject.org，邮件title为get bridges，就可以收到一个回复，大概是这样的： [This is an automated message; please do not reply.] Here are your bridge relays: bridge 85.176.137.125:443 bridge 125.121.20.246:9002 bridge 79.182.101.170:8080 Bridge relays (or &#8220;bridges&#8221; for short) are Tor relays that aren&#8217;t listed in the main directory. Since there is no complete public list of them, even if your [...]]]></description>
			<content:encoded><![CDATA[<p>我比较白痴，首先澄清一个概念，使用Bridge和作为Bridge是两个概念。</p>
<ul>
<li>使用Bridge是指作为client，使用已有的Bridge连接到网络。</li>
<li>作为Bridge是指把自己变成一个Bridge server。</li>
</ul>
<p>貌似不能既使用Bridge又作为Bridge。:(</p>
<p>使用Bridge很简单，发送邮件给bridges@torproject.org，邮件title为get bridges，就可以收到一个回复，大概是这样的：</p>
<blockquote><p>[This is an automated message; please do not reply.]</p>
<p>Here are your bridge relays:</p>
<p>bridge 85.176.137.125:443<br />
bridge 125.121.20.246:9002<br />
bridge 79.182.101.170:8080</p>
<p>Bridge relays (or &#8220;bridges&#8221; for short) are Tor relays that aren&#8217;t listed<br />
in the main directory. Since there is no complete public list of them,<br />
even if your ISP is filtering connections to all the known Tor relays,<br />
they probably won&#8217;t be able to block all the bridges.</p>
<p>To use the above lines, go to Vidalia&#8217;s Network settings page, and click<br />
&#8220;My ISP blocks connections to the Tor network&#8221;. Then add each bridge<br />
address one at a time.</p>
<p>Configuring more than one bridge address will make your Tor connection<br />
more stable, in case some of the bridges become unreachable.</p>
<p>Another way to find public bridge addresses is to visit<br />
https://bridges.torproject.org/. The answers you get from that page<br />
will change every few days, so check back periodically if you need more<br />
bridge addresses.</p></blockquote>
<p>把里面那几行bridge列表加到/etc/tor/torrc文件的最后，再加上一行UseBridges 1。重启tor，如果同时使用privoxy的话把它也重启一下好了。现在的FireFox根本就不需要这个东西了，可以直接使用socket代理。</p>
<p>作为Bridge的话，在/etc/tor/torrc里加上这么几行：</p>
<blockquote><p>SocksPort 0<br />
ORPort 443<br />
BridgeRelay 1<br />
Exitpolicy reject *:*</p></blockquote>
<p>自己对照着看看，不要直接加上去。</p>
<p>为什么不作为一个normal relay呢？因为从我们这里出去的话不是在浪费其它人时间么！所以Bridge就行，不要直接出去。</p>
]]></content:encoded>
			<wfw:commentRss>http://honnix.com/blog/archives/460/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>试了下Ubuntu 9.04</title>
		<link>http://honnix.com/blog/archives/327</link>
		<comments>http://honnix.com/blog/archives/327#comments</comments>
		<pubDate>Sat, 16 May 2009 11:32:34 +0000</pubDate>
		<dc:creator>honnix</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[compiz]]></category>
		<category><![CDATA[scim]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[试用]]></category>
		<category><![CDATA[输入法]]></category>

		<guid isPermaLink="false">http://honnix.com/blog/?p=327</guid>
		<description><![CDATA[网上的评价非常之高，合着我不试一下都对不起大伙儿了。 不用Ubuntu好多年了，最初的原因是不对路，Ubuntu全速向桌面进军，而我还是比较喜欢那种“不是很好用”的Linux，但是要开发方便，所以投靠了Gentoo。 近些年来，一直关注Ubuntu，每次发新版本都要定一张光盘，放在公司给同事试用。这次的9.04据说非常好，所以装了一个到虚拟机上玩儿了一把。 感觉不错。傻瓜安装，点几下就成，不需要不停地重启；系统启动确实比较快；compiz集成得很好，系统资源占用不大，唯一的遗憾是compiz-settings-manager不能用，依赖Python2.4或者2.5，即使把依赖的Python装上也不行，反正就是连装都不能装，无奈，只能手动gconf了。 多语言支持还不错，scim安装起来也算方便，但是，我要说但是，英文环境下的中文输入法处理得还不够好。我还需要im-switch一下在$HOME下面生成.xinput.d和相应的软链接，否则很多环境变量就没有设置，输入法也就没法使用。这个门槛儿有点高，好歹做个GUI，让用户选一下自己想用什么输入法，或者干脆就不让选，默认就是SCIM。虽然这样霸道了点，但是用户马上就可以使用。貌似装好SCIM之后还需要重启X，其实也就是logout，这个要求有点不太合理，连Windows都不敢这样干。 还有个小问题，应该是虚拟机的问题，logout和重启的时候虚拟机会crash。 无论如何，Ubuntu做得不错，一般的家庭使用，如果还没有受到Windows的毒害，应该足够了。别跟我废话什么Office，你在家里用Office干什么，都说了人家是叫Office。]]></description>
			<content:encoded><![CDATA[<p>网上的评价非常之高，合着我不试一下都对不起大伙儿了。</p>
<p>不用Ubuntu好多年了，最初的原因是不对路，Ubuntu全速向桌面进军，而我还是比较喜欢那种“不是很好用”的Linux，但是要开发方便，所以投靠了Gentoo。</p>
<p>近些年来，一直关注Ubuntu，每次发新版本都要定一张光盘，放在公司给同事试用。这次的9.04据说非常好，所以装了一个到虚拟机上玩儿了一把。</p>
<p>感觉不错。傻瓜安装，点几下就成，不需要不停地重启；系统启动确实比较快；compiz集成得很好，系统资源占用不大，唯一的遗憾是compiz-settings-manager不能用，依赖Python2.4或者2.5，即使把依赖的Python装上也不行，反正就是连装都不能装，无奈，只能手动gconf了。</p>
<p>多语言支持还不错，scim安装起来也算方便，<strong>但是，我要说但是</strong>，英文环境下的中文输入法处理得还不够好。我还需要im-switch一下在$HOME下面生成.xinput.d和相应的软链接，否则很多环境变量就没有设置，输入法也就没法使用。这个门槛儿有点高，好歹做个GUI，让用户选一下自己想用什么输入法，或者干脆就不让选，默认就是SCIM。虽然这样霸道了点，但是用户马上就可以使用。貌似装好SCIM之后还需要重启X，其实也就是logout，这个要求有点不太合理，连Windows都不敢这样干。</p>
<p>还有个小问题，应该是虚拟机的问题，logout和重启的时候虚拟机会crash。</p>
<p>无论如何，Ubuntu做得不错，一般的家庭使用，如果还没有受到Windows的毒害，应该足够了。别跟我废话什么Office，你在家里用Office干什么，都说了人家是叫Office。</p>
]]></content:encoded>
			<wfw:commentRss>http://honnix.com/blog/archives/327/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>今天那叫一个郁闷，让X11给整得头大</title>
		<link>http://honnix.com/blog/archives/325</link>
		<comments>http://honnix.com/blog/archives/325#comments</comments>
		<pubDate>Sat, 16 May 2009 10:12:23 +0000</pubDate>
		<dc:creator>honnix</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[hal]]></category>
		<category><![CDATA[PyPanel]]></category>
		<category><![CDATA[VirtualBox]]></category>
		<category><![CDATA[X11]]></category>
		<category><![CDATA[xorg-server]]></category>

		<guid isPermaLink="false">http://honnix.com/blog/?p=325</guid>
		<description><![CDATA[Gentoo，emerge -vuND world，结果X起不来了，现象就是鼠标、键盘完全没有反应，pypanel也出不来。 查log，发现vboxvideo内核模块找不到，于是加到autoload里面（真奇怪，这个模块是新版本的VirtualBox加的吧，原来我没加这个东西到autoload里面，也没有出错），结果还是不行，现象一样。 再查log，发现hal初始化错误：(EE) config/hal: couldn&#8217;t initialise context: (null) ((null))。于是核对xorg-server的编译选项，发现果然加入了hal。难道是hal的版本有问题？卸了重装，hal和xorg-server，还是不行。郁闷了～ 再仔细一想，hald没有启动，emerge没有把这个东西自动放到default的runlevel里面。启动hald，startx，终于工作了！ 还有一点要说的是，X启动之后不能只加载VBoxClient了，需要执行VBoxClient-all这个脚本，至于为什么，自己看看脚本就明白了。这个不兼容有点不爽。 顺便说一句，pypanel挺好用，但是不支持自动resise，也就调整分辨率之后它不会自动resize，有点不爽。尝试了一下hack，但是没有成功，给作者发了封信，看能不能收到回复。]]></description>
			<content:encoded><![CDATA[<p>Gentoo，emerge -vuND world，结果X起不来了，现象就是鼠标、键盘完全没有反应，pypanel也出不来。</p>
<p>查log，发现vboxvideo内核模块找不到，于是加到autoload里面（真奇怪，这个模块是新版本的VirtualBox加的吧，原来我没加这个东西到autoload里面，也没有出错），结果还是不行，现象一样。</p>
<p>再查log，发现hal初始化错误：<span id="main" style="visibility: visible;"><span id="search" style="visibility: visible;">(EE) <em>config</em>/<em>hal</em>: couldn&#8217;t <em>initialise context</em>: (null) ((null))。于是核对xorg-server的编译选项，发现果然加入了hal。难道是hal的版本有问题？卸了重装，hal和xorg-server，还是不行。郁闷了～</span></span></p>
<p><span style="visibility: visible;"><span style="visibility: visible;">再仔细一想，hald没有启动，emerge没有把这个东西自动放到default的runlevel里面。启动hald，startx，终于工作了！</span></span></p>
<p><span style="visibility: visible;"><span style="visibility: visible;">还有一点要说的是，X启动之后不能只加载VBoxClient了，需要执行VBoxClient-all这个脚本，至于为什么，自己看看脚本就明白了。这个不兼容有点不爽。</span></span></p>
<p><span style="visibility: visible;"><span style="visibility: visible;">顺便说一句，pypanel挺好用，但是不支持自动resise，也就调整分辨率之后它不会自动resize，有点不爽。尝试了一下hack，但是没有成功，给作者发了封信，看能不能收到回复。<br />
</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://honnix.com/blog/archives/325/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VirtualBox也跟我作对</title>
		<link>http://honnix.com/blog/archives/319</link>
		<comments>http://honnix.com/blog/archives/319#comments</comments>
		<pubDate>Sun, 26 Apr 2009 08:37:05 +0000</pubDate>
		<dc:creator>honnix</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[dd]]></category>
		<category><![CDATA[ISO]]></category>
		<category><![CDATA[VirtualBox]]></category>

		<guid isPermaLink="false">http://honnix.com/blog/?p=319</guid>
		<description><![CDATA[虚拟机用光盘怎么都启动不了，最后没办法，直接把光盘做成ISO。 dd if=/dev/dvd of=/tmp/xx.iso]]></description>
			<content:encoded><![CDATA[<p>虚拟机用光盘怎么都启动不了，最后没办法，直接把光盘做成ISO。</p>
<p>dd if=/dev/dvd of=/tmp/xx.iso</p>
]]></content:encoded>
			<wfw:commentRss>http://honnix.com/blog/archives/319/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>为了修SLES，费了老劲了</title>
		<link>http://honnix.com/blog/archives/317</link>
		<comments>http://honnix.com/blog/archives/317#comments</comments>
		<pubDate>Sun, 26 Apr 2009 08:34:14 +0000</pubDate>
		<dc:creator>honnix</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[SLES]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[YaST]]></category>

		<guid isPermaLink="false">http://honnix.com/blog/?p=317</guid>
		<description><![CDATA[貌似是update的源不对，所以在update的时候想停下来，结果YaST死活不给面子，自己哼哧哼哧装个不停，于是就Ctrl-z之，然后kill掉，结果，哼哼，YaST彻底不工作了。还好只更新了三个包，手里没有安装盘，于是找啊找的，终于在官网上找到了，强制降级下来，终于搞定了。 算了，以后再也不折腾YaST了。真是不爽！]]></description>
			<content:encoded><![CDATA[<p>貌似是update的源不对，所以在update的时候想停下来，结果YaST死活不给面子，自己哼哧哼哧装个不停，于是就Ctrl-z之，然后kill掉，结果，哼哼，YaST彻底不工作了。还好只更新了三个包，手里没有安装盘，于是找啊找的，终于在官网上找到了，强制降级下来，终于搞定了。</p>
<p>算了，以后再也不折腾YaST了。真是不爽！</p>
]]></content:encoded>
			<wfw:commentRss>http://honnix.com/blog/archives/317/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>对于虚拟机copy还是move的思路</title>
		<link>http://honnix.com/blog/archives/305</link>
		<comments>http://honnix.com/blog/archives/305#comments</comments>
		<pubDate>Sat, 11 Apr 2009 12:56:11 +0000</pubDate>
		<dc:creator>honnix</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[MAC地址]]></category>
		<category><![CDATA[网卡]]></category>
		<category><![CDATA[虚拟机]]></category>

		<guid isPermaLink="false">http://honnix.com/blog/?p=305</guid>
		<description><![CDATA[问题是这样的： 创了一个虚拟机，里面跑SuSE Linux，整个虚拟机拿给别人用的时候，会碰到copy还是move这样的疑问，目前看来，最大的区别在于网卡的MAC地址。如果是copy，MAC地址会重新生成，udev也会重新创建一个网络设备名，原来是eth0的话，现在就是eth1，这个还不是最关键的问题，关键在于SuSE Linux的网络配置文件名是和MAC地址绑定的，所以MAC地址变了，这个配置文件名也要相应地改变；如果是move，MAC地址保持不变，一切都没有问题，但是如果同一个虚拟机在一个主机上move两次，嘿嘿，MAC可就要冲突了。 简单来说，有两个解决方案： 每次都选择move，根本就不支持一个虚拟机在一个主机上move两次，也就是说，从我这里release出去的不同版本不能同时启动。 每次都选择copy，提供一个脚本修改网络配置文件名。 对于第二个解决方案，脚本的内容大致是这样： ?Download reconfigure_network.sh1 2 3 4 5 6 7 #!/bin/sh &#160; suffix=`ifconfig &#124; grep 'HWaddr' &#124; awk '{print tolower($5)}' &#124; sed 's/:/\\:/g'` &#160; mv /etc/sysconfig/network/ifcfg-eth-id-* /etc/sysconfig/network/ifcfg-eth-id-$suffix &#160; /etc/init.d/network restart]]></description>
			<content:encoded><![CDATA[<p>问题是这样的：</p>
<blockquote><p>创了一个虚拟机，里面跑SuSE Linux，整个虚拟机拿给别人用的时候，会碰到copy还是move这样的疑问，目前看来，最大的区别在于网卡的MAC地址。如果是copy，MAC地址会重新生成，udev也会重新创建一个网络设备名，原来是eth0的话，现在就是eth1，这个还不是最关键的问题，关键在于SuSE Linux的网络配置文件名是和MAC地址绑定的，所以MAC地址变了，这个配置文件名也要相应地改变；如果是move，MAC地址保持不变，一切都没有问题，但是如果同一个虚拟机在一个主机上move两次，嘿嘿，MAC可就要冲突了。</p></blockquote>
<p>简单来说，有两个解决方案：</p>
<ol>
<li>每次都选择move，根本就不支持一个虚拟机在一个主机上move两次，也就是说，从我这里release出去的不同版本不能同时启动。</li>
<li>每次都选择copy，提供一个脚本修改网络配置文件名。</li>
</ol>
<p>对于第二个解决方案，脚本的内容大致是这样：</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://honnix.com/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=305&amp;download=reconfigure_network.sh">reconfigure_network.sh</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p3056"><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code" id="p305code6"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
&nbsp;
<span style="color: #007800;">suffix</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">ifconfig</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">'HWaddr'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print tolower($5)}'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #ff0000;">'s/:/\\:/g'</span><span style="color: #000000; font-weight: bold;">`</span>
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>sysconfig<span style="color: #000000; font-weight: bold;">/</span>network<span style="color: #000000; font-weight: bold;">/</span>ifcfg-eth-id-<span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>sysconfig<span style="color: #000000; font-weight: bold;">/</span>network<span style="color: #000000; font-weight: bold;">/</span>ifcfg-eth-id-<span style="color: #007800;">$suffix</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>network restart</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://honnix.com/blog/archives/305/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
