﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-于吉吉的技术博客-随笔分类-安装配置</title><link>http://www.blogjava.net/dongbule/category/47198.html</link><description>建造高性能门户网</description><language>zh-cn</language><lastBuildDate>Tue, 04 Mar 2014 08:55:08 GMT</lastBuildDate><pubDate>Tue, 04 Mar 2014 08:55:08 GMT</pubDate><ttl>60</ttl><item><title>《maven简介配置与私服搭建》 分享</title><link>http://www.blogjava.net/dongbule/archive/2014/03/04/410574.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Tue, 04 Mar 2014 02:49:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2014/03/04/410574.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/410574.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2014/03/04/410574.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/410574.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/410574.html</trackback:ping><description><![CDATA[<div>前段时间部分项目改成maven，并搭建了nexus私服，所以在组内做了一个关于maven的分享与培训，下面是这次的ppt<br /><br /><div><a href="http://www.blogjava.net/Files/dongbule/maven.zip">《maven简介配置与私服搭建》</a></div>http://www.blogjava.net/Files/dongbule/maven.zip<br /><br /><br />----------------------------------------<br />  <br />  by 陈于喆 <br />  QQ:34174409<br />  Mail: dongbule@163.com<br /></div><img src ="http://www.blogjava.net/dongbule/aggbug/410574.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2014-03-04 10:49 <a href="http://www.blogjava.net/dongbule/archive/2014/03/04/410574.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《mac os x选购与初步探索》 的分享</title><link>http://www.blogjava.net/dongbule/archive/2014/02/23/410207.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Sun, 23 Feb 2014 04:54:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2014/02/23/410207.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/410207.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2014/02/23/410207.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/410207.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/410207.html</trackback:ping><description><![CDATA[用mac系统已经一年多了，周边同事也越来越多人开始用mac，所以在公司内部做了一次mac选购和mac os x系统比较有技术细节的分享，留下2份ppt用于纪念。<br /><br />《mac的选购》对最常见的几个mac硬件 ， macbook air,macbook pro,mac mini,imac 进行对比分析，包括性能价格和针对的应用分析<br /><a href="http://www.blogjava.net/Files/dongbule/mac%20(1).pptx.zip">《mac选购》</a>&nbsp;http://www.blogjava.net/Files/dongbule/mac%20(1).pptx.zip<br />在完成分享后，以新增2个同事选购了macbook air &nbsp;^_^<br /><br />《mac os x》针对了mac的一些细节分析，为什么在05年以前苹果不能虚拟机和黑苹果，为什么在苹果改成x86系统，黑苹果横行，mac在内存管理与win有何实质的不同，，，，等等。<br /><a href="http://www.blogjava.net/Files/dongbule/mac%20os.zip">《mac os x》</a>http://www.blogjava.net/Files/dongbule/mac%20os.zip<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />----------------------------------------<img src ="http://www.blogjava.net/dongbule/aggbug/410207.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2014-02-23 12:54 <a href="http://www.blogjava.net/dongbule/archive/2014/02/23/410207.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在debian安装nfs-server出现的bug处理</title><link>http://www.blogjava.net/dongbule/archive/2011/04/06/347718.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Wed, 06 Apr 2011 09:13:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2011/04/06/347718.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/347718.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2011/04/06/347718.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/347718.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/347718.html</trackback:ping><description><![CDATA[<br />
<a id="viewpost1_TitleUrl" href="../archive/2011/04/06/347716.html">nfs安装与配置（debian）</a><br />
好吧，这个错误浪费了我今天几个小时的时间，必须把它记录下来。<br />
问题是这样的，在启动更新了portmap，exportfs，一些没问题后，在做/etc/init.d/nfs-kernel-server restart 出现<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">/etc/init.d/nfs-kernel-server&nbsp;start<br />
Exporting&nbsp;directories&nbsp;for&nbsp;NFS&nbsp;kernel&nbsp;daemon<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />exportfs:&nbsp;/etc/exports&nbsp;</span><span style="color: #800000; font-weight: bold;">[</span><span style="color: #800000;">1</span><span style="color: #800000; font-weight: bold;">]</span><span style="color: #000000;">:<br />
Neither&nbsp;'subtree_check'&nbsp;or&nbsp;'no_subtree_check'&nbsp;specified&nbsp;for&nbsp;export<br />
</span><span style="color: #000000;">"</span><span style="color: #000000;">foobar</span><span style="color: #000000;">"</span><span style="color: #000000;">.<br />
&nbsp;&nbsp;Assuming&nbsp;default&nbsp;behaviour&nbsp;('no_subtree_check').<br />
&nbsp;&nbsp;NOTE:&nbsp;this&nbsp;default&nbsp;has&nbsp;changed&nbsp;since&nbsp;nfs-utils&nbsp;version&nbsp;</span><span style="color: #000000;">1.0</span><span style="color: #000000;">.x<br />
<br />
.<br />
Starting&nbsp;NFS&nbsp;kernel&nbsp;daemon:&nbsp;nfsd<br />
Not&nbsp;starting:&nbsp;portmap&nbsp;daemon&nbsp;is&nbsp;not&nbsp;running&nbsp;(warning).</span></div>
<br />
<br />
警告提示portmap is not running<br />
<br />
好吧，检查一下portmap<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">/home/mnt/index#&nbsp;ps&nbsp;aux&nbsp;|&nbsp;grep&nbsp;portmap<br />
daemon&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">31478</span><span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #000000;">0.0</span><span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #000000;">0.0</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">2052</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">624</span><span style="color: #000000;">&nbsp;?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ss&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">13</span><span style="color: #000000;">:</span><span style="color: #000000;">59</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">:</span><span style="color: #000000;">00</span><span style="color: #000000;">&nbsp;/sbin/portmap</span></div>
<br />
<br />
portmap的状态已经是running，在googling后，发现网上有人说是<br />
This is the problem, portmap is not actually running, causing rpc.statd<br />
<br />
看来问题还是出现rpc上，最主要的进程rpc.mountd无法启动<br />
<br />
好吧，接下来打开/etc/init.d/nfs-kernel-server这个启动脚本进行查看<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;See&nbsp;if&nbsp;portmap&nbsp;or&nbsp;rpcbind&nbsp;are&nbsp;running<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(cat&nbsp;&lt;/dev/null&nbsp;&gt;/dev/tcp/localhost/</span><span style="color: #000000;">111</span><span style="color: #000000;">)&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">&gt;/dev/null<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RET</span><span style="color: #000000;">=</span><span style="color: #000000;">$?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;</span><span style="color: #800000; font-weight: bold;">[</span><span style="color: #800000;">&nbsp;$RET&nbsp;!=&nbsp;0&nbsp;</span><span style="color: #800000; font-weight: bold;">]</span><span style="color: #008000;">;</span><span style="color: #008000;">&nbsp;then</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log_warning_msg&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">Not&nbsp;starting:&nbsp;portmap&nbsp;daemon&nbsp;is&nbsp;not&nbsp;running</span><span style="color: #000000;">"</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi</span></div>
<br />
<br />
看来问题就出来这个，什么叫&#8220;/dev/tcp/localhost/111&#8221;，还是googling，网上有人说<br />
<br />
I find that this is a bashism, but the init-script is marked as a bash script at the<br />
top:<br />
!/bin/bash<br />
再man Bash，发现<br />
Bash, as packaged for Debian, does not support using the /dev/tcp and /dev/udp files<br />
<br />
应该很清楚了，如果按照这里的分析，那么我们需要对上面的这个启动脚本进行一下修改就可以完成我们的目的，最直接的就是把exit 0注释掉，另外说一点，这个脚本也有些写得不大合理，既然是log_warning_msg，一个warning，就不应该直接的exit 0<br />
<br />
<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/347718.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2011-04-06 17:13 <a href="http://www.blogjava.net/dongbule/archive/2011/04/06/347718.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>让linux定时执行秒级任务</title><link>http://www.blogjava.net/dongbule/archive/2011/01/19/343227.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Wed, 19 Jan 2011 09:47:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2011/01/19/343227.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/343227.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2011/01/19/343227.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/343227.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/343227.html</trackback:ping><description><![CDATA[<br />
问题是这样的，有个脚本需要10秒钟执行一次，脚本具体功能就不细说，定时任务自然选用crontab，但是crontab最小的执行时间为分钟，最后决定选用死循环进行实现。<br />
<br />
脚本 <br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">vi&nbsp;hello</span><span style="color: #000000;">.</span><span style="color: #000000;">sh<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">!/bin/sh</span><span style="color: #008000;"><br />
</span><span style="color: #0000ff;">while</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">:</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">do</span><span style="color: #000000;"><br />
echo&nbsp;`date`&nbsp;</span><span style="color: #000000;">&gt;&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">home</span><span style="color: #000000;">/</span><span style="color: #000000;">chenyz</span><span style="color: #000000;">/</span><span style="color: #800000;">1</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">//</span><span style="color: #000000;">这里是任务的实现<br />
</span><span style="color: #0000ff;">sleep</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">10</span><span style="color: #000000;"><br />
done</span></div>
<br />
这里的程序运行时间间隔是10s，小心咯，如果没有加sleep 10，你的机器很快就会耗尽资源，负载会狂飙。<br />
<br />
接着需要把脚本用后台守护进程来运行，避免用户退出而导致脚本失效<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">nohup&nbsp;sh&nbsp;hello</span><span style="color: #000000;">.</span><span style="color: #000000;">sh&nbsp;</span><span style="color: #000000;">&amp;</span></div>
<br />
btw，nohup就是no hang up（不挂起）<br />
<br />
最后检查一下执行用户退出后相应的进程是否继续在运行<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">root</span><span style="color: #800080;">@tech163</span><span style="color: #000000;">:/</span><span style="color: #000000;">home</span><span style="color: #000000;">/</span><span style="color: #000000;">chenyz</span><span style="color: #008000;">#</span><span style="color: #008000;">&nbsp;ps&nbsp;-aux&nbsp;|&nbsp;grep&nbsp;hello</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">Warning</span><span style="color: #000000;">:</span><span style="color: #000000;">&nbsp;bad&nbsp;ps&nbsp;syntax</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;perhaps&nbsp;a&nbsp;bogus&nbsp;</span><span style="color: #000000; font-weight: bold;">'</span><span style="color: #000000; font-weight: bold;">-</span><span style="color: #000000; font-weight: bold;">'</span><span style="color: #000000;">?</span><span style="color: #000000;">&nbsp;See&nbsp;http</span><span style="color: #000000;">://</span><span style="color: #000000;">procps</span><span style="color: #000000;">.</span><span style="color: #000000;">sf</span><span style="color: #000000;">.</span><span style="color: #000000;">net</span><span style="color: #000000;">/</span><span style="color: #000000;">faq</span><span style="color: #000000;">.</span><span style="color: #000000;">html<br />
root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000;">17275</span><span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #800000;">0.0</span><span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #800000;">0.1</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #800000;">1840</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #800000;">544</span><span style="color: #000000;">&nbsp;pts</span><span style="color: #000000;">/</span><span style="color: #800000;">1</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;S&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000;">17</span><span style="color: #000000;">:</span><span style="color: #800000;">33</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #800000;">0</span><span style="color: #000000;">:</span><span style="color: #800000;">00</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">bin</span><span style="color: #000000;">/</span><span style="color: #000000;">sh&nbsp;</span><span style="color: #000000;">./</span><span style="color: #000000;">hello</span><span style="color: #000000;">.</span><span style="color: #000000;">sh<br />
<br />
root</span><span style="color: #800080;">@tech163</span><span style="color: #000000;">:/</span><span style="color: #000000;">home</span><span style="color: #000000;">/</span><span style="color: #000000;">chenyz</span><span style="color: #008000;">#</span><span style="color: #008000;">&nbsp;&nbsp;vi&nbsp;1</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">Wed&nbsp;Jan&nbsp;</span><span style="color: #800000;">19</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">17</span><span style="color: #000000;">:</span><span style="color: #800000;">09</span><span style="color: #000000;">:</span><span style="color: #800000;">02</span><span style="color: #000000;">&nbsp;CST&nbsp;</span><span style="color: #800000;">2011</span><span style="color: #000000;"><br />
Wed&nbsp;Jan&nbsp;</span><span style="color: #800000;">19</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">17</span><span style="color: #000000;">:</span><span style="color: #800000;">09</span><span style="color: #000000;">:</span><span style="color: #800000;">12</span><span style="color: #000000;">&nbsp;CST&nbsp;</span><span style="color: #800000;">2011</span><span style="color: #000000;"><br />
Wed&nbsp;Jan&nbsp;</span><span style="color: #800000;">19</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">17</span><span style="color: #000000;">:</span><span style="color: #800000;">09</span><span style="color: #000000;">:</span><span style="color: #800000;">22</span><span style="color: #000000;">&nbsp;CST&nbsp;</span><span style="color: #800000;">2011</span><span style="color: #000000;"><br />
Wed&nbsp;Jan&nbsp;</span><span style="color: #800000;">19</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">17</span><span style="color: #000000;">:</span><span style="color: #800000;">09</span><span style="color: #000000;">:</span><span style="color: #800000;">32</span><span style="color: #000000;">&nbsp;CST&nbsp;</span><span style="color: #800000;">2011</span><span style="color: #000000;"><br />
Wed&nbsp;Jan&nbsp;</span><span style="color: #800000;">19</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">17</span><span style="color: #000000;">:</span><span style="color: #800000;">09</span><span style="color: #000000;">:</span><span style="color: #800000;">42</span><span style="color: #000000;">&nbsp;CST&nbsp;</span><span style="color: #800000;">2011</span><span style="color: #000000;"><br />
Wed&nbsp;Jan&nbsp;</span><span style="color: #800000;">19</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">17</span><span style="color: #000000;">:</span><span style="color: #800000;">09</span><span style="color: #000000;">:</span><span style="color: #800000;">52</span><span style="color: #000000;">&nbsp;CST&nbsp;</span><span style="color: #800000;">2011</span><span style="color: #000000;"><br />
</span><span style="color: #000000;"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span></div>
<br />
<br />
如果有更好的办法和想法，虚心请教，欢迎讨论<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/343227.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2011-01-19 17:47 <a href="http://www.blogjava.net/dongbule/archive/2011/01/19/343227.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装配置整理之 awstats</title><link>http://www.blogjava.net/dongbule/archive/2010/12/10/340281.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Fri, 10 Dec 2010 09:28:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2010/12/10/340281.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/340281.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2010/12/10/340281.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/340281.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/340281.html</trackback:ping><description><![CDATA[下载地址 http://awstats.sourceforge.net<br />
下载最新版本 <br />
<br />
<strong>安装</strong><br />
cd /home/download<br />
wget http://awstats.sourceforge.net/files/awstats-7.0.tar.gz<br />
tar zxf awstats-7.0.tar.gz<br />
mv awstats-7.0 awstats<br />
perl awstats_configure.pl<br />
<br />
在[y/n]选择时,输入y<br />
接着输入你要分析的域名,输入tech163<br />
一路Enter<br />
<br />
<strong>配置</strong><br />
vi /etc/awstats/awstats.tech163.com<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">LogFile="/home/apache/logs/access_logs"<br />
DirCgi="/home/awstats/wwwroot/cgi-bin"<br />
AllowToUpdateStatsFromBrowser=1</span></div>
<br />
<br />
vi /home/apache/conf/httpd.conf<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">VirtualHost&nbsp;</span><span style="color: #ff0000;">*</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;ServerName&nbsp;awstats.163.com<br />
&nbsp;&nbsp;DocumentRoot&nbsp;"/home/awstats/awstats/wwwroot"<br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">VirtualHost</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<br />
Alias&nbsp;/awstatsclasses&nbsp;"/home/awstats/awstats/wwwroot/classes/"<br />
Alias&nbsp;/awstatscss&nbsp;"/home/awstats/awstats/wwwroot/css/"<br />
Alias&nbsp;/awstatsicons&nbsp;"/home/awstats/awstats/wwwroot/icon/"<br />
ScriptAlias&nbsp;/awstats/&nbsp;"/home/awstats/awstats/wwwroot/cgi-bin/"</span></div>
<br />
<br />
cd /home/awstats/wwwroot/cgi-bin<br />
perl awstats.pl -config=tech163 -update -lang=cn<br />
perl awstats.pl -config=tech163 -output -staticlinks -lang=cn&gt;awstats.tech163.html<br />
<br />
<strong>测试</strong><br />
http://awstats.163.com/awstats/awstats.pl?config=tech163.com<br />
<br />
host指定 awstats.163.com 为 配置的机器ip<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/340281.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2010-12-10 17:28 <a href="http://www.blogjava.net/dongbule/archive/2010/12/10/340281.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装配置整理之 memcached</title><link>http://www.blogjava.net/dongbule/archive/2010/12/07/339995.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Tue, 07 Dec 2010 08:34:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2010/12/07/339995.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/339995.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2010/12/07/339995.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/339995.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/339995.html</trackback:ping><description><![CDATA[memcached需要依赖到以下的一系列包<br />
gcc<br />
libevent<br />
glibc-devel <br />
<br />
<strong>下载</strong><br />
cd /home/download <br />
wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz<br />
wget http://www.danga.com/memcached/dist/memcached-1.4.0.tar.gz<br />
<br />
<strong>安装</strong><br />
tar -zxvf libevent-1.4.13-stable.tar.gz<br />
cd libevent-1.4.13-stable<br />
./configure --prefix=/usr/local/libevent<br />
make &amp;&amp; make install<br />
<br />
tar -zxvf memcached-1.4.0.tar.gz<br />
cd memcached-1.4.0<br />
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent<br />
make &amp;&amp; make install<br />
<br />
<strong>启动</strong><br />
/usr/local/memcached/bin/memcached -d -m 64 -u root -p 11211 -c 1024 -P /var/memcached.pid <br />
-d 为守护进程<br />
-m 为分配的内存量<br />
-u 运行memcached的用户<br />
-p 监听的端口<br />
-c 最大的并发连接数<br />
-P 保存pid文件<br />
<br />
还有很多的启动选项,通过帮助查看<br />
/usr/local/memcached/bin/memcached -h <br />
<br />
<strong>测试</strong><br />
在windows开启命令行<br />
telnet 192.168.1.100 11211<br />
用telnet测试一下以下命令<br />
stats 查询状态<br />
version 查询版本<br />
quit 退出<br />
flush_all 清空缓存数据<br />
<br />
<strong>结束进程</strong><br />
kill cat /var/memcached.pid <br />
<br />
<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/339995.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2010-12-07 16:34 <a href="http://www.blogjava.net/dongbule/archive/2010/12/07/339995.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装配置整理之 PHP-FPM</title><link>http://www.blogjava.net/dongbule/archive/2010/11/30/339425.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Tue, 30 Nov 2010 10:44:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2010/11/30/339425.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/339425.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2010/11/30/339425.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/339425.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/339425.html</trackback:ping><description><![CDATA[<strong>PHP-FPM</strong> 是 一个PHP <strong>FastCGI</strong>进程管理器<br />
<br />
FastCGI是一个可伸缩的，高速地在web server和脚本语言间交互的接口。FastCGI的主要优点是把动态语言和web server分离开来。这种技术允许把web server和动态语言运行在不同的主机上，以大规模扩展和改进安全性而不损失生产效率。<br />
<br />
php-fpm可以和任何支持远端FastCGI的web server工作<br />
<strong><br />
安装</strong><br />
php-5.2.13.tar.gz<br />
php-5.2.13-fpm-0.5.14.diff.gz <br />
<br />
tar zxvf php-5.2.13.tar.gz<br />
gunzip php-5.2.13-fpm-0.5.14.diff.gz <br />
<br />
patch -d php-5.2.13 -p1 &lt; php-5.2.13-fpm-0.5.14.diff (给php源码打fpm补丁)<br />
<br />
cd php-5.2.13<br />
<br />
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --enable-fastcgi --enable-fpm --with-config-file-path=/usr/local/php/etc --enable-force-cgi-redirect&nbsp; <br />
<br />
make &amp;&amp;　make install<br />
<br />
<strong>检查安装的情况</strong><br />
<br />
cd /usr/local/php/bin<br />
<br />
./php -v <br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">PHP&nbsp;</span><span style="color: rgb(0, 0, 0);">5.2</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">13</span><span style="color: rgb(0, 0, 0);">&nbsp;(cli)&nbsp;(built</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">&nbsp;Nov&nbsp;</span><span style="color: rgb(0, 0, 0);">30</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">2010</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">16</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">59</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">45</span><span style="color: rgb(0, 0, 0);">)&nbsp;<br />
Copyright&nbsp;(c)&nbsp;</span><span style="color: rgb(0, 0, 0);">1997</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">2010</span><span style="color: rgb(0, 0, 0);">&nbsp;The&nbsp;PHP&nbsp;Group<br />
Zend&nbsp;Engine&nbsp;v2</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">2.0</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">&nbsp;Copyright&nbsp;(c)&nbsp;</span><span style="color: rgb(0, 0, 0);">1998</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">2010</span><span style="color: rgb(0, 0, 0);">&nbsp;Zend&nbsp;Technologies</span></div>
##出现上面的显示说明安装正常<br />
<br />
cp /home/download/php-5.2.13/php.ini-dist /usr/local/php/etc/php.ini<br />
<br />
vi /usr/local/php/etc/php-fpm.conf<br />
<br />
去除下列两行的注释<br />
&lt;value name="user"&gt;nobody&lt;/value&gt;&nbsp; <br />
&lt;value name="group"&gt;nobody&lt;/value&gt;<br />
<br />
启动php-fpm<br />
/usr/local/php/sbin/php-fpm start<br />
<br />
<strong>配置nginx</strong>(配置nginx见 <a href="http://www.blogjava.net/dongbule/archive/2010/11/30/nginx.html">安装配置整理之 nginx</a>)<br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">server&nbsp;{<br />
listen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">80</span><span style="color: rgb(0, 128, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);">server_name&nbsp;&nbsp;www.test.com</span><span style="color: rgb(0, 128, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);">root&nbsp;&nbsp;&nbsp;/home/htmlfile/test</span><span style="color: rgb(0, 128, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);"><br />
location&nbsp;~&nbsp;.*\.(php|php5)?$&nbsp;{<br />
root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;html</span><span style="color: rgb(0, 128, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);">fastcgi_pass&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">127.0.0.1</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">9000</span><span style="color: rgb(0, 128, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);">fastcgi_index&nbsp;&nbsp;index.php</span><span style="color: rgb(0, 128, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);">fastcgi_param&nbsp;&nbsp;SCRIPT_FILENAME&nbsp;&nbsp;/home/htmlfile/test$fastcgi_script_name</span><span style="color: rgb(0, 128, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);">include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fastcgi_params</span><span style="color: rgb(0, 128, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);">}<br />
location&nbsp;~&nbsp;.*\.(gif|jpg|jpeg|png|bmp|swf)$&nbsp;&nbsp;{<br />
expires&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;30d</span><span style="color: rgb(0, 128, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);">}<br />
location&nbsp;~&nbsp;.*\.(js|css)?$&nbsp;&nbsp;{<br />
expires&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1h</span><span style="color: rgb(0, 128, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);">}<br />
#access_log&nbsp;&nbsp;/var/logs/access.log&nbsp;&nbsp;access</span><span style="color: rgb(0, 128, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);">}</span></div>
## server部分为PHP虚拟主机127.0.0.1：9000为fastcgi的主机<br />
<br />
重启nginx<br />
<br />
在/home/htmlfile/test目录下新建test.php<br />
内容为&lt;?php phpinfo(); ?&gt;<br />
<br />
既通过www.test.com/test.php进行访问,出现php的信息页,则安装成功<br />
<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/339425.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2010-11-30 18:44 <a href="http://www.blogjava.net/dongbule/archive/2010/11/30/339425.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装配置整理之 mysql</title><link>http://www.blogjava.net/dongbule/archive/2010/11/30/339394.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Tue, 30 Nov 2010 07:21:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2010/11/30/339394.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/339394.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2010/11/30/339394.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/339394.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/339394.html</trackback:ping><description><![CDATA[mysql的官方网站是 http://www.mysql.com<br />
<br />
tar zxvf mysql-5.1.50.tar.gz<br />
<br />
cd mysql-5.1.50<br />
<br />
./configure --prefix=/usr/local/mysql --with-charset=gbk --with-extra-charset=all --enable-hread-safe-client <br />
--enable-local-infile --with-low-memory&nbsp; <br />
<br />
make &amp;&amp; make install<br />
<br />
chmod +w /usr/local/mysql<br />
<br />
chown -R mysql:mysql /usr/local/mysql<br />
<br />
cp support-files/my-medium.cnf /etc/my.cnf<br />
<br />
/usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql<br />
<br />
/bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/339394.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2010-11-30 15:21 <a href="http://www.blogjava.net/dongbule/archive/2010/11/30/339394.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装配置整理之 nginx</title><link>http://www.blogjava.net/dongbule/archive/2010/11/30/nginx.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Tue, 30 Nov 2010 04:45:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2010/11/30/nginx.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/339377.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2010/11/30/nginx.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/339377.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/339377.html</trackback:ping><description><![CDATA[nginx的官方网站是:http://www.nginx.org<br />
<br />
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器，也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的，它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。尽管还是测试版，但是，Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。<br />
<br />
<strong>nginx的特性</strong><br />
1.目前官方 Nginx 并不支持Windows,您只能在包括Linux,UNIX,BSD系统下安装和使用<br />
2.Nginx 本身只是一个HTTP和反向代理服务器，它无法像Apache一样通过安装各种模块来支持不同的页面脚本，例如PHP、CGI等<br />
3.Nginx 支持简单的负载均衡和容错<br />
4.支持作为基本 HTTP 服务器的功能，例如日志、压缩、Byte ranges、Chunked responses、SSL、虚拟主机等等，应有尽有<br />
<br />
<strong>安装</strong><br />
安装nginx前需要确保系统中已经安装PCRE包,PCRE library这个是HTTP Rewrite模块,也即是url静态化的包,到http://www.pcre.org下载最新的PCRE源码包,<br />
<br />
或直接使用yum install pcre,apt-get instll pcre进行安装<br />
<br />
登录 http://www.nginx.org/en/download.html 下载最新的版本<br />
<br />
wget http://www.nginx.org/download/nginx-0.8.53.tar.gz<br />
<br />
tar zxvf nginx-0.8.53.tar.gz<br />
<br />
cd nginx-0.8.53<br />
<br />
./configure --prefix=/usr/local/nginx --with-pcre=/home/download/pcre-8.01&nbsp; --with-http_ssl_module --with-openssl=/home/download/openssl-1.0.0a --with-http_stub_status_module&nbsp; <br />
<br />
##指定pcre目录和启动ssl,https模块<br />
<br />
make <br />
<br />
make install<br />
<br />
##为什么Nginx的性能要比Apache高得多?这得益于Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(freebsd)网络I/O模型，而Apache则使用的是传统的select模型。目前Linux下能够承受高并发访问的 Squid、Memcached都采用的是epoll网络I/O模型,处理大量的连接的读写，Apache所采用的select网络I/O模型非常低效<br />
<br />
<strong>配置</strong><br />
编辑vi /usr/local/nginx/conf/nginx.conf,其中/usr/local/nginx为安装路径<span style="color: #000000;"><br />
</span><br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008000;">#</span><span style="color: #008000;">#指定nginx的用户名和用户组</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">user&nbsp;&nbsp;nobody;<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">#启动进程数</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">worker_processes&nbsp;&nbsp;</span><span style="color: #000000;">8</span><span style="color: #000000;">;<br />
worker_rlimit_nofile&nbsp;</span><span style="color: #000000;">10240</span><span style="color: #000000;">;<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">#指定PID文件</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">pid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logs</span><span style="color: #000000;">/</span><span style="color: #000000;">nginx</span><span style="color: #000000;">.</span><span style="color: #000000;">pid;<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">#指定工作模式和链接上限</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">events&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">use</span><span style="color: #000000;">&nbsp;epoll;<br />
&nbsp;&nbsp;&nbsp;&nbsp;worker_connections&nbsp;&nbsp;</span><span style="color: #000000;">10240</span><span style="color: #000000;">;<br />
}<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">#http服务器</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">http&nbsp;{<br />
</span><span style="color: #0000ff;">include</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mime</span><span style="color: #000000;">.</span><span style="color: #000000;">types;<br />
default_type&nbsp;&nbsp;text</span><span style="color: #000000;">/</span><span style="color: #000000;">html;<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">#指定日志格式</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">log_format&nbsp;&nbsp;main&nbsp;&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">$http_x_forwarded_for&nbsp;-&nbsp;$remote_user&nbsp;[$time_local]&nbsp;$request&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">"$status"&nbsp;$body_bytes_sent&nbsp;"$http_referer"&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">"$http_user_agent"&nbsp;"$http_x_forwarded_for"</span><span style="color: #000000;">'</span><span style="color: #000000;">;<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">#指定accesslog</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">access_log&nbsp;logs</span><span style="color: #000000;">/</span><span style="color: #000000;">nginx</span><span style="color: #000000;">.</span><span style="color: #008080;">log</span><span style="color: #000000;">&nbsp;main;<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">#指定超时</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">keepalive_timeout&nbsp;&nbsp;</span><span style="color: #000000;">300</span><span style="color: #000000;">;<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">#开启gzip模块</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">gzip&nbsp;&nbsp;on;<br />
gzip_min_length&nbsp;&nbsp;</span><span style="color: #000000;">1000</span><span style="color: #000000;">;<br />
gzip_buffers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">4</span><span style="color: #000000;">&nbsp;8k;<br />
gzip_types&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text</span><span style="color: #000000;">/*</span><span style="color: #000000;">;<br />
gzip_http_version&nbsp;</span><span style="color: #000000;">1.0</span><span style="color: #000000;">;<br />
output_buffers&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;32k;<br />
postpone_output&nbsp;&nbsp;</span><span style="color: #000000;">1460</span><span style="color: #000000;">;<br />
gzip_proxied&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;any;<br />
gzip_vary&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on;<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">#指定请求的缓冲</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">client_header_timeout&nbsp;&nbsp;&nbsp;5m;<br />
client_body_timeout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5m;<br />
send_timeout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5m;<br />
sendfile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on;<br />
tcp_nopush&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on;<br />
tcp_nodelay&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;off;<br />
client_header_buffer_size&nbsp;16k;<br />
large_client_header_buffers&nbsp;</span><span style="color: #000000;">4</span><span style="color: #000000;">&nbsp;64k;<br />
server_names_hash_bucket_size&nbsp;</span><span style="color: #000000;">128</span><span style="color: #000000;">;<br />
ssi&nbsp;on;<br />
ssi_silent_errors&nbsp;on;<br />
ssi_types&nbsp;text</span><span style="color: #000000;">/</span><span style="color: #000000;">shtml;<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">#指定虚拟主机</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">server&nbsp;{<br />
listen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">80</span><span style="color: #000000;">;<br />
server_name&nbsp;_;<br />
server_name_in_redirect&nbsp;&nbsp;off;<br />
<br />
location&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">&nbsp;{<br />
&nbsp;root&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">dev</span><span style="color: #000000;">/</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br />
}<br />
<br />
}<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">#指定include文件</span><span style="color: #008000;"><br />
</span><span style="color: #0000ff;">include</span><span style="color: #000000;">&nbsp;servers</span><span style="color: #008000;">/*</span><span style="color: #008000;">.com;<br />
<br />
}<br />
<br />
</span></div>
<br />
新建proxy.conf<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">proxy_set_header&nbsp;X-Forwarded-For&nbsp;$remote_addr</span><span style="color: #008000;">;</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;##设定header</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">proxy_set_header&nbsp;RealIP&nbsp;$remote_addr</span><span style="color: #008000;">;<br />
</span><span style="color: #000000;">proxy_set_header&nbsp;Accept-Encoding&nbsp;'&nbsp;'</span><span style="color: #008000;">;<br />
</span><span style="color: #000000;">proxy_hide_header&nbsp;Vary</span><span style="color: #008000;">;</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;##隐藏header</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">add_header&nbsp;via_up&nbsp;$upstream_addr</span><span style="color: #008000;">;<br />
</span><span style="color: #000000;">proxy_connect_timeout&nbsp;&nbsp;&nbsp;2m</span><span style="color: #008000;">;</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;##代理连接超时</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">proxy_send_timeout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2m</span><span style="color: #008000;">;</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;##代理发送超时</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">proxy_read_timeout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2m</span><span style="color: #008000;">;</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;##代理发送超时</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">proxy_temp_file_write_size&nbsp;2048m</span><span style="color: #008000;">;</span><span style="color: #008000;">##设定缓存文件夹大小</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">proxy_buffer_size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;256k</span><span style="color: #008000;">;</span><span style="color: #008000;">&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">proxy_buffers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">4</span><span style="color: #000000;">&nbsp;256k</span><span style="color: #008000;">;</span><span style="color: #008000;">&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">proxy_busy_buffers_size&nbsp;512k</span><span style="color: #008000;">;</span><span style="color: #008000;">&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
proxy_ignore_client_abort&nbsp;off</span><span style="color: #008000;">;<br />
</span><span style="color: #000000;"><br />
proxy_next_upstream&nbsp;error&nbsp;timeout&nbsp;invalid_header</span><span style="color: #008000;">;</span></div>
<br />
新建目录/conf/servers,并新建配置文件test.com<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">server&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listen&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">80</span><span style="color: #008000;">;<br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server_name&nbsp;&nbsp;</span><span style="color: #000000;">245</span><span style="color: #000000;">.test.com</span><span style="color: #008000;">;<br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;/home/htmlfile/test</span><span style="color: #008000;">;<br />
</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;location&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;/&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_temp_path&nbsp;/var/www/cache</span><span style="color: #008000;">;</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index&nbsp;index.html&nbsp;index.htm</span><span style="color: #008000;">;<br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
<br />
}</span></div>
<br />
修改配置文件后,通过以下命令检查配置是否正确<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">/usr/local/nginx/sbin/nginx&nbsp;-t&nbsp; <br />
</span></div>
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><span style="color: #000000;">the&nbsp;configuration&nbsp;file&nbsp;/usr/local/nginx/conf/nginx.conf&nbsp;syntax&nbsp;is&nbsp;ok<br />
configuration&nbsp;file&nbsp;/usr/local/nginx/conf/nginx.conf&nbsp;test&nbsp;is&nbsp;successful</span></div>
<br />
启动命令<br />
/usr/local/nginx/sbin/nginx&nbsp; <br />
停止命令<br />
/usr/local/nginx/sbin/nginx&nbsp; -s stop<br />
平滑重新加载配置文件<br />
kill -HUP `cat /usr/local/nginx/logs/nginx.pid<br />
添加到自启动<br />
echo "/usr/local/nginx/sbin/nginx" &gt;&gt; /etc/rc.local<br />
<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/339377.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2010-11-30 12:45 <a href="http://www.blogjava.net/dongbule/archive/2010/11/30/nginx.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装配置整理之 软件卸载</title><link>http://www.blogjava.net/dongbule/archive/2010/11/29/linux.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Mon, 29 Nov 2010 07:14:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2010/11/29/linux.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/339318.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2010/11/29/linux.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/339318.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/339318.html</trackback:ping><description><![CDATA[1.卸载rpm包<br />
通过 rpm -qa | grep httpd 搜索出<br />
<br />
httpd-2.2.3-43.el5.centos.3<br />
<br />
再<br />
<br />
rpm -e httpd-2.2.3-43.el5.centos.3<br />
<br />
如果出现提示有其他相关包依赖此rpm,可以选择强制卸载<br />
<br />
2.yum 或 apt-get 卸载<br />
<br />
yum -y remove httpd<br />
yum -y remove httpd* 卸载多个相识的软件<br />
<br />
3.卸载自编译包<br />
make uninstall 或 手动删除<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/339318.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2010-11-29 15:14 <a href="http://www.blogjava.net/dongbule/archive/2010/11/29/linux.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装配置整理之 net-snmp</title><link>http://www.blogjava.net/dongbule/archive/2010/11/29/net-snmp.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Mon, 29 Nov 2010 03:34:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2010/11/29/net-snmp.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/339299.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2010/11/29/net-snmp.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/339299.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/339299.html</trackback:ping><description><![CDATA[NET-SNMP的官方网站是:http://www.net-snmp.org<br />
先阅读一下官网的一点说明(详细见官网)<br />
Simple Network Management Protocol (SNMP) is a widely used protocol for monitoring the health and welfare of network equipment (eg.routers), computer equipment and even devices like UPSs. Net-SNMP is a suite of applications used to implement SNMP v1, SNMP v2c and SNMP v3 using both IPv4 and IPv6<br />
...<br />
<br />
<strong>安装</strong><br />
<br />
在http://www.net-snmp.org/download.html选择最新版本进行下载<br />
<br />
wget http://sourceforge.net/projects/net-snmp/files/net-snmp/5.6/net-snmp-5.6.tar.gz<br />
<br />
tar -xvf net-snmp-5.6.tar.gz<br />
<br />
cd net-snmp-5.6<br />
<br />
./configure --prefix=/usr/local/net-snmp --with-default-snmp-version="2" --with-logfile=/usr/local/net-snmp/log/snmplog.log --with-persistent-directory=/var/net-snmp<br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">注<br />
</span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">prefix&nbsp;安装的路径<br />
</span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">with</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 255);">default</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">snmp</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">version&nbsp;默认的版本<br />
</span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">with</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">logfile&nbsp;日志文件的路径<br />
</span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">with</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">persistent</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">directory&nbsp;固定数据存储目录</span></div>
<br />
make &amp;&amp; make install<br />
<br />
cp EXAPLE.conf /usr/local/net-snmp/share/snmp/snmpd.conf<br />
<br />
vi snmpd.conf<br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">60</span><span style="color: rgb(0, 0, 0);">&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sec.name&nbsp;&nbsp;source&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;community<br />
</span><span style="color: rgb(0, 0, 0);">61</span><span style="color: rgb(0, 0, 0);">&nbsp;com2sec&nbsp;local&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;localhost&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COMMUNITY<br />
</span><span style="color: rgb(0, 0, 0);">62</span><span style="color: rgb(0, 0, 0);">&nbsp;com2sec&nbsp;mynetwork&nbsp;NETWORK</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">24</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COMMUNITY</span></div>
<br />
<br />
修改为&nbsp;&nbsp;&nbsp; <br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">60</span><span style="color: rgb(0, 0, 0);">&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sec.name&nbsp;&nbsp;source&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;community<br />
</span><span style="color: rgb(0, 0, 0);">61</span><span style="color: rgb(0, 0, 0);">&nbsp;com2sec&nbsp;local&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;localhost&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 0, 0);">62</span><span style="color: rgb(0, 0, 0);">&nbsp;com2sec&nbsp;mynetwork&nbsp;NETWORK</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">24</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span></div>
<br />
<br />
在/etc/rc.local追加<br />
/usr/local/net-snmp/sbin/snmpd -c /usr/local/net-snmp/share/snmp/snmpd.conf<br />
<br />
在/etc/profile文件的export命令前追加<br />
PATH=/usr/local/net-snmp/bin:/usr/local/net-snmp/sbin:$PATH<br />
<br />
<strong>检查</strong><br />
<br />
使用 ps -aux | grep snmpd查看snmpd的进程是否启动<br />
<br />
使用如下命令从本机检查snmp是否得到系统数据<br />
<br />
snmpwalk -v 2c -c public localhost<br />
<br />
如果返回的不是Time out,而是系统信息就说明net-snmp安装成功<br />
<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/339299.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2010-11-29 11:34 <a href="http://www.blogjava.net/dongbule/archive/2010/11/29/net-snmp.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>cacti的简介与应用</title><link>http://www.blogjava.net/dongbule/archive/2010/11/02/336829.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Tue, 02 Nov 2010 09:28:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2010/11/02/336829.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/336829.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2010/11/02/336829.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/336829.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/336829.html</trackback:ping><description><![CDATA[上周给同事讲解了cacti的安装及其使用时做了一份ppt,在这里将这份ppt简单梳理一下介绍一下cacti在我们日常工作中的监控使用<br />
<br />
<strong>cacti的结构</strong><br />
在广义上来说cacti是一套网络流量监测图形分析工具,但从狭义来说cacti只是由php语言实现的一个软件,<br />
<br />
它需要PHP,apache,Mysql,SNMP,RRDTool等工具的支持<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/3.png" alt="" border="0" /><br />
从上图可以很明确看出cacti的三层架构之间的关系<br />
第一层是数据采集,通过snmp简单网络协议,和一批自定义的脚本进行采集<br />
第二层是数据存储,分别通过mysql存储cacti的模板和一些一定的信息,RRDTool用来存储所监控到的性能文件,后缀为.rrd<br />
第三层是数据展现,cacti的web方式展现<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/4.png" alt="" border="0" /><br />
<br />
cacti主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候,rrdtool生成图表呈现给用户。因此, snmp和rrdtool是cacti的关键,snmp关系着数据的收集，rrdtool关系着数据存储和图表的生成.<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/5.png" alt="" border="0" /><br />
snmp抓到数据不是存储在mysql中而是存在rrdtool生成的rrd文件中,rrdtool对数据的更新和存储就是对rrd文件的处理,rrd 文件是大小固定的档案文件,它能够存储的数据笔数在创建时已经定义.<br />
Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如：主机名、主机 ip,snmp 团体名、端口号、模板信息等变量。<br />
<br />
<strong>*.SNMP协议</strong><br />
SNMP(简单网络管理协议)前身是简单网关监控协议(SGMP), 用来对通信线路进行管理<br />
&#8595;<br />
加入符合Internet定义的<strong>SMI和MIB</strong>进行体系整合<br />
&#8595;<br />
简单网络管理协议(SNMP)是Internet组织用来管理Internet的网络协议<br />
<br />
<strong>*.MIB &amp; SMI</strong><br />
MIB, 管理信息库，由网络管理协议访问的管理对象数据库，它包括SNMP可以通过网络设备的SNMP管理代理进行设置的变量<br />
SMI,管理信息结构，用于定义通过网络管理协议可访问的对象的规则。SMI定义在MIB中使用的数据类型及网络资源在MIB中的名称或表示。<br />
<br />
<strong>*.SNMP的网络模型</strong><br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/6.png" alt="" border="0" /><br />
使用SNMP进行网络管理需要下面几个重要部分：管理基站，管理代理，管理信息库和网络管理工具。管理基站通常是一个独立的设备，它用作网络管理者进行网 络管理的用户接口。基站上必须装备有管理软件，管理员可以使用的用户接口和从MIB取得信息的数据库，同时为了进行网络管理它应该具备将管理命令发出基站的能力<br />
<br />
注:关于MIB介绍可以看&lt;<a href="http://network.51cto.com/art/201007/209214.htm">SNMP MIB完整手册</a>&gt; <br />
<br />
<strong>*.net-snmp</strong><br />
NET-SNMP是一个代理SNMP协议的软件,并提供管理端的查询工具,支持多种扩展方式<br />
在被监测和监测机器进行安装<br />
http://www.net-snmp.org/download.html <br />
配置<br />
/etc/snmp/snmpd.conf<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/7.png" alt="" border="0" /><br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/8.png" alt="" border="0" /><br />
<br />
设置自启动<br />
/usr/sbin/snmpd -c /usr/local/net-snmp/snmpd.conf &amp;<br />
测试<br />
snmpwalk -v 2c -c public 127.0.0.1<br />
snmpwalk -v 1 -c public 127.0.0.1 .1.3.6.1.4.1.2021.10 (负载检查)<br />
<br />
<strong>*.RRDTool</strong><br />
RRDTool使用RRD（Round Robin Database）作为存储格式，Round robin是一种处理定量数据、以及当前元素指针的技术。RRDTool主要用来跟踪对象的变化情况，生成这些变化的走势图<br />
RRDTool的存储特点<br />
<br />
存储数据的数据库空间看成一个圆<br />
指针会随着数据的读写操作在圆的刻度上自动移动<br />
圆没有起点和终点<br />
当所有的空间都存满了数据，就又从头开始存放<br />
RRDtool 所使用的数据库文件的后缀名是'.rrd'<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/9.png" alt="" border="0" /><br />
<br />
<strong>*.Cacti的安装</strong><br />
<br />
需要安装以下软件<br />
<br />
1)安装Apache,Mysql,PHP<br />
2)安装RRDTool<br />
(cgilib-0.5.tar.gz,zlib-1.2.3.tar.gz,libpng-1.2.18.tar.gz,freetype-2.3.5.tar.gz,libart_lgpl-2.3.17.tar.gz,rrdtool-1.2.23.tar.gz)<br />
3)安装net-snmp<br />
4)安装cacti<br />
<br />
<strong>*.Cacti的配置</strong><br />
修改cacti的config.php<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/10.png" alt="" border="0" /><br />
<br />
新增crontab定时器<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/11.png" alt="" border="0" /><br />
<br />
接下来就可以访问<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/12.png" alt="" width="250" border="0" height="21" /><br />
<br />
<strong>*.进入cacti的设置</strong><br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/13.png" alt="" border="0" /><br />
<br />
配置SNMP版本,rrdtool类别,和net-snmp的工具路径<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/17.png" alt="" width="487" border="0" height="366" /><br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/15.png" alt="" border="0" /><br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/16.png" alt="" border="0" /><br />
<br />
具体的安装配置和应用就不演示,下面是ppt附件,安装和配置有什么问题可以同我联系<br />
<br />
--------------------------------<br />
<br />
补充<br />
有朋友对rrdtools提了一点问题:<br />
<br />
RRDTool保存数据是循环的，而且大小不变。那是不是说，他只能保存一定数量活一段数据，然后保持更新。<br />
比如：RRD只有6个刻度，用来保存一个小时内，每10分钟的流量。从10点10分开始的话，到11点就满了，那么就开始循环刷新了。<br />
11点10分的数据就覆盖了10点10分的数据。<br />
可是如果我分析的没错的话，那数据不就丢失了么？如果想查看历史怎么办呢？<br />
<br />
<br />
因为rrd整个存储空间的大小就是一个固定的值,在一段时间后,当所有空间都存满数据后,就会从头开始存放,所以这涉及到rrdtool的前期规划,以下是截取了http://www.rrdtool.org的说明<br />
<br />
&nbsp;&nbsp;&nbsp; When monitoring the state of a system, it is convenient to have the data available at a constant time interval. Unfortunately, you may not always be able to fetch data at exactly the time you want to. Therefore RRDtool lets you update the log file at any time you want. It will automatically interpolate the value of the data-source (DS) at the latest official time-slot (interval) and write this interpolated value to the log. The original value you have supplied is stored as well and is also taken into account when interpolating the next log entry.<br />
Consolidation<br />
&nbsp;&nbsp;&nbsp; You may log data at a 1 minute interval, but you might also be interested to know the development of the data over the last year. You could do this by simply storing the data in 1 minute intervals for the whole year. While this would take considerable disk space it would also take a lot of time to analyze the data when you wanted to create a graph covering the whole year. RRDtool offers a solution to this problem through its data consolidation feature. When setting up an Round Robin Database (RRD), you can define at which interval this consolidation should occur, and what consolidation function (CF) (average, minimum, maximum, total, last) should be used to build the consolidated values (see rrdcreate). You can define any number of different consolidation setups within one RRD. They will all be maintained on the fly when new data is loaded into the RRD.<br />
Round Robin Archives<br />
&nbsp;&nbsp;&nbsp; Data values of the same consolidation setup are stored into Round Robin Archives (RRA). This is a very efficient manner to store data for a certain amount of time, while using a known and constant amount of storage space.<br />
&nbsp;&nbsp;&nbsp;<strong> It works like this: If you want to store 1'000 values in 5 minute interval, RRDtool will allocate space for 1'000 data values and a header area. In the header it will store a pointer telling which slots (value) in the storage area was last written to. New values are written to the Round Robin Archive in, you guessed it, a round robin manner. This automatically limits the history to the last 1'000 values (in our example). Because you can define several RRAs within a single RRD, you can setup another one, for storing 750 data values at a 2 hour interval, for example, and thus keep a log for the last two months at a lower resolution.</strong><br />
&nbsp;&nbsp;&nbsp; The use of RRAs guarantees that the RRD does not grow over time and that old data is automatically eliminated. By using the consolidation feature, you can still keep data for a very long time, while gradually reducing the resolution of the data along the time axis.<br />
&nbsp;&nbsp;&nbsp; Using different consolidation functions (CF) allows you to store exactly the type of information that actually interests you: the maximum one minute traffic on the LAN, the minimum temperature of your wine cellar, the total minutes of down time, etc.<br />
<br />
----------------------------------------<br />
<br />
by 陈于喆 <br />
QQ:34174409<br />
Mail: dongbule@163.com<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/336829.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2010-11-02 17:28 <a href="http://www.blogjava.net/dongbule/archive/2010/11/02/336829.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VPS之openVPN的安装配置</title><link>http://www.blogjava.net/dongbule/archive/2010/11/01/336714.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Mon, 01 Nov 2010 09:35:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2010/11/01/336714.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/336714.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2010/11/01/336714.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/336714.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/336714.html</trackback:ping><description><![CDATA[上次写的&lt;<a href="http://www.blogjava.net/dongbule/archive/2010/10/12/334650.html">VPS的购买和使用</a>&gt;中提到了openVPN，也做了一点点简单的介绍，有朋友也问了一些关于vpn的问题<br />
首先，我所购买的vps是基于OpenVZ类型，无法配置标准的VPN(无测试过),部分手机可能无法支持,但OpenVZ支持pptp和openVPN<br />
<br />
请登录OPENVPN官网查阅最新资料&lt;http://openvpn.net/&gt;<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/21.png" alt="" width="230" border="0" height="77" /><br />
<br />
ok!在安装之前请确认一下你购买的vps是否开启了tun/tap的支持，burst vps默认是不开启tun/tap的，可以使用cat /dev/net/tun 进行检查<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/2.png" alt="" border="0" /><br />
<br />
如果是没有权限的话可以发个ticket要求客服为你开启tun/tap<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/3.png" alt="" border="0" /><br />
<br />
出现File descriptor in bad state说明tun/tap已经开启，可以开始进行openVPN的安装配置<br />
<br />
我的vps安装的系统为CentOS release 5.5 (Final)，下面一系列安装和配置都在此vps上进行,根据 &lt;<a href="http://www.360doc.com/showWeb/0/0/64213735.aspx">OpenVPN服务器配置（转载）</a>&gt;配置<br />
<br />
<strong>一.服务端安装</strong><br />
<br />
现在开始在vps上安装和配置openVPN，需要的有下列的软件<br />
gcc g++ [gcc g++为系统需要的编译工具]<br />
lzo库&nbsp;&nbsp; [Lzo库的功能是对虚拟链路进行压缩]<br />
openssl [囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议]<br />
openvpn <br />
<br />
<strong>1.安装编译工具gcc g++</strong><br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">#&nbsp;yum&nbsp;install&nbsp;gcc<br />
#&nbsp;yum&nbsp;install&nbsp;gcc-c++</span></div>
<br />
<br />
<strong>2.安装lzo库</strong><br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">#&nbsp;cd&nbsp;/home/download/<br />
#&nbsp;wget&nbsp;http://www.oberhumer.com/opensource/lzo/download/lzo-</span><span style="color: rgb(0, 0, 0);">2.03</span><span style="color: rgb(0, 0, 0);">.tar.gz<br />
#&nbsp;tar&nbsp;-xvzf&nbsp;lzo-</span><span style="color: rgb(0, 0, 0);">2.03</span><span style="color: rgb(0, 0, 0);">.tar.gz<br />
#&nbsp;cd&nbsp;lzo-</span><span style="color: rgb(0, 0, 0);">2.03</span><span style="color: rgb(0, 0, 0);"><br />
#&nbsp;./configure&nbsp;-prefix</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">/usr/local/lzo&nbsp;&amp;&amp;&nbsp;make&nbsp;&amp;&amp;&nbsp;make&nbsp;install<br />
#&nbsp;vi&nbsp;/etc/ld.so.conf</span></div>
<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/4.png" alt="" border="0" /><br />
<br />
编辑完ld.so.conf,执行<br />
<br />
# ldconfig<br />
<br />
使动态库生效<br />
<br />
<strong>3.安装openssl</strong><br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">#&nbsp;cd&nbsp;/home/download/<br />
#&nbsp;wget&nbsp;http://www.openssl.org/source/openssl-</span><span style="color: rgb(0, 0, 0);">0.9.8</span><span style="color: rgb(0, 0, 0);">.tar.gz<br />
#&nbsp;tar&nbsp;-xvzf&nbsp;openssl-</span><span style="color: rgb(0, 0, 0);">0.9.8</span><span style="color: rgb(0, 0, 0);">.tar.gz<br />
#&nbsp;./config&nbsp;-prefix</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">/usr/local/openssl&nbsp;&amp;&amp;&nbsp;make&nbsp;&amp;&amp;&nbsp;make&nbsp;install</span></div>
<br />
<br />
<strong>4.安装openvpn</strong><br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">#&nbsp;cd&nbsp;/home/download/<br />
#&nbsp;wget&nbsp;http://www.openvpn.net/release/openvpn-</span><span style="color: rgb(0, 0, 0);">2.0.9</span><span style="color: rgb(0, 0, 0);">.tar.gz<br />
#&nbsp;tar&nbsp;-xvzf&nbsp;openvpn-</span><span style="color: rgb(0, 0, 0);">2.0.9</span><span style="color: rgb(0, 0, 0);">.tar.gz<br />
#&nbsp;cd&nbsp;openvpn-</span><span style="color: rgb(0, 0, 0);">2.0.9</span><span style="color: rgb(0, 0, 0);"><br />
#&nbsp;./configure&nbsp;-prefix</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">/usr/local/openvpn&nbsp;&amp;&amp;&nbsp;make&nbsp;&amp;&amp;&nbsp;make&nbsp;install</span></div>
<br />
<br />
<strong>二.配置</strong><br />
<br />
<strong>1.创建配置环境</strong><br />
<br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);"> </span># mkdir /etc/openvpn<br />
# cp -R /home/download/openvpn-2.0.9/easy-rsa/ /etc/openvpn<br />
# cd /etc/openvpn/easy-rsa/2.0/<br />
# ls<br />
<span style="color: rgb(0, 0, 0);">&nbsp;total&nbsp;</span><span style="color: rgb(0, 0, 0);">112</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">121</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;build</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">ca<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">354</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;build</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">dh<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">190</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;build</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">inter<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">165</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;build</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">key<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">159</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;build</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">key</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">pass<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">251</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;build</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">key</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">pkcs12<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">270</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;build</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">key</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">server<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">215</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;build</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">req<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">160</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;build</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">req</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">pass<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">430</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;clean</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">all<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">1459</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;inherit</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">inter<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">297</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;list</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">crl<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rw</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">r</span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">r</span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">422</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;Makefile<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">7768</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;openssl</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">0.9</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">6</span><span style="color: rgb(0, 0, 0);">.cnf<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">8230</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;openssl.cnf<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;</span><span style="color: rgb(0, 0, 0);">12068</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;pkitool<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rw</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">r</span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">r</span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">8864</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;README<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">894</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;revoke</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">full<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">180</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;sign</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">req<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">1602</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;vars<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">190</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;whichopensslcnf</span></div>
<br />
<br />
结果是程序以及脚本，这个简要的说明一下<br />
<br />
vars&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 脚本，是用来创建环境变量，设置所需要的变量的脚本<br />
clean-all&nbsp;&nbsp;&nbsp; 脚本，是创建生成CA证书及密钥 文件所需要的文件和目录<br />
build-ca&nbsp;&nbsp;&nbsp;&nbsp; 脚本，生成CA证书(交互)<br />
build-dh&nbsp;&nbsp;&nbsp;&nbsp; 脚本，生成Diffie-Hellman文件(交互)<br />
build-key-server 脚本，生成服务器端密钥(交互)<br />
build-key&nbsp;&nbsp;&nbsp; 脚本，生成客户端密钥(交互)<br />
pkitool&nbsp;&nbsp;&nbsp; &nbsp; 脚本，直接使用vars的环境变量设置直接生成证书(非交互)<br />
<br />
<strong>2.生成CA证书及密钥</strong><br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">#&nbsp;cd&nbsp;/etc/openvpn/easy-rsa/</span><span style="color: rgb(0, 0, 0);">2.0</span><span style="color: rgb(0, 0, 0);">/<br />
#&nbsp;./vars<br />
NOTE:&nbsp;If&nbsp;you&nbsp;run&nbsp;./clean-all</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">&nbsp;I&nbsp;will&nbsp;be&nbsp;doing&nbsp;a&nbsp;rm&nbsp;-rf&nbsp;on&nbsp;/etc/openvpn/easy-rsa/</span><span style="color: rgb(0, 0, 0);">2.0</span><span style="color: rgb(0, 0, 0);">/keys</span></div>
<br />
注:如果你执行了./clean-all,系统将删除/etc/openvpn/easy-rsa/2.0/keys下的文件<br />
<br />
修改vars文件<br />
# vi vars<br />
<br />
export KEY_COUNTRY="CN"<br />
export KEY_PROVINCE="GZ"<br />
export KEY_CITY="guangzhou"<br />
export KEY_ORG="NCS"<br />
export KEY_EMAIL="dongbule@163.com"<br />
<br />
# ./vars <br />
<br />
<strong>3.初始化keys文件夹</strong><br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">#&nbsp;./clean-all&nbsp;#</span><span style="color: rgb(128, 0, 0); font-weight: bold;">[</span><span style="color: rgb(128, 0, 0);">注:删除/etc/openvpn/easy-rsa/2.0/keys下的文件</span><span style="color: rgb(128, 0, 0); font-weight: bold;">]</span><span style="color: rgb(0, 0, 0);"><br />
#&nbsp;./build-ca&nbsp;&nbsp;#</span><span style="color: rgb(128, 0, 0); font-weight: bold;">[</span><span style="color: rgb(128, 0, 0);">注:生成一个a&nbsp;1024&nbsp;bit&nbsp;RSA的密钥,writing&nbsp;new&nbsp;private&nbsp;key&nbsp;to&nbsp;'ca.key'</span><span style="color: rgb(128, 0, 0); font-weight: bold;">]</span></div>
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/5.png" alt="" border="0" /><br />
<br />
一路按回车就可以<br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">#&nbsp;cd&nbsp;keys<br />
#&nbsp;ls<br />
ca.crt&nbsp;&nbsp;ca.key&nbsp;&nbsp;index.txt&nbsp;&nbsp;serial</span></div>
<br />
<br />
可以看到生成的ca.crt&nbsp; ca.key文件<br />
<br />
<strong>4.生成Diffie-Hellman文件</strong><br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">#&nbsp;cd&nbsp;..<br />
#&nbsp;./build-dh&nbsp;#</span><span style="color: rgb(128, 0, 0); font-weight: bold;">[</span><span style="color: rgb(128, 0, 0);">注:Generating&nbsp;DH&nbsp;parameters,&nbsp;1024&nbsp;bit&nbsp;long&nbsp;safe&nbsp;prime</span><span style="color: rgb(128, 0, 0); font-weight: bold;">]</span><span style="color: rgb(0, 0, 0);"><br />
#&nbsp;ls&nbsp;&nbsp;keys<br />
ca.crt&nbsp;&nbsp;ca.key&nbsp;&nbsp;dh1024.pem&nbsp;&nbsp;index.txt&nbsp;&nbsp;serial</span></div>
<br />
注:可以看到生成了1024为的Diffie-Hellman文件<br />
<br />
<strong>5.生成服务器使用的VPN server ca证书</strong><br />
<br />
# ./build-key-server chenyz #[注:其中chenyz是CA证书的一个名字]<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/6.png" alt="" border="0" /><br />
<br />
一路回车,Sign the certificate? [y/n]:y 选择y<br />
<br />
然后把刚才生成的CA证书和密钥copy到/etc/openvpn/下<br />
<br />
# cd keys<br />
# cp ca.crt ca.key chenyz.crt chenyz.key dh1024.pem /etc/openvpn/<br />
<br />
<strong>6.生成客户端CA证书及密钥</strong><br />
<br />
# ./build-key client-chenyz<br />
一路回车,Sign the certificate? [y/n]:y 选择y<br />
<br />
在keys目录下生成了client-chenyz.crt client-chenyz.csr client-chenyz.key三个客户端证书<br />
并且将ca.crt ca.key client-chenyz.crt client-chenyz.csr client-chenyz.key 五个文件打包,以便客户端vpn<br />
<br />
使用<br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">#&nbsp;cd&nbsp;keys<br />
#&nbsp;mkdir&nbsp;userkey<br />
#&nbsp;cp&nbsp;ca.crt&nbsp;ca.key&nbsp;client-chenyz.crt&nbsp;client-chenyz.csr&nbsp;client-chenyz.key&nbsp;userkey/<br />
#&nbsp;tar&nbsp;-zcvf&nbsp;userkey.tar.gz&nbsp;userkey/<br />
userkey/<br />
userkey/ca.crt<br />
userkey/client-chenyz.csr<br />
userkey/ca.key<br />
userkey/client-chenyz.key<br />
userkey/client-chenyz.crt<br />
<br />
#&nbsp;sz&nbsp;userkey.tar.gz<br />
Starting&nbsp;zmodem&nbsp;transfer.&nbsp;&nbsp;Press&nbsp;Ctrl+C&nbsp;to&nbsp;cancel.<br />
Transferring&nbsp;userkey.tar.gz<img src="http://www.blogjava.net/Images/dot.gif" alt="" /><br />
&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">100</span><span style="color: rgb(0, 0, 0);">%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">4</span><span style="color: rgb(0, 0, 0);">&nbsp;KB&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">4</span><span style="color: rgb(0, 0, 0);">&nbsp;KB/s&nbsp;</span><span style="color: rgb(0, 0, 0);">00</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">00</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">01</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">&nbsp;Errors</span></div>
<br />
<br />
使用sz将其下载到windows客户端<br />
<br />
<strong>7.openvpn配置文件</strong><br />
<br />
# cp /home/download/openvpn-2.0.9/sample-config-files/server.conf&nbsp; /etc/openvpn/openvpn.conf<br />
将vpenvpn的原始样例文件复制到/etc/openvpn下,并改名为openvpn.conf,我们将在样例文件上进行修改<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/777.png" alt="" width="426" border="0" height="153" /><br />
使用的端口，默认1194<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/7.png" alt="" border="0" /><br />
使用的协议，默认使用UDP，如果使用HTTP proxy，必须使用TCP协议<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/8.png" alt="" border="0" /><br />
ca:使用build-ca生成的，用于验证客户是证书是否合法<br />
cert:使用build-key-server,Server使用的证书对应的key,注意安全,防止被盗<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/9.png" alt="" border="0" /><br />
dh:生成的加密文件<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/10.png" alt="" border="0" /><br />
通过VPN Server往Client push路由，client通过pull指令获得Server push的所有选项并应用<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/11.png" alt="" border="0" /><br />
可以让客户端之间相互访问直接通过openvpn程序转发<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/12.png" alt="" border="0" /><br />
如果Client使用的CA的Common Name有重复了，或者说客户都使用相同的CA #和keys连接VPN，一定要打开这个选项，否则只允许一个人连接VPN<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/122.png" alt="" border="0" /><br />
对数据进行压缩<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/13.png" alt="" border="0" /><br />
定义用户<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/14.png" alt="" border="0" /><br />
openvpn状态log<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/15.png" alt="" border="0" /><br />
每次重新启动openvpn后保留原有的log信息，新信息追加到文件最后<br />
<br />
<strong>8.启动OpenVPN</strong><br />
<br />
修改完毕后,即可以启动vpn,--daemon为后台守护进程模型启动<br />
/usr/local/openvpn/sbin/openvpn --daemon --config /etc/openvpn/openvpn.conf<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/16.png" alt="" border="0" /><br />
<br />
使用netstat -ln 查看1194openvpn的端口是否已经起来<br />
<br />
<strong>二.win客户端的安装和配置</strong><br />
<br />
下载openvpn客户端 http://www.openvpn.net/release/openvpn-2.0.9-install.exe 安装完毕<br />
把刚刚打包的userkey.tar.gz下载解压到 C:\Program Files\OpenVPN\config 目录下<br />
将/home/download/openvpn-2.0.9/sample-config-files/client.conf 也下载到 C:\Program Files\OpenVPN\config 目录下<br />
<br />
接着是配置这个client.conf客户端配置文件<br />
<br />
主要修改有以下几个地方<br />
<br />
dev tun<br />
proto tcp<br />
remote 你的vpn地址 1194<br />
user nobody<br />
group nogroup<br />
ca ca.crt<br />
cert client-chenyz.crt<br />
key client-chenyz.key&nbsp;&nbsp; ##注:文件名和路径必须对应<br />
comp-lzo<br />
redirect-gateway def1<br />
<br />
确保与服务端的配置对应,然后将client.conf修改文件名为client.ovpn,右键点击client.ovpn,选择"Start OpenVPN on this config file"<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/18.png" alt="" border="0" /><br />
可以看到连接已经成功,并且创建了 [本地连接 6] 一条新的链路<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/19.png" alt="" border="0" /><br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/20.png" alt="" border="0" /><br />
<br />
或者你也可以打开C:\Program Files\OpenVPN\bin\openvpn-gui-1.0.3.exe进行连接,双击后会在任务栏里有个小连接图标,变成绿色的话就表明你连接成功<br />
<br />
openvpn的参数配置,感觉不算很多,也比较容易理解,中文的资料也很齐全,大概这个东西在国内还是广泛应用(翻墙^_^)<br />
<br />
如果只是简单的应用,配置倒真的很简单,不过如果真的是要用起来,网段设置和访问控制各种问题真的不少,入是否配置dhcp,是否分配dns,vpn如何和内网通讯,很多很多,因为我只是拿来做代理这里就不细说了<br />
<br />
<br />
----------------------------------------<br />
<br />
by 陈于喆 <br />
QQ:34174409<br />
Mail: dongbule@163.com<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/336714.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2010-11-01 17:35 <a href="http://www.blogjava.net/dongbule/archive/2010/11/01/336714.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>