<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[阿权的书房]]></title> 
<link>http://www.aslibra.com/blog/index.php</link> 
<description><![CDATA[技术经验分享，资料收集，偶尔晾几张相片，感言生活]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[阿权的书房]]></copyright>
<item>
<link>http://www.aslibra.com/blog/post/shell_mod.php</link>
<title><![CDATA[shell取余数]]></title> 
<author>hqlulu &lt;hqlulu@163.com&gt;</author>
<category><![CDATA[linux]]></category>
<pubDate>Fri, 03 Sep 2010 03:28:20 +0000</pubDate> 
<guid>http://www.aslibra.com/blog/post/shell_mod.php</guid> 
<description>
<![CDATA[ 
	备忘脚本<br/>date取得分钟数<br/>$(()) 运算<br/><br/><div class="code">#execute every 5 minutes<br/>a=`date +%M`<br/>b=$(( $a % 5 ))<br/>if &#91; $b = 0 &#93; ; then <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo &quot;execute it&quot;<br/>else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo &quot;Not execute&quot;<br/>fi</div><br/>Tags - <a href="http://www.aslibra.com/blog/go.php/tags/shell/" rel="tag">shell</a> , <a href="http://www.aslibra.com/blog/go.php/tags/bash/" rel="tag">bash</a>
]]>
</description>
</item><item>
<link>http://www.aslibra.com/blog/post/MogileFS.php</link>
<title><![CDATA[MogileFS]]></title> 
<author>hqlulu &lt;hqlulu@163.com&gt;</author>
<category><![CDATA[linux]]></category>
<pubDate>Wed, 18 Aug 2010 10:10:47 +0000</pubDate> 
<guid>http://www.aslibra.com/blog/post/MogileFS.php</guid> 
<description>
<![CDATA[ 
	<strong>官方介绍：</strong><br/><br/>MogileFS分布式文件存储系统，是由Six Apart所开发的，下面我们就来列出他的一些特性进行简要介绍。<br/><br/><strong>应用层</strong>——不需要特殊的核心组件 <br/><br/><strong>无单点失败</strong>——mogileFS分布式文件存储系统安装的三个组件（存储节点、跟踪器、跟踪用的数据库），均可运行在多个 机器上，因此没有单点失败。（你也可以将跟踪器和存储节点运行在同一台机器上，这样你就没有必要用4台机器）推荐至少两台机器。 <br/><br/><strong>自动的文件复制</strong>——基于不同的文件“分类”，文件可以被自动的复制到多个有足够存储空间的存储节点上，这样可以满足这个“类别”的最少复制要求。比如你有一个图片网站，你可以设置原始的JPEG图片需要复制 至少三份，但实际只有1or2份拷贝，如果丢失了数据，那么mogileFS分布式文件存储系统可以重新建立遗失的拷贝数。用这种办法，MogileFS(不做RAID)可以节约磁盘，否则你将存储同样的拷贝多份，完全没有必要。 <br/><br/><strong>“比RAID好多了”</strong>——在一个非存储区域网络的RAID（non-SAN RAID）的建立中，磁盘是冗余的，但主机不是，如果你整个机器坏了，那么文件也将不能访问。 mogileFS分布式文件存储系统在不同的机器之间进行文件复制，因此文件始终是可用的。 <br/><br/><strong>传输中立，无特殊协议</strong>——mogileFS分布式文件存储系统客户端可以通过NFS或HTTP来和MogileFS的存储节点来通信，但首先需要告知跟踪器一下。 <br/><br/><strong>简单的命名空间</strong>——文件通过一个给定的key来确定，是一个全局的命名空间。你可以自己生成多个命名空间，只要你愿意，不过这样可能在同一MogileFS中会造成key冲突。 <br/><br/><strong>不用共享任何东西</strong>——mogileFS分布式文件存储系统不需要依靠昂贵的SAN来共享磁盘，每个机器只用维护好自己的磁盘。 <br/><br/><strong>不需要RAID</strong>——在MogileFS中的磁盘可以是做了RAID的也可以是没有，如果是为了安全性着想的话RAID没有必要买了，因为mogileFS分布式文件存储系统已经提供了。 <br/><br/>不会碰到文件系统本身的不可知情况——在mogileFS分布式文件存储系统中的存储节点的磁盘可以被格式化成多种格式（ext3,reiserFS等等）。mogileFS分布式文件存储系统会做自己内部目录的哈希，所以它不会碰到文件系统本身的一些限制，比如一个目录中的最大文件数。你可以放心的使用。<br/><br/><strong>安装配置：</strong><br/><br/>懒人安装法，只是整理了一下命令<br/><br/><div class="code">rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm<br/>yum install Perlbal<br/>yum install perl-Perlbal-XS-HTTPHeaders<br/>yum install perl-MogileFS*<br/>yum install mogstored*<br/>yum install mogilefsd*</div><br/><br/>没有细细研究，仅安装过可用，目前没有需求使用，所以没有进一步测试，详情参考后面的第二篇文章，很详细，相信照做没有问题。<br/>以下命令仅供参考：<br/><br/><div class="code">#初始化数据<br/>mogdbsetup -dbhost=192.168.1.22 -dbport=3306 -dbname=mogilefs -dbuser=mogilefs -dbpassword=mogilefs<br/>#运行监控<br/>useradd mogile<br/>sudo -u mogile mogilefsd --daemon<br/>#运行存储<br/>mogstored --daemon<br/>#增加存储点<br/>mogadm --lib=/usr/lib/perl5/site_perl/5.8.8/ --trackers=192.168.1.44:7001 host add aslibra --ip=192.168.1.44 --port=7500 --status=alive<br/>mogadm --lib=/usr/lib/perl5/site_perl/5.8.8/ --trackers=192.168.1.44:7001 host list<br/>#增加存储设备<br/>mogadm --lib=/usr/lib/perl5/site_perl/5.8.8 --trackers=192.168.1.44:7001 device add aslibra 1<br/><br/>#存储<br/>mogtool --trackers=192.168.1.44:7001 --domain=www.aslibra.com inject b.txt b.txt<br/><br/>#增加另外节点<br/>mogadm --lib=/usr/lib/perl5/site_perl/5.8.8/ --trackers=192.168.1.44:7001 host add aslibra --ip=192.168.1.41 --port=7500 --status=alive<br/>mogadm --lib=/usr/lib/perl5/site_perl/5.8.8 --trackers=192.168.1.44:7001 device add aslibra41 2</div><br/><strong>参考阅读文章：</strong><br/><br/>1 <a href="http://code.google.com/p/mogilefs/wiki/InstallHowTo" target="_blank">How To Setup MogileFS</a><br/>2 <a href="http://huatai.me/?p=328" target="_blank">分布式文件系统MogileFS实践</a><br/>3 <a href="http://www.91linux.cn/?p=250" target="_blank">Mogilefs PHP client 测试程序</a><br/>4 <a href="http://www.91linux.cn/?p=249" target="_blank">Centos 4.6下初次尝试安装分布式文件系统 MogileFS</a><br/><br/>Tags - <a href="http://www.aslibra.com/blog/go.php/tags/mogilefs/" rel="tag">mogilefs</a> , <a href="http://www.aslibra.com/blog/go.php/tags/linux/" rel="tag">linux</a>
]]>
</description>
</item><item>
<link>http://www.aslibra.com/blog/post/perl-Unicode-String.php</link>
<title><![CDATA[perl程序缺少Unicode/String.pm]]></title> 
<author>hqlulu &lt;hqlulu@163.com&gt;</author>
<category><![CDATA[linux]]></category>
<pubDate>Wed, 04 Aug 2010 06:55:25 +0000</pubDate> 
<guid>http://www.aslibra.com/blog/post/perl-Unicode-String.php</guid> 
<description>
<![CDATA[ 
	简单笔记一下，运行出错：<br/><br/><div class="code">root@aslibra:~# ./axml2xml.pl <br/>Can&#039;t locate Unicode/String.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at ./axml2xml.pl line 24.<br/>BEGIN failed--compilation aborted at ./axml2xml.pl line 24.</div><br/><br/>下载安装即可：<br/><br/><div class="code">root@aslibra:/Data/tgz# wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/Unicode-String-2.09.tar.gz<br/>root@aslibra:/Data/tgz# tar xfz Unicode-String-2.09.tar.gz <br/>root@aslibra:/Data/tgz# cd Unicode-String-2.09<br/>root@aslibra:/Data/tgz/Unicode-String-2.09# perl Makefile.PL <br/>root@aslibra:/Data/tgz/Unicode-String-2.09# make<br/>cp String.pm blib/lib/Unicode/String.pm<br/>cp lib/Unicode/CharName.pm blib/lib/Unicode/CharName.pm<br/>......<br/>Manifying blib/man3/Unicode::String.3pm<br/>Manifying blib/man3/Unicode::CharName.3pm<br/>root@aslibra:/Data/tgz/Unicode-String-2.09# make install<br/>Files found in blib/arch: installing files in blib/lib into architecture dependent library tree<br/>Installing /usr/local/lib/perl/5.10.0/auto/Unicode/String/String.bs<br/>Installing /usr/local/lib/perl/5.10.0/auto/Unicode/String/String.so<br/>Installing /usr/local/lib/perl/5.10.0/Unicode/String.pm<br/>Installing /usr/local/lib/perl/5.10.0/Unicode/CharName.pm<br/>Installing /usr/local/man/man3/Unicode::CharName.3pm<br/>Installing /usr/local/man/man3/Unicode::String.3pm<br/>Writing /usr/local/lib/perl/5.10.0/auto/Unicode/String/.packlist<br/>Appending installation info to /usr/local/lib/perl/5.10.0/perllocal.pod</div><br/><br/>文件下载：<a href="http://search.cpan.org/dist/Unicode-String/String.pm" target="_blank">Gisle Aas > Unicode-String > Unicode::String </a><br/>Tags - <a href="http://www.aslibra.com/blog/go.php/tags/linux/" rel="tag">linux</a> , <a href="http://www.aslibra.com/blog/go.php/tags/perl/" rel="tag">perl</a>
]]>
</description>
</item><item>
<link>http://www.aslibra.com/blog/post/dnsmasq.php</link>
<title><![CDATA[介绍Dnsmasq]]></title> 
<author>hqlulu &lt;hqlulu@163.com&gt;</author>
<category><![CDATA[linux]]></category>
<pubDate>Mon, 26 Jul 2010 10:59:53 +0000</pubDate> 
<guid>http://www.aslibra.com/blog/post/dnsmasq.php</guid> 
<description>
<![CDATA[ 
	<a href="http://www.thekelleys.org.uk/dnsmasq/doc.html" target="_blank">Dnsmasq</a>是一个很实用的小工具，解决局域网的需求看来非常合适，特别是网关和防火墙上。<br/><br/><strong>它可以提供如下几个实用的功能：</strong><br/>1 提供dns服务<br/>2 优先使用本地自定义dns<br/>3 提供dhcp服务<br/><br/>一般情况下，我们可以用bind解决dns的问题，dhcpd解决dhcp的问题，另外，还可以用ypbind解决自定义hostname解析的ip（当然还有用户的功能），它都解决了！很实用吧？这真的很吸引人，况且它一直在更新维护，最新版本是6月份的。<br/><br/>安装过程很简单：<br/><br/><div class="code">wget http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.55.tar.gz<br/>tar xfz dnsmasq-2.55.tar.gz <br/>cd dnsmasq-2.55<br/>make<br/>make install<br/>cp dnsmasq.conf.example /etc/dnsmasq.conf</div><br/><br/>运行起来就可以解决第一个问题：<br/><br/><div class="code">&#91;root@aslibra dnsmasq-2.55&#93;# dnsmasq<br/>&#91;root@aslibra dnsmasq-2.55&#93;# netstat -nlp&#124;grep dnsmasq<br/>tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 0.0.0.0:53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.0.0.0:*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LISTEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;25584/dnsmasq&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 :::53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :::*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LISTEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;25584/dnsmasq&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>udp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 0.0.0.0:53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.0.0.0:*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25584/dnsmasq&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>udp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 :::53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :::*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;25584/dnsmasq&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </div><br/><br/>默认情况下，作为dns服务，第一个问题解决了。<br/><br/>我们尝试解决第二个问题，可以说是dns劫持？没有那么严重，用好了其实很实用。<br/>有如下几个问题比较棘手：<br/><br/>1 局域网有很多机器希望使用一份一样的hosts定义一批名称对应的ip，你需要经常维护这份列表<br/>2 你希望局域网的人访问某个域名时，拦截下来到指定的ip，做缓存节省带宽或者其它用途都可以<br/>3 禁止某个域名的正常解析<br/><br/>这个更改涉及两个文件：<br/>1 /etc/hosts<br/>2 /etc/dnsmasq.conf<br/><br/>我们先在hosts文件里加入两行：<br/><br/><div class="code">192.168.1.3&nbsp;&nbsp;&nbsp;&nbsp; server1<br/>192.168.1.2&nbsp;&nbsp;&nbsp;&nbsp; www.aslibra.com</div><br/><br/>编辑dnsmasq.conf，找到如下代码：<br/><br/><div class="code"># Add local-only domains here, queries in these domains are answered<br/># from /etc/hosts or DHCP only.<br/>local=/localnet/<br/><br/># Add domains which you want to force to an IP address here.<br/># The example below send any host in doubleclick.net to a local<br/># webserver.<br/>#address=/doubleclick.net/127.0.0.1<br/>address=/baidu.com/127.0.0.1</div><br/><br/>重启dnsmasq即可，下面我们在局域网另外一个机器用dig命令测试一下：<br/><br/><div class="code"><br/>#说明：查询公网返回失败<br/>&#91;root@aslibra ~&#93;# dig server1<br/>...<br/>;; QUESTION SECTION:<br/>;server1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A<br/><br/>;; AUTHORITY SECTION:<br/>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 9949&nbsp;&nbsp;&nbsp;&nbsp;IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SOA&nbsp;&nbsp;&nbsp;&nbsp; a.root-servers.net. nstld.verisign-grs.com. 2010072501 1800 900 604800 86400<br/>#说明：查询dnsmasq，这里是dig的功能，模拟dns查询，返回hosts文件的设定<br/>&#91;root@aslibra ~&#93;# dig server1 @192.168.1.45<br/>...<br/>;; QUESTION SECTION:<br/>;server1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A<br/><br/>;; ANSWER SECTION:<br/>server1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 192.168.1.3<br/>#说明：正常查询<br/>&#91;root@aslibra ~&#93;# dig www.aslibra.com<br/>...<br/>;; QUESTION SECTION:<br/>;www.aslibra.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A<br/><br/>;; ANSWER SECTION:<br/>www.aslibra.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1029&nbsp;&nbsp;&nbsp;&nbsp;IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 218.241.231.187<br/>#说明：查询dnsmasq，返回hosts文件的设定<br/>&#91;root@aslibra ~&#93;# dig www.aslibra.com @192.168.1.45<br/>...<br/>;; QUESTION SECTION:<br/>;www.aslibra.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A<br/><br/>;; ANSWER SECTION:<br/>www.aslibra.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 192.168.1.2<br/>#说明：正常查询<br/>&#91;root@aslibra ~&#93;# dig www.baidu.com<br/>...<br/>;; QUESTION SECTION:<br/>;www.baidu.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A<br/><br/>;; ANSWER SECTION:<br/>www.baidu.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1200&nbsp;&nbsp;&nbsp;&nbsp;IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CNAME&nbsp;&nbsp; www.a.shifen.com.<br/>www.a.shifen.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 600&nbsp;&nbsp;&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 119.75.213.50<br/>www.a.shifen.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 600&nbsp;&nbsp;&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 119.75.213.51<br/>#说明：查询dnsmasq，返回配置文件的设定<br/>&#91;root@aslibra ~&#93;# dig www.baidu.com @192.168.1.45<br/>...<br/>;; QUESTION SECTION:<br/>;www.baidu.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A<br/><br/>;; ANSWER SECTION:<br/>www.baidu.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1<br/>#说明：其它二级域名也不能幸免<br/>&#91;root@aslibra ~&#93;# dig tieba.baidu.com @192.168.1.45<br/>...<br/>;; QUESTION SECTION:<br/>;tieba.baidu.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A<br/><br/>;; ANSWER SECTION:<br/>tieba.baidu.com.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1</div><br/><br/>至此已经成功解决，dhcp功能可以自行测试，阅读默认配置文件即可，很便捷，可以按机器名称或mac地址分配ip。<br/><br/>另外，重启dnsmasq可以用SIGHUP（可以在修改hosts文件后，让配置生效）<br/><br/><div class="code">killall -s SIGHUP dnsmasq</div><br/><br/><strong>参考阅读：</strong><br/><br/>1 <a href="http://www.thekelleys.org.uk/dnsmasq/doc.html" target="_blank">dnsmasq官网</a><br/>2 <a href="http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html" target="_blank">dnsmasq手册</a><br/>3 <a href="http://blog.csdn.net/codejoker/archive/2009/09/26/4598259.aspx" target="_blank">移植Dnsmasq到Android</a> <br/>4 <a href="http://www.lingang.gd.cn/?action=show&id=338" target="_blank">用dnsmasq解决firefox上网慢</a><br/>5 <a href="http://sapling.me/unixlinux/dnsmasq.html" target="_blank">dns缓存服务器 dnsmasq</a><br/>Tags - <a href="http://www.aslibra.com/blog/go.php/tags/linux/" rel="tag">linux</a> , <a href="http://www.aslibra.com/blog/go.php/tags/dns/" rel="tag">dns</a> , <a href="http://www.aslibra.com/blog/go.php/tags/dnsmasq/" rel="tag">dnsmasq</a>
]]>
</description>
</item><item>
<link>http://www.aslibra.com/blog/post/dhcp.php</link>
<title><![CDATA[建立DHCP服务]]></title> 
<author>hqlulu &lt;hqlulu@163.com&gt;</author>
<category><![CDATA[linux]]></category>
<pubDate>Tue, 25 May 2010 11:37:34 +0000</pubDate> 
<guid>http://www.aslibra.com/blog/post/dhcp.php</guid> 
<description>
<![CDATA[ 
	<strong>什么是DHCP服务？</strong><br/><br/>动态主机设置协议（Dynamic Host Configuration Protocol, DHCP）是一个局域网的网络协议，使用UDP协议工作，主要有两个用途：给内部网络或网络服务供应商自动分配IP地址给用户给内部网络管理员作为对所有计算机作中央管理的手段。<br/><br/><strong>安装和配置DHCP</strong><br/><br/>以ubuntu为例，其余linux版本类似。<br/><br/>1 安装dhcp服务软件<br/><div class="code">apt-get install dhcp3-server</div><br/><br/>2 修改服务配置<br/><br/>ubuntu下可以指定只监听哪个网卡：<br/><br/>vi /etc/default/dhcp3-server<br/><div class="code"># On what interfaces should the DHCP server (dhcpd) serve DHCP requests?<br/>#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Separate multiple interfaces with spaces, e.g. &quot;eth0 eth1&quot;.<br/>INTERFACES=&quot;eth1&quot;</div><br/><br/>3 编辑主配置文件：<br/><br/><div class="code">root@aslibra:~# cat /etc/dhcp3/dhcpd.conf<br/>ddns-update-style none;<br/><br/>log-facility local7;<br/><br/>subnet 192.168.1.0 netmask 255.255.255.0 &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;range 192.168.1.100 192.168.1.253;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;option domain-name-servers 192.168.1.1, 8.8.8.8;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;option routers 192.168.1.1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;option broadcast-address 192.168.1.255;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default-lease-time 3600;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max-lease-time 36000;<br/>&#125;</div><br/><br/>4 启动服务<br/><br/><div class="code">/etc/init.d/dhcp3-server start</div><br/><br/><strong>检查DHCP客户端都有哪些</strong><br/><br/>你可以检查 /var/lib/dhcp3/dhcpd.leases 文件，知道当前的客户端，可这样不方便。<br/>我用PHP写了一个脚本，方便查看客户端列表，大家可以参考：<br/><br/><a href="http://www.aslibra.com/teach/dhcp/index.php?showCode" target="_blank">源代码 source code</a> - <a href="http://www.aslibra.com/teach/dhcp/index.php" target="_blank">演示地址 demo</a><br/><br/><strong>参考阅读</strong><br/><br/>1 <a href="http://baike.baidu.com/view/7992.htm" target="_blank">http://baike.baidu.com/view/7992.htm</a><br/>2 <a href="http://www.google.com.hk/search?hl=zh-CN&q=dhcpd.conf+MAN%E9%85%8D%E7%BD%AE%E6%89%8B%E5%86%8C&lr=&rlz=1I7GPCK_zh-CN" target="_blank">dhcpd.conf MAN配置手册</a><br/>3 英文参考 <a href="http://www.novell.com/documentation/suse91/suselinux-adminguide/html/ch14s10.html" target="_blank">http://www.novell.com/documentation/suse91/suselinux-adminguide/html/ch14s10.html</a><br/>Tags - <a href="http://www.aslibra.com/blog/go.php/tags/linux/" rel="tag">linux</a> , <a href="http://www.aslibra.com/blog/go.php/tags/dhcp/" rel="tag">dhcp</a> , <a href="http://www.aslibra.com/blog/go.php/tags/ubuntu/" rel="tag">ubuntu</a>
]]>
</description>
</item><item>
<link>http://www.aslibra.com/blog/post/centos-iptables-l7filter.php</link>
<title><![CDATA[转：Centos+iptables+l7-filter 封QQ MSN和P2P]]></title> 
<author>hqlulu &lt;hqlulu@163.com&gt;</author>
<category><![CDATA[linux]]></category>
<pubDate>Mon, 24 May 2010 10:57:18 +0000</pubDate> 
<guid>http://www.aslibra.com/blog/post/centos-iptables-l7filter.php</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在网关上如果要封杀 QQ、MSN 或者 P2P 等软件的通讯，单纯用 iptables 逐一封服务端IP或者封通讯端口都不是很好的办法，最简单的方法是使用L7-filter。&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L7-filter (Application Layer Packet Classifier for Linux), 是 Linux netfilter 的外挂模块, 它能使 Linux 的 iptables 支持 Layer 7 (Application 应用层) 过滤功能, 限制封杀 P2P、即时通讯软件。<br/><br/>Centos 4.4<br/>Kernel 2.6.9-42.0.3.EL<br/>Iptables 1.2.11<br/><br/><strong>1.下载所需软件包：</strong><br/><br/>kernel 2.6.19.7<br/># wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.19.7.tar.bz2<br/><br/>iptables 1.3.7<br/># wget http://www.netfilter.org/projects/iptables/files/iptables-1.3.7.tar.bz2<br/><br/>L7-filter<br/><a href="http://sourceforge.net/projects/l7-filter/files/" target="_blank">http://sourceforge.net/projects/l7-filter/files/</a><br/>netfilter-layer7-v2.12.tar.gz<br/>l7-protocols-2007-06-22.tar.gz<br/><br/><br/><strong>2.配置编译新内核</strong><br/>首先将所下载的软件都放置于/usr/src目录下<br/><br/><div class="code"># tar zxvf netfilter-layer7-v2.12.tar.gz<br/># tar xjvf linux.2.6.19.7.tar.bz2<br/># ln -s linux.2.6.19.7 linux<br/># cd linux<br/># patch -p1 &lt; /usr/src/netfilter-layer7-v2.9/kernel-2.6.18-2.6.19-layer7-2.9.patch<br/>#### (打L7-filter的内核补丁)<br/># make oldconfig<br/> <br/>(如果之前曾经编译过，需要先执行 make mrproper 。make oldconfig会自动对比之前的kernel config，根据之前版本的配置生成一个kernel config，这样方便我们在编译新核心的时候，无须在从头修改所有的核心设置）<br/><br/># make menuconfig 设定内核参数，具体参数可以参考这篇文章 内核编译详解<br/></div><br/><br/>核心不同，内核选项的排列方式有可能不一样，仔细找一下可以找到：<br/><br/><div class="code">Code maturity level options –&gt; &#91;*&#93; Prompt for development and/or incomplete code/drivers<br/><br/>Networking –&gt; Networking options –&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#91;*&#93; Network packet filtering (replaces ipchains) –&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IP: Netfilter Configuration –&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;M&gt; Connection tracking (required for masq/NAT)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#91;*&#93; Connection tracking flow accounting<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;M&gt; IP tables support (required for filtering/masq/NAT)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;M&gt; Layer 7 match support</div><br/><br/><div class="code"># make<br/># make modules<br/># make modules_install<br/># make install<br/># reboot<br/># uame -a</div><br/><br/>Linux jason.10235 2.6.19.7 #1 Fri Jul 6 11:56:11 CST 2007 i686 i686 i386 GNU/Linux<br/>系统已经更新至新内核 2.6.19.7<br/><br/><strong>3.更新升级Iptalbes的Layer7补丁</strong><br/><br/><div class="code"># cd /usr/src<br/># tar xjvf iptables-1.3.7.tar.bz2<br/># cd iptables-1.3.7<br/># patch -p &lt; ../netfilter-layer7-v2.0/iptables-layer7-2.0.patch<br/># chmod +x extensions/.layer7-test<br/># export KERNEL_DIR=/usr/src/linux-2.6.19.7<br/># export IPTABLES_DIR=/usr/src/iptables-1.3.7<br/># make BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man install<br/># iptables -V<br/>iptables v1.3.7 已经更新至新版本</div><br/><br/><strong>4. 安装Layer7 协议文件</strong><br/><br/><div class="code"># cd /usr/src<br/># tar zxvf l7-protocols-2007-06-22.tar.gz<br/># cd l7-protocols-2007-06-22<br/># make install</div><br/><br/><strong>5.使用iptables layer-7 filter：</strong><br/><br/><div class="code"># iptables -t mangle -I PREROUTING -m layer7 --l7proto edonkey -j DROP (禁止edonkey)<br/># iptables -t mangle -I PREROUTING -m layer7 --l7proto bittorrent -j DROP (禁止bt)<br/># iptables -t mangle -I PREROUTING -m layer7 --l7proto qq -j DROP (禁止QQ通讯)<br/># iptables -t mangle -I PREROUTING -m layer7 --l7proto msnmessenger -j DROP (禁止edonkey)<br/># iptables -t mangle -I PREROUTING -m layer7 --l7proto xunlei -j DROP (禁止迅雷)<br/># iptables -t mangle -I PREROUTING -m layer7 --l7proto kugoo -j DROP (禁止kugoo)<br/># iptables -t mangle -I PREROUTING -m layer7 --l7proto yahoo -j DROP (禁止Yahoo! Messenger)</div><br/><br/>L7-filter 支持的通讯协议 L7-filter Supported Protocols <br/>Last update 2007.7.16<br/><br/>-EOF-<br/><br/>原出处：<a href="http://www.10235.com/linux/centos-iptables-l7filter.html" target="_blank">http://www.10235.com/linux/centos-iptables-l7filter.html</a><br/>Tags - <a href="http://www.aslibra.com/blog/go.php/tags/centos/" rel="tag">centos</a> , <a href="http://www.aslibra.com/blog/go.php/tags/iptables/" rel="tag">iptables</a> , <a href="http://www.aslibra.com/blog/go.php/tags/l7filter/" rel="tag">l7filter</a> , <a href="http://www.aslibra.com/blog/go.php/tags/kernel/" rel="tag">kernel</a>
]]>
</description>
</item><item>
<link>http://www.aslibra.com/blog/post/iptables_network_block.php</link>
<title><![CDATA[监听和拦截网站访问]]></title> 
<author>hqlulu &lt;hqlulu@163.com&gt;</author>
<category><![CDATA[linux]]></category>
<pubDate>Thu, 13 May 2010 14:33:17 +0000</pubDate> 
<guid>http://www.aslibra.com/blog/post/iptables_network_block.php</guid> 
<description>
<![CDATA[ 
	<strong>假设两点：</strong><br/><br/>1 不能让访问真正访问到真实服务器<br/>2 记录访问发送的内容<br/><br/><strong>我的笨方法：</strong><br/><br/>1 在网关上控制数据的访问<br/>2 建立一个网关，把所有转发数据都发送到本地webserver，记录日志<br/>3 修改被监控的机器网关<br/><br/><strong>Step 1，iptables脚本：</strong><br/><br/><div class="code">#!/bin/bash<br/><br/>echo 1 &gt; /proc/sys/net/ipv4/ip_forward<br/><br/>iptables -F<br/>iptables -t nat -F<br/>iptables -P FORWARD ACCEPT<br/><br/>iptables -A INPUT -t filter -s 192.168.1.1/24 -j ACCEPT<br/>iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp -d ! 192.168.1.1/24 -j REDIRECT --to-ports 80</div><br/><br/><strong>Step 2，建立nginx记录日志（配置简化）：</strong><br/><br/><div class="code">log_format&nbsp;&nbsp;main&nbsp;&nbsp;&#039;$remote_addr - $http_host &#91;$time_local&#93; &quot;$request&quot; &#039;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#039;$status $body_bytes_sent &quot;$http_referer&quot; &#039;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#039;&quot;$http_user_agent&quot; &quot;&#124;&#124;$http_cookie&#124;&#124;&quot; &quot;&#124;&#124;$request_body&#124;&#124;&quot;&#039;;<br/><br/>server &#123;<br/>listen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 80;<br/>server_name&nbsp;&nbsp;localhost;<br/>access_log&nbsp;&nbsp;/Data/logs/host.access.log&nbsp;&nbsp;main;<br/>location / &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;&nbsp; html;<br/>&nbsp;&nbsp;&nbsp;&nbsp;index&nbsp;&nbsp;index.html index.htm;<br/>&#125;<br/>&#125;</div><br/><br/><strong>Step 3，修改被检测机器的网关为刚才的服务器</strong><br/><br/>这个结果是，被检测的机器发送的所有外网请求都会记录在日志里，日志里包含了域名、post的数据、cookie信息等，比如：<br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">192.168.1.27 - www.aslibra.com [13/May/2010:19:50:09 +0800] "GET / HTTP/1.1" 404 169 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET <br/>CLR 3.5.30729)"&#124;&#124;-&#124;&#124;" "&#124;&#124;-&#124;&#124;"<br/>192.168.1.27 - 221.176.31.1 [13/May/2010:19:50:09 +0800] "POST /ht/sd.aspx?t=i&i=1 HTTP/1.1" 404 169 "-" "IIC2.0/PC 3.6.2020" "&#124;&#124;ssi<br/>c=&#124;&#124;" "&#124;&#124;-&#124;&#124;"<br/>192.168.1.27 - www.google.com.hk [13/May/2010:19:50:10 +0800] "GET / HTTP/1.1" 200 151 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windo<br/>ws NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" "&#124;&#124;-&#124;&#124;" "&#124;&#124;-&#124;&#124;"<br/>192.168.1.27 - qurl.f.360.cn [13/May/2010:19:50:10 +0800] "POST /check_outchain.php HTTP/1.1" 404 169 "-" "Post_Multipart" "&#124;&#124;-&#124;&#124;" "<br/>&#124;&#124;-&#124;&#124;"<br/>192.168.1.27 - www.sqm.microsoft.com [13/May/2010:19:51:18 +0800] "POST /sqm/messenger/sqmserver.dll HTTP/1.1" 404 169 "-" "MSDW" "&#124;<br/>&#124;-&#124;&#124;" "&#124;&#124;-&#124;&#124;"<br/>192.168.1.27 - dict.youdao.com [13/May/2010:19:51:23 +0800] "GET /fsearch?client=deskdict&keyfrom=deskdict.network_test&q=Yodao%20di<br/>ct%20Retest&pos=7&doctype=xml&xmlVersion=3.2&dogVersion=1.0&id=3d933c2ef00b99c1&vendor=360z&in=___________________3.1.17.6336&appVer<br/>=3.1.17.6336&le=eng&wstate=yes&proc=iexplore.exe HTTP/1.1" 404 169 "-" "Yodao Desktop Dict (Windows 5.1.2600)" "&#124;&#124;OUTFOX_SEARCH_USER<br/>_ID=-2146282@1.2.3.4; DESKDICT_VENDOR=360z; JSESSIONID=bfds6TxoFfFvb_uv1srIs&#124;&#124;" "&#124;&#124;-&#124;&#124;"</div></div><br/><br/><strong>比如可以知道机器做了啥：</strong><br/><br/>1 访问阿权的书房的<br/>2 不明白什么访问的<br/>3 访问谷歌的<br/>4 360提交了什么东西<br/>5 微软提交了什么东西<br/>6 有道词典的数据，有cookie信息<br/><br/>知道访问的域名了，就可以在真正的网关禁止访问某个ip($x)即可。<br/><br/><div class="code">iptables -t nat -A PREROUTING -p tcp -m tcp -d $x -j REJECT<br/>或者<br/>iptables -t nat -A PREROUTING -p tcp -m tcp -d $x -j REDIRECT --to-ports 80</div><br/><br/>完成~~<br/>PS: 我们的大大的防火墙是否也类似这样呢。。<br/><br/><strong>参考阅读：</strong><br/><br/>1 <a href="http://www.google.com.hk/search?client=aff-cs-maxthon&forid=1&ie=utf-8&oe=UTF-8&hl=zh-CN&q=%E9%80%8F%E6%98%8E%E4%BB%A3%E7%90%86%E9%85%8D%E7%BD%AE" target="_blank">透明代理配置</a><br/>2 <a href="http://blog.chinaunix.net/u3/104553/showart_2065193.html" target="_blank">使用nginx截取https数据</a><br/>3 <a href="http://wiki.nginx.org/NginxHttpLogModule#log_format" target="_blank">NginxHttpLogModule</a><br/>4 <a href="http://www.google.com.hk/search?hl=zh-CN&source=hp&q=iptables+%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91&meta=&aq=4&aqi=g10&aql=&oq=iptables+&gs_rfai=" target="_blank">iptables 端口转发</a><br/>Tags - <a href="http://www.aslibra.com/blog/go.php/tags/linux/" rel="tag">linux</a> , <a href="http://www.aslibra.com/blog/go.php/tags/iptables/" rel="tag">iptables</a>
]]>
</description>
</item><item>
<link>http://www.aslibra.com/blog/post/XEN.php</link>
<title><![CDATA[XEN建立虚拟机]]></title> 
<author>hqlulu &lt;hqlulu@163.com&gt;</author>
<category><![CDATA[linux]]></category>
<pubDate>Wed, 05 May 2010 12:07:10 +0000</pubDate> 
<guid>http://www.aslibra.com/blog/post/XEN.php</guid> 
<description>
<![CDATA[ 
	<strong>为什么要用虚拟机？</strong><br/><br/>1 机器空闲，需要充分利用资源<br/>2 运行的程序有危险性，需要用独立的机器处理，但又没有空闲机器<br/>3 做一些测试性的操作<br/>4 建立脱离机器配置的服务，容易迁移到另外的服务器，备份硬盘即可<br/><br/><strong>有哪些虚拟机软件？</strong><br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">1 老牌子的 VMWare (http://www.vmware.com/) <br/>2 已漸趨成熟的 Xen (http://www.xensource.com/)<br/>3 後起之秀 KVM (Kernel based Virtual Machine, http://kvm.qumranet.com/kvmwiki) <br/>4 酷！炫！有勁的 VirtualBox (http://www.virtualbox.org/) </div></div><br/><br/><strong>XEN使用半虛擬化的環境所具備的特色有：</strong><br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">虛擬機器的運作效率與實體機器的效能相當； <br/>最多可支援到具有 32 顆以上 CPU 的主機環境； <br/>支援 x86/32, x86/32 含 PAE 技術, 及 x86/64 的硬體平台環境； <br/>良好的硬體驅動程式支援，幾乎支援所有的 Linux 裝置之驅動程式； </div></div><br/><br/><strong>安装XEN</strong><br/><br/><div class="code">yum -y install kernel-xen<br/>yum -y install xen xen-libs python-virtinst</div><br/><br/>安装相应的软件后，修改启动文件：<br/>/boot/grub/menu.lst<br/><br/>把xen内核版本的作为默认启动项，比如 title CentOS (2.6.18-164.15.1.el5xen)<br/>重启机器后，“uname -r” 检查是否内核带有xen后缀<br/><br/><strong>安装虚拟机</strong><br/><br/>按鸟哥的文章安装吧，其实没有那么麻烦，本地建立web服务，把centos的dvd光盘mount到某个目录，web可以访问即可。当然了，cd版本的按他的做吧。<br/><br/><strong>路由设置</strong><br/><br/>我们看看默认的iptables设置，去掉注释：<br/><br/><div class="code">&#91;root@aslibra ~&#93;# iptables-save &#124;grep -v ^#<br/>*nat<br/>:PREROUTING ACCEPT &#91;2163219:107750400&#93;<br/>:POSTROUTING ACCEPT &#91;6604:476359&#93;<br/>:OUTPUT ACCEPT &#91;6604:476359&#93;<br/>-A POSTROUTING -s 192.168.122.0/255.255.255.0 -d ! 192.168.122.0/255.255.255.0 -j MASQUERADE <br/>COMMIT<br/>*filter<br/>:INPUT ACCEPT &#91;470097:452540975&#93;<br/>:FORWARD ACCEPT &#91;0:0&#93;<br/>:OUTPUT ACCEPT &#91;346597:50757224&#93;<br/>-A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT <br/>-A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT <br/>-A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT <br/>-A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT <br/>-A FORWARD -d 192.168.122.0/255.255.255.0 -o virbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT <br/>-A FORWARD -s 192.168.122.0/255.255.255.0 -i virbr0 -j ACCEPT <br/>-A FORWARD -i virbr0 -o virbr0 -j ACCEPT <br/>-A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable <br/>-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable <br/>-A FORWARD -m physdev&nbsp;&nbsp;--physdev-in vif19624.0 -j ACCEPT <br/>COMMIT</div><br/><br/>主要有两个：<br/>1 本机需要作为forward网关，转发虚拟机的网络请求<br/>2 对虚拟机的网络请求进行路由转换<br/><br/>自行处理的话，主要的脚本有：<br/><br/><div class="code">#启用转发<br/>echo 1 &gt; /proc/sys/net/ipv4/ip_forward<br/>#路由地址转换<br/>$IPTABLES -t nat -A POSTROUTING -s 192.168.122.0/24 -j MASQUERADE<br/>#端口转发，比如ssh登录<br/>$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 5022 -j DNAT --to-destination 192.168.122.5:22</div><br/><br/>默认的路由表要检查一下：<br/><br/><div class="code">&#91;root@aslibra ~&#93;# route <br/>Kernel IP routing table<br/>Destination&nbsp;&nbsp;&nbsp;&nbsp; Gateway&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Genmask&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Flags Metric Ref&nbsp;&nbsp;&nbsp;&nbsp;Use Iface<br/>.... 省略 ... eth0<br/>192.168.1.0&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 255.255.255.0&nbsp;&nbsp; U&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 eth1<br/>192.168.122.0&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 255.255.255.0&nbsp;&nbsp; U&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 virbr0<br/>.... 省略 ... <br/>default&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .... 省略 ...&nbsp;&nbsp;eth0</div><br/><br/>检查虚拟机是否设置的ip为virbr0网卡的网段。<br/><br/><strong>一些命令</strong><br/><br/>xm list 列出当前虚拟机<br/>xm shutdown test 关闭test名称的虚拟机<br/>xm shutdown -a 关闭所有虚拟机<br/>xm create -c centos5 开启centos5配置文件里的虚拟机，并且接上当前界面<br/><br/><strong>效率问题？</strong><br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">我记得还是半虚拟化效率高。是这样的，虚拟化，我觉得楼主分的有问题，不考虑模拟器的话，虚拟化分为有硬件支持（主要是CPU）和没有硬件支持的虚拟化，最初标准的x86架构是不支持虚拟化的，VMWare等虚拟机的做法是在虚拟机执行的时候，预先取将要执行的指令，然后把其中的一些特权指令进行替换，所以效率底。而Xen等采用的半虚拟化则是在内核中进行修改，不去直接调用特权指令，所以效率高，我记得有90%的效率？<br/><br/>后来Intel和AMD在X86架构的CPU中各自加入了对虚拟化的支持，分别是VT和SVM。在CPU支持下，CPU就会有两种模式，Root和Non-root。Hypervisor运行在Root而虚拟机运行在Non-Root模式。在这种情况下，虚拟机可以调用特权指令，但是会转为Root模式处理，比以前来说不用软件去替换那么多的指令，所以效率就高一些。现在Xen、VMWare等都支持这种情况。<br/><br/>但是我们还是的注意，这里只是CPU支持了虚拟化，很多其他硬件设备还是不支持硬件虚拟化，所以还是有一部分的硬件需要通过软件进行模拟。所以效率还是不如半虚拟化高。</div></div><br/><br/><strong>参考资料：</strong><br/><br/>1 鸟哥 <a href="http://linux.vbird.org/linux_enterprise/xen.php" target="_blank">利用 Xen 設計虛擬機器</a><br/>2 <a href="http://blog.chinaunix.net/u2/68259/showart_2209631.html" target="_blank">调整 Xen 虚拟硬盘大小</a><br/>3 <a href="http://linux.chinaunix.net/bbs/viewthread.php?tid=1152065" target="_blank">关于Xen的完全虚拟化和半虚拟化</a><br/>4 <a href="http://blog.163.com/chunger_qin/blog/static/1332804922010362251544/" target="_blank">xen 虚拟机管理</a><br/>Tags - <a href="http://www.aslibra.com/blog/go.php/tags/linux/" rel="tag">linux</a> , <a href="http://www.aslibra.com/blog/go.php/tags/xen/" rel="tag">xen</a>
]]>
</description>
</item><item>
<link>http://www.aslibra.com/blog/post/ubuntu-install-proftpd.php</link>
<title><![CDATA[ubuntu下安装proftp]]></title> 
<author>hqlulu &lt;hqlulu@163.com&gt;</author>
<category><![CDATA[linux]]></category>
<pubDate>Tue, 27 Apr 2010 06:31:37 +0000</pubDate> 
<guid>http://www.aslibra.com/blog/post/ubuntu-install-proftpd.php</guid> 
<description>
<![CDATA[ 
	其实怎么安装proftp不用说<br/><br/><div class="code">apt-get install proftpd</div><br/><br/>一句话就可以了，需要说明的有几点：<br/><br/>1 限制用户主目录<br/><br/><div class="code">#编辑 /etc/proftpd/proftpd.conf ，打开DefaultRoot的注释即可<br/># Use this to jail all users in their homes <br/>DefaultRoot&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~</div><br/><br/>2 限制用户使用shell<br/><br/>如果使用/bin/false 或者是 /usr/sbin/nologin作为用户的shell，则输入正确的密码也登录不上ftp<br/>这个主要是因为 这两个shell程序不是有效的shell程序<br/># /etc/shells: valid login shells<br/><br/>我们可以编辑 /etc/shells 加入此shell即可，用户则会登录后强制退出了<br/><br/>参考：<br/>http://hi.baidu.com/jeffyqiu/blog/item/d5aba635f992ed8aa61e129b.html<br/>Tags - <a href="http://www.aslibra.com/blog/go.php/tags/proftp/" rel="tag">proftp</a> , <a href="http://www.aslibra.com/blog/go.php/tags/ftp/" rel="tag">ftp</a> , <a href="http://www.aslibra.com/blog/go.php/tags/ubuntu/" rel="tag">ubuntu</a>
]]>
</description>
</item><item>
<link>http://www.aslibra.com/blog/post/IBM-ServeRAID.php</link>
<title><![CDATA[IBM ServeRAID 配置]]></title> 
<author>hqlulu &lt;hqlulu@163.com&gt;</author>
<category><![CDATA[linux]]></category>
<pubDate>Fri, 23 Apr 2010 09:12:40 +0000</pubDate> 
<guid>http://www.aslibra.com/blog/post/IBM-ServeRAID.php</guid> 
<description>
<![CDATA[ 
	配置RAID可以参考这个《<a href="http://blog.csdn.net/teconly/archive/2008/10/23/3132387.aspx" target="_blank">使用ServeRAID Manager 配置阵列</a>》。<br/><br/>不过，使用此功能，还是需要下载IBM的iso，可是ibm官方已经没法下载了，感谢迅雷，让我们可以下载到这些资源：<br/><a href="http://www.gougou.com/search?search=IBM%20ServeRAID%20Support%20CD&id=0" target="_blank">IBM ServeRAID Support CD</a><br/><br/>如果有相关的错误，可以参考这个：<br/>《<a href="http://mail.ttes.tcc.edu.tw/~shiuann/myblog/read.php/87.htm" target="_blank">IBM xSeries 206 錯誤代碼說明</a>》<br/><br/>用该ISO刻录后启动机器，就可以进入设置了，参考前面的文章即可，我发现有个5ee的选项，看的是不错的东西：<br/><a href="http://www.chinaunix.net/jh/45/227657.html" target="_blank">RAID 5EE 阵列级别简介</a><br/><br/><br/>Tags - <a href="http://www.aslibra.com/blog/go.php/tags/linux/" rel="tag">linux</a> , <a href="http://www.aslibra.com/blog/go.php/tags/raid/" rel="tag">raid</a>
]]>
</description>
</item>
</channel>
</rss>